Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwkendrick <wkendrick>2011-04-26 19:14:16 (GMT)
committer wkendrick <wkendrick>2011-04-26 19:14:16 (GMT)
commitbbc08d90309719f695cdf5a5fb73205b7144294c (patch)
tree5e092d706881591077540480af6ab0a71a22fd12
parent75716227670637dd049e1a3f36e62bbb057eda67 (diff)
"Paint" magic tool can now be one-click or -with-preview, to support
mouse accessibility mode (which introduced issues with tools like 'Flower' and 'Fold' (which show previews) and 'Ripples' (which doesn't involve any dragging)).
-rw-r--r--Makefile4
-rw-r--r--docs/CHANGES.txt12
-rw-r--r--magic/src/flower.c6
-rw-r--r--magic/src/fold.c2
-rw-r--r--magic/src/ripples.c4
-rw-r--r--src/tuxpaint.c36
6 files changed, 47 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index b9fd236..14f2eda 100644
--- a/Makefile
+++ b/Makefile
@@ -4,14 +4,14 @@
# bill@newbreedsoftware.com
# http://www.tuxpaint.org/
-# June 14, 2002 - January 11, 2011
+# June 14, 2002 - April 26, 2011
# The version number, for release:
VER_VERSION:=0.9.22
VER_DATE:=$(shell date +"%Y-%m-%d")
-MAGIC_API_VERSION:=0x00000002
+MAGIC_API_VERSION:=0x00000003
# Need to know the OS
diff --git a/docs/CHANGES.txt b/docs/CHANGES.txt
index 9079049..331e91b 100644
--- a/docs/CHANGES.txt
+++ b/docs/CHANGES.txt
@@ -6,7 +6,7 @@ Copyright (c) 2002-2011 by Bill Kendrick and others
bill@newbreedsoftware.com
http://www.tuxpaint.org/
-$Id: CHANGES.txt,v 1.772 2011/04/26 18:47:26 wkendrick Exp $
+$Id: CHANGES.txt,v 1.773 2011/04/26 19:14:17 wkendrick Exp $
2011.April.26 (0.9.22)
* New Tools:
@@ -114,6 +114,16 @@ $Id: CHANGES.txt,v 1.772 2011/04/26 18:47:26 wkendrick Exp $
keyboard layouts.
* Who wrote this, so we can credit!?!?
+ * Magic Tool Improvememnts:
+ --------------------------
+ * Magic tools can register themselves as paint with one click
+ (versus click/drag/release): MODE_ONECLICK. (e.g., "Ripples")
+ Utilized by mouse-accessibility feature.
+
+ * Magic tools can register themsevles as paint-with-a-preview:
+ MODE_PAINT_WITH_PREVIEW. (e.g., "Flower")
+ Utilized by mouse-accessibility feature.
+
* Other Improvements:
-------------------
* Quicker prompt window pop-up animation.
diff --git a/magic/src/flower.c b/magic/src/flower.c
index 0219f35..7bd2168 100644
--- a/magic/src/flower.c
+++ b/magic/src/flower.c
@@ -23,8 +23,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(See COPYING.txt)
- Last updated: July 8, 2008
- $Id: flower.c,v 1.11 2008/07/10 20:26:39 wkendrick Exp $
+ Last updated: April 26, 2011
+ $Id: flower.c,v 1.12 2011/04/26 19:14:17 wkendrick Exp $
*/
#include <stdio.h>
@@ -604,5 +604,5 @@ void flower_switchout(magic_api * api, int which, int mode, SDL_Surface * canvas
int flower_modes(magic_api * api, int which)
{
- return(MODE_PAINT);
+ return(MODE_PAINT_WITH_PREVIEW);
}
diff --git a/magic/src/fold.c b/magic/src/fold.c
index 315da00..5be8fbc 100644
--- a/magic/src/fold.c
+++ b/magic/src/fold.c
@@ -483,5 +483,5 @@ void fold_switchout(magic_api * api, int which, int mode, SDL_Surface * canvas)
int fold_modes(magic_api * api, int which)
{
- return(MODE_PAINT);
+ return(MODE_PAINT_WITH_PREVIEW);
}
diff --git a/magic/src/ripples.c b/magic/src/ripples.c
index 9587ebc..1032d0a 100644
--- a/magic/src/ripples.c
+++ b/magic/src/ripples.c
@@ -24,7 +24,7 @@
(See COPYING.txt)
Last updated: July 8, 2008
- $Id: ripples.c,v 1.8 2008/07/10 20:26:40 wkendrick Exp $
+ $Id: ripples.c,v 1.9 2011/04/26 19:14:17 wkendrick Exp $
*/
#include <stdio.h>
@@ -187,5 +187,5 @@ void ripples_switchout(magic_api * api, int which, int mode, SDL_Surface * canva
int ripples_modes(magic_api * api, int which)
{
- return(MODE_PAINT);
+ return(MODE_ONECLICK);
}
diff --git a/src/tuxpaint.c b/src/tuxpaint.c
index bcf6859..4ae3182 100644
--- a/src/tuxpaint.c
+++ b/src/tuxpaint.c
@@ -22,7 +22,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(See COPYING.txt)
- June 14, 2002 - April 18, 2011
+ June 14, 2002 - April 26, 2011
*/
@@ -3848,6 +3848,22 @@ static void mainloop(void)
draw_magic();
update_screen_rect(&r_toolopt);
}
+ else if (which == 0 && magics[cur_magic].avail_modes & MODE_PAINT_WITH_PREVIEW)
+ {
+ magic_switchout(canvas);
+ magics[cur_magic].mode = MODE_PAINT_WITH_PREVIEW;
+ magic_switchin(canvas);
+ draw_magic();
+ update_screen_rect(&r_toolopt);
+ }
+ else if (which == 0 && magics[cur_magic].avail_modes & MODE_ONECLICK)
+ {
+ magic_switchout(canvas);
+ magics[cur_magic].mode = MODE_ONECLICK;
+ magic_switchin(canvas);
+ draw_magic();
+ update_screen_rect(&r_toolopt);
+ }
/* FIXME: Sfx */
}
else if (cur_tool == TOOL_TEXT)
@@ -4523,7 +4539,7 @@ static void mainloop(void)
if (mouseaccessibility)
{
- if (magics[cur_magic].mode != MODE_FULLSCREEN) /* FIXME: Some non-fullscreen tools are also click-only (not click-and-drag), so we need another magic MODE_ type -bjk 2011.04.26 */
+ if (magics[cur_magic].mode != MODE_FULLSCREEN && magics[cur_magic].mode != MODE_ONECLICK) /* Note: some non-fullscreen tools are also click-only (not click-and-drag) -bjk 2011.04.26 */
emulate_button_pressed = !emulate_button_pressed;
}
}
@@ -4988,7 +5004,7 @@ static void mainloop(void)
}
}
}
- else if (cur_tool == TOOL_MAGIC && magics[cur_magic].mode == MODE_PAINT)
+ else if (cur_tool == TOOL_MAGIC && (magics[cur_magic].mode == MODE_PAINT || magics[cur_magic].mode == MODE_ONECLICK || magics[cur_magic].mode == MODE_PAINT_WITH_PREVIEW))
{
if(!mouseaccessibility || (mouseaccessibility && !emulate_button_pressed))
{
@@ -5305,7 +5321,7 @@ static void mainloop(void)
SDL_Flip(screen);
}
}
- else if (cur_tool == TOOL_MAGIC && magics[cur_magic].mode == MODE_PAINT)
+ else if (cur_tool == TOOL_MAGIC && (magics[cur_magic].mode == MODE_PAINT || magics[cur_magic].mode == MODE_ONECLICK || magics[cur_magic].mode == MODE_PAINT_WITH_PREVIEW))
{
int undo_ctr;
SDL_Surface * last;
@@ -8049,9 +8065,9 @@ static void draw_magic(void)
/* Show paint button: */
- if (magics[cur_magic].mode == MODE_PAINT)
+ if (magics[cur_magic].mode == MODE_PAINT || magics[cur_magic].mode == MODE_ONECLICK || magics[cur_magic].mode == MODE_PAINT_WITH_PREVIEW)
button_color = img_btn_down; /* Active */
- else if (magics[cur_magic].avail_modes & MODE_PAINT)
+ else if (magics[cur_magic].avail_modes & MODE_PAINT || magics[cur_magic].avail_modes & MODE_ONECLICK || magics[cur_magic].avail_modes & MODE_PAINT_WITH_PREVIEW)
button_color = img_btn_up; /* Available, but not active */
else
button_color = img_btn_off; /* Unavailable */
@@ -17613,6 +17629,10 @@ static void load_magic_plugins(void)
magics[num_magics].colors = magic_funcs[num_plugin_files].requires_colors(magic_api_struct, i);
if (magics[num_magics].avail_modes & MODE_PAINT)
magics[num_magics].mode = MODE_PAINT;
+ else if (magics[num_magics].avail_modes & MODE_ONECLICK)
+ magics[num_magics].mode = MODE_ONECLICK;
+ else if (magics[num_magics].avail_modes & MODE_PAINT_WITH_PREVIEW)
+ magics[num_magics].mode = MODE_PAINT_WITH_PREVIEW;
else
magics[num_magics].mode = MODE_FULLSCREEN;
@@ -19487,7 +19507,7 @@ static void magic_switchout(SDL_Surface * last)
canvas, last);
update_canvas(0, 0, canvas->w, canvas->h);
- if (was_clicking) {
+ if (was_clicking && magics[cur_magic].mode == MODE_PAINT_WITH_PREVIEW) {
/* Clean up preview! */
do_undo();
tool_avail[TOOL_REDO] = 0; /* Don't let them 'redo' to get preview back */
@@ -19517,7 +19537,7 @@ static void magic_switchin(SDL_Surface * last)
static int magic_modeint(int mode)
{
- if (mode == MODE_PAINT)
+ if (mode == MODE_PAINT || mode == MODE_ONECLICK || mode == MODE_PAINT_WITH_PREVIEW)
return 0;
else if (mode == MODE_FULLSCREEN)
return 1;