hildon updates and packaging files

Tux text draws new Sfx and Speak mini-buttons above Tux, when in Stamp mode.
Sfx and Speak buttons (re)-play stamp sounds and stamp descriptions.
ALT+S (mute/unmute) now draws Tux text (to make Sfx and Speak buttons appear/disappear)
Improved Stamp tool description in docs.
Added screenshot of Stamp size, mirror, flip controls in docs.
Documented Left/Right stamp category controls, with screenshot in docs.
Documented Sfx and Speak buttons, with screenshot in docs.
This commit is contained in:
William Kendrick 2007-06-07 23:47:47 +00:00
parent bccb269062
commit 6d1dbef521
5 changed files with 220 additions and 43 deletions

View file

@ -9,7 +9,7 @@ http://www.newbreedsoftware.com/tuxpaint/
$Id$
2007.June.5 (0.9.17)
2007.June.7 (0.9.17)
* Interface Improvements:
-----------------------
@ -30,6 +30,10 @@ $Id$
Note: override previously-set option with "--orient=landscape" or
"orient=landscape".
* Stamp sound effects and stamp descriptive sounds can be re-played
using small buttons that appear over Tux, at the lower lefthand corner.
(They disappear/reappear when sound is muted/unmuted via [Alt]+[S].)
* Tool Improvements:
------------------
* Input Method Framework, with implementations of Korean (Hangul 2-Bul)
@ -134,11 +138,18 @@ $Id$
* Tweaks to allow it to run on the One Laptop Per Child (OLPC) "XO".
Albert Cahalan <albert@users.sf.net>
* Updates for improved Nokia 770 and N800 (Maemo) support
* Updates for improved Nokia 770 and N800 (Maemo) Internet tablet support
(added icon to task manager when Home button is pressed,
hid on-screen mouse cursor, disabled Print and Text tools)
Alessandro Pasotti <apasotti@gmail.com>
* Added more Nokia Maemo-specific files to the "hildon" folder
(DEBIAN package files, updated .desktop and Tux Paint configuration
files, D-BUS service file), to make packaging a Tux Paint .deb for
Nokia 770 and N800 devices easier. (Note: Makefile needs updating
and/or a compile-and-package script needs to be created.)
Alessandro Pasotti <apasotti@gmail.com>
* Lockfile (that prevents multiple launches) is now stored
in the user's local temporary directory on Windows
(usually 'C:\Documents and Settings\{username}\Local Settings\Temp').

View file

@ -9,7 +9,7 @@
bill@newbreedsoftware.com
http://www.tuxpaint.org/
June 14, 2002 - May 2, 2007
June 14, 2002 - June 7, 2007
--------------------------------------------------------------------------
@ -198,20 +198,33 @@ Available Tools
Stamp (Rubber Stamp)
The Stamp tool is like a rubber stamp, or stickers. It lets
you paste pre-drawn or photographic images (like a picture
of a horse, or a tree, or the moon) in your picture.
The Stamp tool is like a set of rubber stamps or stickers.
It lets you paste pre-drawn or photographic images (like a
picture of a horse, or a tree, or the moon) in your picture.
As you move the mouse around, an outline follows the mouse,
showing where the stamp will be placed.
As you move the mouse around the canvas, an outline follows
the mouse, showing where the stamp will be placed, and how
big it will be.
Different stamps can have different sound effects. Some
stamps can be colored or tinted.
There can be numerous categories of stamps (e.g., animals,
plants, outer space, vehicles, people, etc.). Use the Left
and Right arrows to cycle through the collections.
Some stamps can be colored or tinted. If the color palette
below the canvas is activated, you can click the colors to
change the tint or color of the stamp before placing it in
the picture.
Stamps can be shrunk and expanded, and many stamps can be
flipped vertically, or displayed as a mirror-image, using
controls at the bottom right of the screen.
Different stamps can have different sound effects and/or
descriptive (spoken) sounds. Buttons at the lower left (near
Tux, the Linux penguin) allow you to re-play the sound
effects and descriptive sounds for the currently-selected
stamp.
(NOTE: If the "nostampcontrols" option is set, Tux Paint
won't display the Mirror, Flip, Shrink and Grow controls for
stamps. See the "Options" documentation.)

View file

@ -25,9 +25,7 @@ New Breed Software</p>
<p>June 14, 2002 -
May 2, 2007</p>
June 7, 2007</p>
</center>
@ -284,31 +282,47 @@ May 2, 2007</p>
<dd>
<img src="images/tool_stamp.png" width=48 height=48 alt="" align=right>
<p>The Stamp tool is like a rubber stamp, or stickers. It lets you
paste pre-drawn or photographic images (like a picture of a horse,
or a tree, or the moon) in your picture.</p>
<p>The Stamp tool is like a set of rubber stamps or stickers.
It lets you paste pre-drawn or photographic images (like a picture
of a horse, or a tree, or the moon) in your picture.</p>
<p>As you move the mouse around, an outline follows the
mouse, showing where the stamp will be placed.</p>
<p>As you move the mouse around the canvas, an outline follows the
mouse, showing where the stamp will be placed, and how big it will
be.</p>
<p>Different stamps can have different sound effects.
Some stamps can be colored or tinted.</p>
<p align=center><img src="images/ex_stamps.png" width=182 height=156
alt=""></p>
<img src="images/tool_stamp_categories.png" width=96 height=48 alt=""
align=right>
<p>There can be numerous categories of stamps (e.g., animals,
plants, outer space, vehicles, people, etc.). Use the
Left and Right arrows to cycle through the collections.</p>
<p>Some stamps can be colored or tinted. If the color palette
below the canvas is activated, you can click the colors to change
the tint or color of the stamp before placing it in the picture.</p>
<p>Stamps can be shrunk and expanded, and many stamps can be
flipped vertically, or displayed as a mirror-image, using
controls at the bottom right of the screen.</p>
<p align=center>
<img src="images/tool_stamp_controls.png" width=96 height=96 alt="">
</p>
<img src="images/tool_sfx.png" width=48 height=24 alt="" align=right>
<p>Different stamps can have different sound effects and/or
descriptive (spoken) sounds. Buttons at the lower left
(near Tux, the Linux penguin) allow you to re-play the sound effects
and descriptive sounds for the currently-selected stamp.</p>
<p>(NOTE: If the "<code>nostampcontrols</code>" option is set,
Tux&nbsp;Paint won't display the Mirror, Flip, Shrink and Grow
controls for stamps.
See the "<a href="OPTIONS.html"><i>Options</i></a>"
documentation.)</p>
<br clear=all>
<p align=center><img src="images/ex_stamps.png" width=182 height=156
alt=""></p>
<hr size=1>
</dd>

View file

@ -5,7 +5,7 @@
#
# Bill Kendrick <bill@newbreedsoftware.com>
# Default distribution version last modified:
# October 24, 2004
# January 21, 2007
# The variables described below are initially commented out.
@ -39,17 +39,20 @@ fullscreen=yes
# windowed=yes
### Window size / screen resolution. (640x480 is the default.)
### Window size / screen resolution. (800x600 is the default.)
### (Any size 640-or-wider by 480-or-taller should work.)
### NOTE: This affects canvas (drawing area) size.
### -----------------------------------------------------------
#
# windowsize=1600x1200
# windowsize=1400x1050
# windowsize=1280x1024
# windowsize=1024x768
# windowsize=800x600
# windowsize=640x480
windowsize=800x480
### Window / screen orientation. (Landscape (no rotation) is the default.)
### -----------------------------------------------------------------------
#
# orient=portrait
# orient=landscape
### Disable sound effects?
### ----------------------
@ -92,13 +95,13 @@ noprint=yes
### Use a different print command?
### ------------------------------
### Note: The command should expect a PNG file on its STDIN (standard-in)
### Note: The command should expect PostScript on its STDIN (standard-in)
###
### For example, to convert the image to greyscale before converting
### to PostScript, use "pngtopnm | ppmtopgm | pnmtops | lpr" as the command
### to PostScript, use "pstopnm | ppmtopgm | pnmtops | lpr" as the command
#
# printcommand={COMMAND}
# printcommand=pngtopnm | pnmtops | lpr
# printcommand=lpr
### Use the simpler shape tool? (No rotating)
@ -139,8 +142,8 @@ noprint=yes
### Don't use special mouse pointer (cursor) shapes?
### ------------------------------------------------
#
nofancycursors=yes
# fancycursors=yes
# nofancycursors=yes
fancycursors=yes
### Use the keyboard to control the mouse pointer (cursor)?

View file

@ -22,7 +22,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(See COPYING.txt)
June 14, 2002 - May 16, 2007
June 14, 2002 - June 7, 2007
$Id$
*/
@ -510,6 +510,7 @@ typedef struct
//static SDL_Rect r_screen; // was 640x480 @ 0,0 -- but this isn't so useful
static SDL_Rect r_canvas; // was 448x376 @ 96,0
static SDL_Rect r_tools; // was 96x336 @ 0,40
static SDL_Rect r_sfx;
static SDL_Rect r_toolopt; // was 96x336 @ 544,40
static SDL_Rect r_colors; // was 544x48 @ 96,376
static SDL_Rect r_ttools; // was 96x40 @ 0,0 (title for tools, "Tools")
@ -526,6 +527,7 @@ static int color_button_h; // was 48
// Define button grid dimensions. (in button units)
// These are the maximum slots -- some may be unused.
static grid_dims gd_tools; // was 2x7
static grid_dims gd_sfx;
static grid_dims gd_toolopt; // was 2x7
//static grid_dims gd_open; // was 4x4
static grid_dims gd_colors; // was 17x1
@ -599,6 +601,14 @@ static void setup_normal_screen_layout(void)
r_tuxarea.y = r_colors.y + r_colors.h;
r_tuxarea.h = WINDOW_HEIGHT - r_tuxarea.y;
r_sfx.x = r_tuxarea.x;
r_sfx.y = r_tuxarea.y;
r_sfx.w = button_w; // Two half-sized buttons across
r_sfx.h = button_h >> 1; // One half-sized button down
gd_sfx.rows = 1;
gd_sfx.cols = 2;
r_tools.x = 0;
r_tools.y = r_ttools.h + r_ttools.y;
r_tools.w = gd_tools.cols * button_w;
@ -832,10 +842,12 @@ static int cur_undo, oldest_undo, newest_undo;
static SDL_Surface *img_title, *img_title_credits, *img_title_tuxpaint;
static SDL_Surface *img_btn_up, *img_btn_down, *img_btn_off;
static SDL_Surface *img_btnsm_up, *img_btnsm_off;
static SDL_Surface *img_prev, *img_next;
static SDL_Surface *img_dead40x40;
static SDL_Surface *img_black, *img_grey;
static SDL_Surface *img_yes, *img_no;
static SDL_Surface *img_sfx, *img_speak;
static SDL_Surface *img_open, *img_erase, *img_back, *img_trash;
static SDL_Surface *img_slideshow, *img_play, *img_select_digits;
static SDL_Surface *img_printer, *img_printer_wait, *img_save_over;
@ -1688,6 +1700,11 @@ static void mainloop(void)
{
mute = !mute;
Mix_HaltChannel(-1);
if (mute)
draw_tux_text(TUX_BORED, gettext("Sound muted."), 0);
else
draw_tux_text(TUX_BORED, gettext("Sound unmuted."), 0);
}
}
else if (key == SDLK_ESCAPE &&
@ -1987,6 +2004,7 @@ static void mainloop(void)
"", img_mouse, img_mouse_click, NULL, 1);
if (cur_tool == TOOL_TEXT)
do_render_cur_text(0);
draw_tux_text(TUX_BORED, "", 0);
}
}
else if ((event.type == SDL_MOUSEBUTTONDOWN ||
@ -2251,9 +2269,11 @@ static void mainloop(void)
}
else
{
cur_tool = old_tool;
draw_tux_text(tool_tux[TUX_DEFAULT], TIP_NEW_ABORT, 1);
if (old_tool == TOOL_TEXT)
if (cur_tool == TOOL_TEXT)
do_render_cur_text(0);
}
@ -2303,6 +2323,7 @@ static void mainloop(void)
cur_tool = old_tool;
draw_toolbar();
draw_tux_text(TUX_BORED, "", 0);
update_screen_rect(&r_tools);
}
else if (cur_tool == TOOL_QUIT)
@ -2989,6 +3010,30 @@ static void mainloop(void)
button_down = 1;
}
else if (HIT(r_sfx) && valid_click(event.button.button))
{
/* A sound player button on the lower left has been pressed! */
if (cur_tool == TOOL_STAMP && use_sound && !mute)
{
which = GRIDHIT_GD(r_sfx, gd_sfx);
if (which == 0 &&
!stamp_data[stamp_group][cur_stamp[stamp_group]]->no_sound)
{
/* Re-play sound effect: */
Mix_ChannelFinished(NULL);
Mix_PlayChannel(2, stamp_data[stamp_group][cur_thing]->ssnd, 0);
}
else if (which == 1 &&
!stamp_data[stamp_group][cur_stamp[stamp_group]]->no_descsound)
{
Mix_ChannelFinished(NULL);
Mix_PlayChannel(2, stamp_data[stamp_group][cur_thing]->sdesc, 0);
}
}
}
}
else if (event.type == SDL_MOUSEBUTTONDOWN &&
wheely && event.button.button >= 4 && event.button.button <= 5)
@ -3276,6 +3321,23 @@ static void mainloop(void)
do_setcursor(cursor_arrow);
}
}
else if (HIT(r_sfx))
{
/* Sound player buttons: */
if (cur_tool == TOOL_STAMP && use_sound && !mute &&
((GRIDHIT_GD(r_sfx, gd_sfx) == 0 &&
!stamp_data[stamp_group][cur_stamp[stamp_group]]->no_sound) ||
(GRIDHIT_GD(r_sfx, gd_sfx) == 1 &&
!stamp_data[stamp_group][cur_stamp[stamp_group]]->no_descsound)))
{
do_setcursor(cursor_hand);
}
else
{
do_setcursor(cursor_arrow);
}
}
else if (HIT(r_colors))
{
/* Color picker: */
@ -7294,6 +7356,12 @@ static void setup(int argc, char *argv[])
img_btn_down = loadimage(DATA_PREFIX "images/ui/btn_down.png");
img_btn_off = loadimage(DATA_PREFIX "images/ui/btn_off.png");
img_btnsm_up = loadimage(DATA_PREFIX "images/ui/btnsm_up.png");
img_btnsm_off = loadimage(DATA_PREFIX "images/ui/btnsm_off.png");
img_sfx = loadimage(DATA_PREFIX "images/tools/sfx.png");
img_speak = loadimage(DATA_PREFIX "images/tools/speak.png");
img_black = SDL_CreateRGBSurface(SDL_SRCALPHA | SDL_SWSURFACE,
img_btn_off->w, img_btn_off->h,
img_btn_off->format->BitsPerPixel,
@ -9845,6 +9913,9 @@ static void draw_tux_text_ex(int which_tux, const char *const str,
{
SDL_Rect dest;
SDL_Color black = { 0, 0, 0, 0 };
int w;
SDL_Surface * btn;
/* Remove any text-changing timer if one is running: */
control_drawtext_timer(0, "", 0);
@ -9860,13 +9931,64 @@ static void draw_tux_text_ex(int which_tux, const char *const str,
if (dest.y < r_tuxarea.y)
dest.y = r_tuxarea.y;
// Don't let sfx and speak buttons cover the top of Tux, either:
if (cur_tool == TOOL_STAMP && use_sound && !mute)
{
if (dest.y < r_sfx.y + r_sfx.h)
dest.y = r_sfx.y + r_sfx.h;
}
SDL_BlitSurface(img_tux[which_tux], NULL, screen, &dest);
// Wide enough for Tux, or two stamp sound buttons (whichever's wider) */
w = max(img_tux[which_tux]->w, img_btnsm_up->w) + 5;
wordwrap_text_ex(str, black,
img_tux[which_tux]->w + 5,
r_tuxarea.y, r_tuxarea.w, want_right_to_left,
w, r_tuxarea.y, r_tuxarea.w, want_right_to_left,
locale_text);
/* Draw 'sound effect' and 'speak' buttons, if we're in the Stamp tool */
if (cur_tool == TOOL_STAMP && use_sound && !mute)
{
/* Sound effect: */
if (stamp_data[stamp_group][cur_stamp[stamp_group]]->no_sound)
btn = img_btnsm_off;
else
btn = img_btnsm_up;
dest.x = 0;
dest.y = r_tuxarea.y;
SDL_BlitSurface(btn, NULL, screen, &dest);
dest.x = (img_btnsm_up->w - img_sfx->w) / 2;
dest.y = r_tuxarea.y + ((img_btnsm_up->h - img_sfx->h) / 2);
SDL_BlitSurface(img_sfx, NULL, screen, &dest);
/* Speak: */
if (stamp_data[stamp_group][cur_stamp[stamp_group]]->no_descsound)
btn = img_btnsm_off;
else
btn = img_btnsm_up;
dest.x = img_btnsm_up->w;
dest.y = r_tuxarea.y;
SDL_BlitSurface(btn, NULL, screen, &dest);
dest.x = img_btnsm_up->w + ((img_btnsm_up->w - img_speak->w) / 2);
dest.y = r_tuxarea.y + ((img_btnsm_up->h - img_speak->h) / 2);
SDL_BlitSurface(img_speak, NULL, screen, &dest);
}
update_screen_rect(&r_tuxarea);
}
@ -11469,6 +11591,12 @@ static void cleanup(void)
free_surface(&img_btn_down);
free_surface(&img_btn_off);
free_surface(&img_btnsm_up);
free_surface(&img_btnsm_off);
free_surface(&img_sfx);
free_surface(&img_speak);
free_surface(&img_cursor_up);
free_surface(&img_cursor_down);
@ -12445,7 +12573,7 @@ static void get_new_file_id(void)
static int do_quit(int tool)
{
int done;
int done, tmp_tool;
done = do_prompt_snd(PROMPT_QUIT_TXT,
PROMPT_QUIT_YES, PROMPT_QUIT_NO, SND_AREYOUSURE);
@ -12473,6 +12601,14 @@ static int do_quit(int tool)
{
if (tool == TOOL_TEXT)
do_render_cur_text(0);
/* Bring back stamp sound effects and speak buttons, if we were in
Stamps tool: */
tmp_tool = cur_tool;
cur_tool = tool;
draw_tux_text(TUX_BORED, "", 0);
cur_tool = tmp_tool;
}
return (done);