Added "altprint..." options to affect 'Print' button behavior

(always act like [Alt] is held, never let [Alt] bring up a dialog, or
normal behavior).  Closes bug 1191193.
This commit is contained in:
William Kendrick 2005-07-16 08:09:23 +00:00
parent a953d54099
commit d8914de190
6 changed files with 136 additions and 3 deletions

View file

@ -395,6 +395,15 @@ http://www.newbreedsoftware.com/tuxpaint/
a print dialog. (Defaults to KDE's 'kprinter'.) Can be altered a print dialog. (Defaults to KDE's 'kprinter'.) Can be altered
via 'altprintcommand' in ~/.tuxpaintrc. via 'altprintcommand' in ~/.tuxpaintrc.
* Printer dialog (and 'altprintcommand') can be forced to come up
all the time (not just when [Alt] is held) via a new
"--altprintalways" command-line option (and "altprint=always" config.
file option).
* Similarly, printer dialog can be prevented ([Alt] key has no effect)
via a new "--altprintnever" option (and "altprint=never").
(Default (where [Alt] must be held to show dialog) is "altprintmod".)
* New translations: * New translations:
----------------- -----------------

View file

@ -149,6 +149,28 @@ Windows Users
saved to the file "userdata/print.cfg", and used again, as long saved to the file "userdata/print.cfg", and used again, as long
as the "printcfg" option is set. as the "printcfg" option is set.
altprint=always
This causes Tux Paint to always show the printer dialog (or, on
Linux/Unix, run the "altprintcommand") when the 'Print' button
is clicked. In other words, it's like clicking 'Print' while
holding [Alt], except you don't need to hold [Alt] every time.
altprint=never
This prevents Tux Paint from ever showing the printer dialog
(or, on Linux/Unix, run the "altprintcommand") when the 'Print'
button is clicked. In other words, it makes the [Alt] key have
no effect when clicking the 'Print' button.
altprint=mod
This is the normal, default behavior. Tux Paint shows a printer
dialog (or, on Linux/Unix, runs the "altprintcommand"), when the
[Alt] key is pressed while the 'Print' button is clicked.
Clicking 'Print' without holding [Alt] prints without showing a
dialog.
simpleshapes=yes simpleshapes=yes
Disable the rotation step of the 'Shape' tool. Click, drag and Disable the rotation step of the 'Shape' tool. Click, drag and
release is all that will be needed to draw a shape. release is all that will be needed to draw a shape.

View file

@ -575,6 +575,24 @@ Available Tools
See the "Options" documentation.) See the "Options" documentation.)
Printer Dialog Options
By default, Tux Paint only shows the printer
dialog (or, on Linux/Unix, runs the
"altprintcommand", e.g., "kprinter" instead of
"lpr") if the [Alt] key is held while clicking
the 'Print' button.
However, this behavior can be changed. You can
have the printer dialog always appear by using
"--altprintalways" on the command-line, or
"altprint=always" in Tux Paint's configuration
file. Or, you can prevent the [Alt] key from
having any effect by using "--altprintnever",
or "altprint=never".
See the "Options" documentation.)
-------------------------------------------------------------------------- --------------------------------------------------------------------------
Quit Quit

View file

@ -144,7 +144,7 @@ New Breed Software</p>
Restrict printing so that printing can occur only once every Restrict printing so that printing can occur only once every
<i>SECONDS</i> seconds. <i>SECONDS</i> seconds.
</dd> </dd>
<dt><code><b>printcommand=<i>COMMAND</i></b></code></dt> <dt><code><b>printcommand=<i>COMMAND</i></b></code></dt>
<dd> <dd>
<p><i>(Linux and Unix only)</i></p> <p><i>(Linux and Unix only)</i></p>
@ -197,6 +197,31 @@ New Breed Software</p>
used again, as long as the "printcfg" option is set.</p> used again, as long as the "printcfg" option is set.</p>
</dd> </dd>
<dt><code><b>altprint=always</b></code></dt>
<dd>
<p>This causes Tux&nbsp;Paint to always show the printer dialog
(or, on Linux/Unix, run the "altprintcommand") when the 'Print' button
is clicked. In other words, it's like clicking 'Print' while holding
<b>[Alt]</b>, except you don't need to hold <b>[Alt]</b> every time.</p>
</dd>
<dt><code><b>altprint=never</b></code></dt>
<dd>
<p>This prevents Tux&nbsp;Paint from <i>ever</i> showing the printer dialog
(or, on Linux/Unix, run the "altprintcommand") when the 'Print' button
is clicked. In other words, it makes the <b>[Alt]</b> key have no
effect when clicking the 'Print' button.</p>
</dd>
<dt><code><b>altprint=mod</b></code></dt>
<dd>
<p>This is the normal, default behavior. Tux&nbsp;Paint shows a
printer dialog (or, on Linux/Unix, runs the "altprintcommand"),
when the <b>[Alt]</b> key is pressed while the 'Print' button is clicked.
Clicking 'Print' without holding <b>[Alt]</b> prints without showing
a dialog.</p>
</dd>
<dt><code><b>simpleshapes=yes</b></code></dt> <dt><code><b>simpleshapes=yes</b></code></dt>
<dd> <dd>
Disable the rotation step of the 'Shape' tool. Disable the rotation step of the 'Shape' tool.

View file

@ -807,6 +807,25 @@ New Breed Software</p>
<p>See the "<a href="OPTIONS.html"><i>Options</i></a>" <p>See the "<a href="OPTIONS.html"><i>Options</i></a>"
documentation.)</p> documentation.)</p>
</dd> </dd>
<dt>Printer Dialog Options</dt>
<dd>
<p>By default, Tux&nbsp;Paint only shows the printer dialog
(or, on Linux/Unix, runs the "altprintcommand", e.g.,
"kprinter" instead of "lpr") if the <b>[Alt]</b> key is held
while clicking the 'Print' button.</p>
<p>However, this behavior can be changed. You can have the
printer dialog always appear by using
"<code>--altprintalways</code>" on the command-line, or
"<code>altprint=always</code>" in Tux&nbsp;Paint's configuration
file. Or, you can prevent the <b>[Alt]</b> key from having any
effect by using "<code>--altprintnever</code>", or
"<code>altprint=never</code>".</p>
<p>See the "<a href="OPTIONS.html"><i>Options</i></a>"
documentation.)</p>
</dd>
</dl> </dl>
<br clear=all> <br clear=all>

View file

@ -482,6 +482,12 @@ enum {
SAVE_OVER_NO SAVE_OVER_NO
}; };
enum {
ALTPRINT_MOD,
ALTPRINT_ALWAYS,
ALTPRINT_NEVER
};
enum { enum {
STARTER_OUTLINE, STARTER_OUTLINE,
@ -1417,7 +1423,8 @@ static int use_sound, fullscreen, disable_quit, simple_shapes,
mousekey_up, mousekey_down, mousekey_left, mousekey_right, mousekey_up, mousekey_down, mousekey_left, mousekey_right,
dont_do_xor, use_print_config, dont_load_stamps, noshortcuts, dont_do_xor, use_print_config, dont_load_stamps, noshortcuts,
no_system_fonts, no_button_distinction, no_system_fonts, no_button_distinction,
mirrorstamps, disable_stamp_controls, disable_save, ok_to_use_lockfile; mirrorstamps, disable_stamp_controls, disable_save, ok_to_use_lockfile,
alt_print_command_default;
static int want_alt_printcommand; static int want_alt_printcommand;
static int starter_mirrored, starter_flipped; static int starter_mirrored, starter_flipped;
static int recording, playing; static int recording, playing;
@ -3205,7 +3212,12 @@ static void mainloop(void)
if (cur_time >= last_print_time + print_delay) if (cur_time >= last_print_time + print_delay)
{ {
want_alt_printcommand = (SDL_GetModState() & KMOD_ALT); if (alt_print_command_default == ALTPRINT_ALWAYS)
want_alt_printcommand = 1;
else if (alt_print_command_default == ALTPRINT_NEVER)
want_alt_printcommand = 0;
else /* ALTPRINT_MOD */
want_alt_printcommand = (SDL_GetModState() & KMOD_ALT);
if (do_prompt_image(PROMPT_PRINT_NOW_TXT, if (do_prompt_image(PROMPT_PRINT_NOW_TXT,
PROMPT_PRINT_NOW_YES, PROMPT_PRINT_NOW_YES,
@ -6188,6 +6200,7 @@ static void show_usage(FILE * f, char * prg)
" %s [--printcfg | --noprintcfg]\n" " %s [--printcfg | --noprintcfg]\n"
#endif #endif
" %s [--printdelay=SECONDS]\n" " %s [--printdelay=SECONDS]\n"
" %s [--altprintmod | --altprintalways | --altprintnever]\n"
" %s [--lang LANGUAGE | --locale LOCALE | --lang help]\n" " %s [--lang LANGUAGE | --locale LOCALE | --lang help]\n"
" %s [--nosysconfig] [--nolockfile]\n" " %s [--nosysconfig] [--nolockfile]\n"
/* " %s [--record FILE | --playback FILE]\n" */ /* " %s [--record FILE | --playback FILE]\n" */
@ -7344,6 +7357,7 @@ static void setup(int argc, char * argv[])
simple_shapes = 0; simple_shapes = 0;
only_uppercase = 0; only_uppercase = 0;
promptless_save = SAVE_OVER_PROMPT; promptless_save = SAVE_OVER_PROMPT;
alt_print_command_default = ALTPRINT_MOD;
disable_quit = 0; disable_quit = 0;
disable_save = 0; disable_save = 0;
disable_print = 0; disable_print = 0;
@ -7558,6 +7572,18 @@ static void setup(int argc, char * argv[])
{ {
promptless_save = SAVE_OVER_NO; promptless_save = SAVE_OVER_NO;
} }
else if (strcmp(argv[i], "--altprintnever") == 0)
{
alt_print_command_default = ALTPRINT_NEVER;
}
else if (strcmp(argv[i], "--altprintalways") == 0)
{
alt_print_command_default = ALTPRINT_ALWAYS;
}
else if (strcmp(argv[i], "--altprintmod") == 0)
{
alt_print_command_default = ALTPRINT_MOD;
}
else if (strcmp(argv[i], "--uppercase") == 0 || strcmp(argv[i], "-u") == 0) else if (strcmp(argv[i], "--uppercase") == 0 || strcmp(argv[i], "-u") == 0)
{ {
only_uppercase = 1; only_uppercase = 1;
@ -15128,6 +15154,20 @@ static void parse_options(FILE * fi)
{ {
promptless_save = SAVE_OVER_NO; promptless_save = SAVE_OVER_NO;
} }
else if (strcmp(str, "altprint=always") == 0)
{
alt_print_command_default = ALTPRINT_ALWAYS;
}
else if (strcmp(str, "altprint=mod") == 0)
{
/* (Default) */
alt_print_command_default = ALTPRINT_MOD;
}
else if (strcmp(str, "altprint=never") == 0)
{
alt_print_command_default = ALTPRINT_NEVER;
}
else if (strstr(str, "savedir=") == str) else if (strstr(str, "savedir=") == str)
{ {
savedir = strdup(str + 8); savedir = strdup(str + 8);