Cursor patch II: This is only the logic inside the cursor system and not

2000-06-09  Michael Natterer  <mitch@gimp.org>

	Cursor patch II:
	This is only the logic inside the cursor system and not yet used.

	* app/cursorutil.[ch]: [gimp]_change_win_cursor() take lots of
	parameters now and compose cursors from up to three cursor
	bitmaps/masks.

	* app/gdisplay.[ch]: As a test, create a hardcoded example cursor
	if "Cursor Mode" is set to "Tool Icon with Crosshair" in prefs.

	* app/curves.c
	* app/dialog_handler.c
	* app/scroll.c: changed the calls to the win_cursor function.

	* app/tools.[ch]: added a cursor and a toggle cursor to the ToolInfo
	structure of all tools.

	* app/toolsF.h: new ToolType TOOL_TYPE_NONE.

	* app/gimpdnd.c
	* app/interface.c: check for silly filenames in the file dnd
	callback. Closes #13733.

	* Makefile.am
	* cursors/bucket_fill_small.xbm
	* cursors/bucket_fill_small_mask.xbm
	* cursors/crop_small.xbm
	* cursors/crop_small_mask.xbm
	* cursors/crosshair_small.xbm
	* cursors/crosshair_small_mask.xbm
	* cursors/ellipse_select_small.xbm
	* cursors/ellipse_select_small_mask.xbm
	* cursors/eraser_small.xbm
	* cursors/eraser_small_mask.xbm
	* cursors/free_select_small.xbm
	* cursors/free_select_small_mask.xbm
	* cursors/fuzzy_select_small.xbm
	* cursors/fuzzy_select_small_mask.xbm
	* cursors/intersect.xbm
	* cursors/intersect_mask.xbm
	* cursors/minus.xbm
	* cursors/minus_mask.xbm
	* cursors/move.xbm
	* cursors/move_mask.xbm
	* cursors/paintbrush_small.xbm
	* cursors/paintbrush_small_mask.xbm
	* cursors/pencil_small.xbm
	* cursors/pencil_small_mask.xbm
	* cursors/plus.xbm
	* cursors/plus_mask.xbm
	* cursors/rect_select_small.xbm
	* cursors/rect_select_small_mask.xbm
	* cursors/resize_small.xbm
	* cursors/resize_small_mask.xbm
	* cursors/zoom.xbm
	* cursors/zoom_mask.xbm
	* cursors/zoom_small.xbm
	* cursors/zoom_small_mask.xbm: new files extracted from Tigert's
	gimp-tool-cursors.xcf created at GimpCon.

	Tigert, I'll commit the xcf as soon as I've added empty layers
	with the names of the cursors that are missing.

	* cursors/mouse.xbm
	* cursors/mouse_mask.xbm: made it 32x32 to allow for cursor
	composition.
This commit is contained in:
Michael Natterer 2000-06-09 12:31:19 +00:00 committed by Michael Natterer
parent 23e29be3b4
commit d0a551bbf8
66 changed files with 2635 additions and 395 deletions

View File

@ -1,3 +1,72 @@
2000-06-09 Michael Natterer <mitch@gimp.org>
Cursor patch II:
This is only the logic inside the cursor system and not yet used.
* app/cursorutil.[ch]: [gimp]_change_win_cursor() take lots of
parameters now and compose cursors from up to three cursor
bitmaps/masks.
* app/gdisplay.[ch]: As a test, create a hardcoded example cursor
if "Cursor Mode" is set to "Tool Icon with Crosshair" in prefs.
* app/curves.c
* app/dialog_handler.c
* app/scroll.c: changed the calls to the win_cursor function.
* app/tools.[ch]: added a cursor and a toggle cursor to the ToolInfo
structure of all tools.
* app/toolsF.h: new ToolType TOOL_TYPE_NONE.
* app/gimpdnd.c
* app/interface.c: check for silly filenames in the file dnd
callback. Closes #13733.
* Makefile.am
* cursors/bucket_fill_small.xbm
* cursors/bucket_fill_small_mask.xbm
* cursors/crop_small.xbm
* cursors/crop_small_mask.xbm
* cursors/crosshair_small.xbm
* cursors/crosshair_small_mask.xbm
* cursors/ellipse_select_small.xbm
* cursors/ellipse_select_small_mask.xbm
* cursors/eraser_small.xbm
* cursors/eraser_small_mask.xbm
* cursors/free_select_small.xbm
* cursors/free_select_small_mask.xbm
* cursors/fuzzy_select_small.xbm
* cursors/fuzzy_select_small_mask.xbm
* cursors/intersect.xbm
* cursors/intersect_mask.xbm
* cursors/minus.xbm
* cursors/minus_mask.xbm
* cursors/move.xbm
* cursors/move_mask.xbm
* cursors/paintbrush_small.xbm
* cursors/paintbrush_small_mask.xbm
* cursors/pencil_small.xbm
* cursors/pencil_small_mask.xbm
* cursors/plus.xbm
* cursors/plus_mask.xbm
* cursors/rect_select_small.xbm
* cursors/rect_select_small_mask.xbm
* cursors/resize_small.xbm
* cursors/resize_small_mask.xbm
* cursors/zoom.xbm
* cursors/zoom_mask.xbm
* cursors/zoom_small.xbm
* cursors/zoom_small_mask.xbm: new files extracted from Tigert's
gimp-tool-cursors.xcf created at GimpCon.
Tigert, I'll commit the xcf as soon as I've added empty layers
with the names of the cursors that are missing.
* cursors/mouse.xbm
* cursors/mouse_mask.xbm: made it 32x32 to allow for cursor
composition.
2000-06-09 Sven Neumann <sven@gimp.org>
* gimp.h

View File

@ -26,6 +26,41 @@ EXTRA_DIST = \
cursors/mouse_mask.xbm \
cursors/crosshair.xbm \
cursors/crosshair_mask.xbm \
cursors/crosshair_small.xbm \
cursors/crosshair_small_mask.xbm \
cursors/intersect.xbm \
cursors/intersect_mask.xbm \
cursors/minus.xbm \
cursors/minus_mask.xbm \
cursors/move.xbm \
cursors/move_mask.xbm \
cursors/plus.xbm \
cursors/plus_mask.xbm \
rect_select_small.xbm \
rect_select_small_mask.xbm \
ellipse_select_small.xbm \
ellipse_select_small_mask.xbm \
free_select_small.xbm \
free_select_small_mask.xbm \
fuzzy_select_small.xbm \
fuzzy_select_small_mask.xbm \
bucket_fill_small.xbm \
bucket_fill_small_mask.xbm \
crop_small.xbm \
crop_small_mask.xbm \
resize_small.xbm \
resize_small_mask.xbm \
pencil_small.xbm \
pencil_small_mask.xbm \
paintbrush_small.xbm \
paintbrush_small_mask.xbm \
eraser_small.xbm \
eraser_small_mask.xbm \
cursors/zoom.xbm \
cursors/zoom_mask.xbm \
cursors/zoom_small.xbm \
cursors/zoom_small_mask.xbm \
\
cursors/mouse_add.xbm \
cursors/mouse_add_mask.xbm \
cursors/mouse_subtract.xbm \

View File

@ -1497,10 +1497,11 @@ curves_graph_events (GtkWidget *widget,
if (new_type != cursor_type)
{
cursor_type = new_type;
change_win_cursor (cd->graph->window, cursor_type);
change_win_cursor (cd->graph->window, cursor_type,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
curve_print_loc(cd,x,255-y);
curve_print_loc (cd, x, 255 - y);
break;

View File

@ -99,7 +99,8 @@ gdisplay_new (GimpImage *gimage,
*/
gdisp = g_new (GDisplay, 1);
gdisp->offset_x = gdisp->offset_y = 0;
gdisp->offset_x = 0;
gdisp->offset_y = 0;
gdisp->scale = scale;
gdisp->dot_for_dot = default_dot_for_dot;
gdisp->gimage = gimage;
@ -114,7 +115,10 @@ gdisplay_new (GimpImage *gimage,
gdisp->display_areas = NULL;
gdisp->disp_xoffset = 0;
gdisp->disp_yoffset = 0;
gdisp->current_cursor = -1;
gdisp->current_cursor = (GdkCursorType) -1;
gdisp->cursor_tool = TOOL_TYPE_NONE;
gdisp->cursor_modifier = CURSOR_MODIFIER_NONE;
gdisp->toggle_cursor = FALSE;
gdisp->draw_guides = TRUE;
gdisp->snap_to_guides = TRUE;
@ -1556,45 +1560,80 @@ gdisplay_untransform_coords_f (GDisplay *gdisp,
/* install and remove tool cursor from gdisplay... */
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install)
{
switch (cursor_mode)
{
case CURSOR_MODE_TOOL_ICON:
break;
case CURSOR_MODE_TOOL_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_SMALL_CURSOR;
tool_type = RECT_SELECT;
modifier = CURSOR_MODIFIER_PLUS;
break;
case CURSOR_MODE_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_CURSOR;
tool_type = TOOL_TYPE_NONE;
modifier = CURSOR_MODIFIER_NONE;
break;
}
if (gdisp->current_cursor != (gint)cursor_type)
if (gdisp->current_cursor != cursor_type ||
gdisp->cursor_tool != tool_type ||
gdisp->cursor_modifier != modifier ||
gdisp->toggle_cursor != toggle_cursor ||
always_install)
{
gdisp->current_cursor = (gint)cursor_type;
gdisp->current_cursor = cursor_type;
gdisp->cursor_tool = tool_type;
gdisp->cursor_modifier = modifier;
gdisp->toggle_cursor = toggle_cursor;
if (!gdisp->using_override_cursor)
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
tool_type,
modifier,
toggle_cursor);
}
}
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if (!gdisp->using_override_cursor)
gdisplay_real_install_tool_cursor (gdisp,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE,
FALSE);
}
/* install an override-cursor on gdisplay... */
void
gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if ((!gdisp->using_override_cursor) ||
(
(gdisp->using_override_cursor) &&
(gdisp->override_cursor != cursor_type)
)
)
if (!gdisp->using_override_cursor ||
(gdisp->using_override_cursor &&
(gdisp->override_cursor != cursor_type)))
{
gdisp->override_cursor = cursor_type;
gdisp->using_override_cursor = TRUE;
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE);
}
}
@ -1606,11 +1645,12 @@ gdisplay_remove_override_cursor (GDisplay *gdisp)
if (gdisp->using_override_cursor)
{
gdisp->using_override_cursor = FALSE;
change_win_cursor (gdisp->canvas->window, gdisp->current_cursor);
}
else
{
/* g_warning ("Tried to remove override-cursor from un-overridden gdisp."); */
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
}

View File

@ -20,6 +20,7 @@
#include <gtk/gtk.h>
#include "cursorutil.h"
#include "gimage.h"
#include "info_dialog.h"
#include "selection.h"
@ -143,12 +144,15 @@ struct _GDisplay
GSList *update_areas; /* Update areas list */
GSList *display_areas; /* Display areas list */
gint current_cursor; /* Currently installed cursor */
GdkCursorType current_cursor; /* Currently installed cursor */
ToolType cursor_tool; /* Cursor for which tool? */
CursorModifier cursor_modifier; /* Cursor modifier (plus, minus, ...) */
gboolean toggle_cursor; /* Cursor toggled? */
GdkCursorType override_cursor; /* Overriding cursor (ie. hourglass) */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gboolean draw_cursor; /* should we draw software cursor ? */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gint cursor_x; /* software cursor X value */
gint cursor_y; /* software cursor Y value */
gboolean proximity; /* is a device in proximity of gdisplay ? */
@ -178,10 +182,20 @@ void gdisplay_transform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_untransform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_install_tool_cursor (GDisplay *, GdkCursorType);
void gdisplay_remove_tool_cursor (GDisplay *);
void gdisplay_install_override_cursor(GDisplay *, GdkCursorType);
void gdisplay_remove_override_cursor (GDisplay *);
void gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install);
void gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_tool_cursor (GDisplay *gdisp);
void gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_override_cursor (GDisplay *gdisp);
void gdisplay_set_menu_sensitivity (GDisplay *);
void gdisplay_expose_area (GDisplay *, gint, gint, gint, gint);
void gdisplay_expose_guide (GDisplay *, Guide *);

View File

@ -19,11 +19,20 @@
#include "cursorutil.h"
#include "dialog_handler.h"
#include "gdisplay.h" /* for gdisplay_*_override_cursor() */
#include "tools.h"
#include "cursors/mouse.xbm"
#include "cursors/mouse_mask.xbm"
#include "cursors/crosshair.xbm"
#include "cursors/crosshair_mask.xbm"
#include "cursors/crosshair_small.xbm"
#include "cursors/crosshair_small_mask.xbm"
/* stuff to be reordered */
#include "cursors/zoom.xbm"
#include "cursors/zoom_mask.xbm"
/* old stuff */
#include "cursors/mouse_add.xbm"
#include "cursors/mouse_add_mask.xbm"
#include "cursors/mouse_subtract.xbm"
@ -55,105 +64,154 @@
#include "cursors/zoom_out.xbm"
#include "cursors/zoom_out_mask.xbm"
typedef struct
{
guchar *bits;
guchar *mask_bits;
gint width, height;
gint x_hot, y_hot;
GdkCursor *cursor;
} BM_Cursor;
/* modifiers */
#include "cursors/plus.xbm"
#include "cursors/plus_mask.xbm"
#include "cursors/minus.xbm"
#include "cursors/minus_mask.xbm"
#include "cursors/intersect.xbm"
#include "cursors/intersect_mask.xbm"
#include "cursors/move.xbm"
#include "cursors/move_mask.xbm"
/* FIXME: gimp_busy HACK */
gboolean gimp_busy = FALSE;
static BM_Cursor gimp_cursors[] =
static BitmapCursor gimp_cursors[] =
/* these have to match up with the enum in cursorutil.h */
{
{
mouse_bits, mouse_mask_bits,
mouse_width, mouse_height,
mouse_x_hot, mouse_y_hot, NULL
mouse_x_hot, mouse_y_hot, NULL, NULL, NULL
},
{
crosshair_bits, crosshair_mask_bits,
crosshair_width, crosshair_height,
crosshair_x_hot, crosshair_y_hot, NULL
crosshair_x_hot, crosshair_y_hot, NULL, NULL, NULL
},
{
crosshair_small_bits, crosshair_small_mask_bits,
crosshair_small_width, crosshair_small_height,
crosshair_small_x_hot, crosshair_small_y_hot, NULL, NULL, NULL
},
/* to be reordered */
{
zoom_bits, zoom_mask_bits,
zoom_width, zoom_height,
zoom_x_hot, zoom_y_hot, NULL, NULL, NULL
},
/* to be removed */
{
mouse_add_bits, mouse_add_mask_bits,
mouse_add_width, mouse_add_height,
mouse_add_x_hot, mouse_add_y_hot, NULL
mouse_add_x_hot, mouse_add_y_hot, NULL, NULL, NULL
},
{
mouse_subtract_bits, mouse_subtract_mask_bits,
mouse_subtract_width, mouse_subtract_height,
mouse_subtract_x_hot, mouse_subtract_y_hot, NULL
mouse_subtract_x_hot, mouse_subtract_y_hot, NULL, NULL, NULL
},
{
mouse_intersect_bits, mouse_intersect_mask_bits,
mouse_intersect_width, mouse_intersect_height,
mouse_intersect_x_hot, mouse_intersect_y_hot, NULL
mouse_intersect_x_hot, mouse_intersect_y_hot, NULL, NULL, NULL
},
{
mouse_point_bits, mouse_point_mask_bits,
mouse_point_width, mouse_point_height,
mouse_point_x_hot, mouse_point_y_hot, NULL
mouse_point_x_hot, mouse_point_y_hot, NULL, NULL, NULL
},
{
mouse_rectangle_bits, mouse_rectangle_mask_bits,
mouse_rectangle_width, mouse_rectangle_height,
mouse_rectangle_x_hot, mouse_rectangle_y_hot, NULL
mouse_rectangle_x_hot, mouse_rectangle_y_hot, NULL, NULL, NULL
},
{
mouse_move_bits, mouse_move_mask_bits,
mouse_move_width, mouse_move_height,
mouse_move_x_hot, mouse_move_y_hot, NULL
mouse_move_x_hot, mouse_move_y_hot, NULL, NULL, NULL
},
{
selection_bits, selection_mask_bits,
selection_width, selection_height,
selection_x_hot, selection_y_hot, NULL
selection_x_hot, selection_y_hot, NULL, NULL, NULL
},
{
selection_add_bits, selection_add_mask_bits,
selection_add_width, selection_add_height,
selection_add_x_hot, selection_add_y_hot, NULL
selection_add_x_hot, selection_add_y_hot, NULL, NULL, NULL
},
{
selection_subtract_bits, selection_subtract_mask_bits,
selection_subtract_width, selection_subtract_height,
selection_subtract_x_hot, selection_subtract_y_hot, NULL
selection_subtract_x_hot, selection_subtract_y_hot, NULL, NULL, NULL
},
{
selection_intersect_bits, selection_intersect_mask_bits,
selection_intersect_width, selection_intersect_height,
selection_intersect_x_hot, selection_intersect_y_hot, NULL
selection_intersect_x_hot, selection_intersect_y_hot, NULL, NULL, NULL
},
{
selection_move_bits, selection_move_mask_bits,
selection_move_width, selection_move_height,
selection_move_x_hot, selection_move_y_hot, NULL
selection_move_x_hot, selection_move_y_hot, NULL, NULL, NULL
},
{
bad_bits, bad_mask_bits,
bad_width, bad_height,
bad_x_hot, bad_y_hot, NULL
bad_x_hot, bad_y_hot, NULL, NULL, NULL
},
{
dropper_bits, dropper_mask_bits,
dropper_width, dropper_height,
dropper_x_hot, dropper_y_hot, NULL
dropper_x_hot, dropper_y_hot, NULL, NULL, NULL
},
{
zoom_in_bits, zoom_in_mask_bits,
zoom_in_width, zoom_in_height,
zoom_in_x_hot, zoom_in_y_hot, NULL
zoom_in_x_hot, zoom_in_y_hot, NULL, NULL, NULL
},
{
zoom_out_bits, zoom_out_mask_bits,
zoom_out_width, zoom_out_height,
zoom_out_x_hot, zoom_out_y_hot, NULL
zoom_out_x_hot, zoom_out_y_hot, NULL, NULL, NULL
}
};
enum
{
GIMP_PLUS_CURSOR = GIMP_LAST_CURSOR_ENTRY + 1,
GIMP_MINUS_CURSOR,
GIMP_INTERSECT_CURSOR,
GIMP_MOVE_CURSOR
};
static BitmapCursor modifier_cursors[] =
/* these have to match up with the enum above */
{
{
plus_bits, plus_mask_bits,
plus_width, plus_height,
plus_x_hot, plus_y_hot, NULL, NULL, NULL
},
{
minus_bits, minus_mask_bits,
minus_width, minus_height,
minus_x_hot, minus_y_hot, NULL, NULL, NULL
},
{
intersect_bits, intersect_mask_bits,
intersect_width, intersect_height,
intersect_x_hot, intersect_y_hot, NULL, NULL, NULL
},
{
move_bits, move_mask_bits,
move_width, move_height,
move_x_hot, move_y_hot, NULL, NULL, NULL
}
};
@ -163,56 +221,224 @@ static gboolean pending_removebusy = FALSE;
static void
create_cursor (BM_Cursor *bmcursor)
create_cursor_bitmaps (BitmapCursor *bmcursor)
{
GdkPixmap *pixmap;
GdkPixmap *pixmapmsk;
if (bmcursor->bitmap == NULL)
bmcursor->bitmap = gdk_bitmap_create_from_data (NULL, bmcursor->bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (bmcursor->bitmap != NULL);
if (bmcursor->mask == NULL)
bmcursor->mask = gdk_bitmap_create_from_data (NULL, bmcursor->mask_bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (bmcursor->mask != NULL);
}
static void
create_cursor (BitmapCursor *bmcursor)
{
if (bmcursor->bitmap == NULL ||
bmcursor->mask == NULL)
create_cursor_bitmaps (bmcursor);
if (bmcursor->cursor == NULL)
{
GdkColor fg, bg;
/* should have a way to configure the mouse colors */
gdk_color_parse ("#FFFFFF", &bg);
gdk_color_parse ("#000000", &fg);
pixmap = gdk_bitmap_create_from_data (NULL, bmcursor->bits,
bmcursor->width, bmcursor->height);
g_return_if_fail (pixmap != NULL);
pixmapmsk = gdk_bitmap_create_from_data (NULL, bmcursor->mask_bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (pixmapmsk != NULL);
bmcursor->cursor = gdk_cursor_new_from_pixmap (pixmap, pixmapmsk, &fg, &bg,
bmcursor->cursor = gdk_cursor_new_from_pixmap (bmcursor->bitmap,
bmcursor->mask,
&fg, &bg,
bmcursor->x_hot,
bmcursor->y_hot);
}
g_return_if_fail (bmcursor->cursor != NULL);
}
static void
gimp_change_win_cursor (GdkWindow *win,
GimpCursorType curtype)
GimpCursorType curtype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor)
{
GdkCursor *cursor;
GimpCursorType modtype = GIMP_PLUS_CURSOR;
GdkBitmap *bitmap;
GdkBitmap *mask;
GdkColor color;
GdkColor fg, bg;
static GdkGC *gc = NULL;
gint width;
gint height;
BitmapCursor *bmcursor = NULL;
BitmapCursor *bmmodifier = NULL;
BitmapCursor *bmtool = NULL;
g_return_if_fail (curtype < GIMP_LAST_CURSOR_ENTRY);
/* allow the small tool cursor only with the standard mouse and
* the small crosshair
*/
if (curtype != GIMP_MOUSE_CURSOR &&
curtype != GIMP_CROSSHAIR_SMALL_CURSOR)
tool_type = TOOL_TYPE_NONE;
curtype -= GIMP_MOUSE_CURSOR;
if (!gimp_cursors[(int)curtype].cursor)
create_cursor (&gimp_cursors[(int)curtype]);
cursor = gimp_cursors[(int)curtype].cursor;
bmcursor = &gimp_cursors[(int)curtype];
if (modifier == CURSOR_MODIFIER_NONE &&
tool_type == TOOL_TYPE_NONE)
{
if (bmcursor->cursor == NULL)
create_cursor (bmcursor);
gdk_window_set_cursor (win, bmcursor->cursor);
return;
}
switch (modifier)
{
case CURSOR_MODIFIER_PLUS:
modtype = GIMP_PLUS_CURSOR;
break;
case CURSOR_MODIFIER_MINUS:
modtype = GIMP_MINUS_CURSOR;
break;
case CURSOR_MODIFIER_INTERSECT:
modtype = GIMP_INTERSECT_CURSOR;
break;
case CURSOR_MODIFIER_MOVE:
modtype = GIMP_MOVE_CURSOR;
break;
default:
break;
}
if (modifier != CURSOR_MODIFIER_NONE)
{
modtype -= GIMP_PLUS_CURSOR;
bmmodifier = &modifier_cursors[(int)modtype];
}
if (tool_type != TOOL_TYPE_NONE)
{
if (toggle_cursor)
{
if (tool_info[(gint) tool_type].toggle_cursor.bits != NULL &&
tool_info[(gint) tool_type].toggle_cursor.mask_bits != NULL)
bmtool = &tool_info[(gint) tool_type].toggle_cursor;
}
else
{
if (tool_info[(gint) tool_type].tool_cursor.bits != NULL &&
tool_info[(gint) tool_type].tool_cursor.mask_bits != NULL)
bmtool = &tool_info[(gint) tool_type].tool_cursor;
}
}
if (bmcursor->bitmap == NULL ||
bmcursor->mask == NULL)
create_cursor_bitmaps (bmcursor);
if (bmmodifier->bitmap == NULL ||
bmmodifier->mask == NULL)
create_cursor_bitmaps (bmmodifier);
if (bmtool &&
(bmtool->bitmap == NULL ||
bmtool->mask == NULL))
create_cursor_bitmaps (bmtool);
if (gc == NULL)
gc = gdk_gc_new (bmcursor->bitmap);
gdk_window_get_size (bmcursor->bitmap, &width, &height);
bitmap = gdk_pixmap_new (NULL, width, height, 1);
mask = gdk_pixmap_new (NULL, width, height, 1);
color.pixel = 1;
gdk_gc_set_foreground (gc, &color);
gdk_draw_pixmap (bitmap, gc, bmcursor->bitmap,
0, 0, 0, 0, width, height);
if (bmmodifier)
{
gdk_gc_set_clip_mask (gc, bmmodifier->bitmap);
gdk_draw_pixmap (bitmap, gc, bmmodifier->bitmap,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
if (bmtool)
{
gdk_gc_set_clip_mask (gc, bmtool->bitmap);
gdk_draw_pixmap (bitmap, gc, bmtool->bitmap,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
gdk_draw_pixmap (mask, gc, bmcursor->mask,
0, 0, 0, 0, width, height);
if (bmmodifier)
{
gdk_gc_set_clip_mask (gc, bmmodifier->mask);
gdk_draw_pixmap (mask, gc, bmmodifier->mask,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
if (bmtool)
{
gdk_gc_set_clip_mask (gc, bmtool->mask);
gdk_draw_pixmap (mask, gc, bmtool->mask,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
/* should have a way to configure the mouse colors */
gdk_color_parse ("#FFFFFF", &bg);
gdk_color_parse ("#000000", &fg);
cursor = gdk_cursor_new_from_pixmap (bitmap, mask,
&fg, &bg,
bmcursor->x_hot,
bmcursor->y_hot);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);
}
void
change_win_cursor (GdkWindow *win,
GdkCursorType cursortype)
GdkCursorType cursortype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor)
{
GdkCursor *cursor;
if (cursortype > GDK_LAST_CURSOR)
{
gimp_change_win_cursor (win, (GimpCursorType)cursortype);
gimp_change_win_cursor (win, (GimpCursorType) cursortype,
tool_type, modifier, toggle_cursor);
return;
}
cursor = gdk_cursor_new (cursortype);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);

View File

@ -28,12 +28,35 @@
#include <gtk/gtk.h>
enum
#include "toolsF.h"
typedef struct
{
guchar *bits;
guchar *mask_bits;
gint width, height;
gint x_hot, y_hot;
GdkBitmap *bitmap;
GdkBitmap *mask;
GdkCursor *cursor;
} BitmapCursor;
typedef enum
{
CURSOR_MODE_TOOL_ICON,
CURSOR_MODE_TOOL_CROSSHAIR,
CURSOR_MODE_CROSSHAIR
};
} CursorMode;
typedef enum
{
CURSOR_MODIFIER_NONE,
CURSOR_MODIFIER_PLUS,
CURSOR_MODIFIER_MINUS,
CURSOR_MODIFIER_INTERSECT,
CURSOR_MODIFIER_MOVE
} CursorModifier;
/* FIXME: gimp_busy HACK */
extern gboolean gimp_busy;
@ -42,6 +65,12 @@ typedef enum
{
GIMP_MOUSE_CURSOR = (GDK_LAST_CURSOR + 2),
GIMP_CROSSHAIR_CURSOR,
GIMP_CROSSHAIR_SMALL_CURSOR,
/* to be reordered */
GIMP_ZOOM_CURSOR,
/* to be reordered / removed: */
GIMP_MOUSE_ADD_CURSOR,
GIMP_MOUSE_SUBTRACT_CURSOR,
GIMP_MOUSE_INTERSECT_CURSOR,
@ -61,7 +90,10 @@ typedef enum
} GimpCursorType;
void change_win_cursor (GdkWindow *win,
GdkCursorType curtype);
GdkCursorType curtype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor);
void unset_win_cursor (GdkWindow *win);
void gimp_add_busy_cursors_until_idle (void);

View File

@ -1497,10 +1497,11 @@ curves_graph_events (GtkWidget *widget,
if (new_type != cursor_type)
{
cursor_type = new_type;
change_win_cursor (cd->graph->window, cursor_type);
change_win_cursor (cd->graph->window, cursor_type,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
curve_print_loc(cd,x,255-y);
curve_print_loc (cd, x, 255 - y);
break;

View File

@ -150,18 +150,21 @@ dialog_idle_all (void)
if(GTK_WIDGET_VISIBLE (dstate->dialog))
{
change_win_cursor (dstate->dialog->window, GDK_WATCH);
change_win_cursor (dstate->dialog->window, GDK_WATCH,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
}
if (toolbox_shell && GTK_WIDGET_VISIBLE (toolbox_shell->dialog))
{
change_win_cursor (toolbox_shell->dialog->window, GDK_WATCH);
change_win_cursor (toolbox_shell->dialog->window, GDK_WATCH,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
if (fileload_shell && GTK_WIDGET_VISIBLE (fileload_shell->dialog))
{
change_win_cursor (fileload_shell->dialog->window, GDK_WATCH);
change_win_cursor (fileload_shell->dialog->window, GDK_WATCH,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
}

View File

@ -67,7 +67,8 @@ start_grab_and_scroll (GDisplay *gdisp,
startx = bevent->x + gdisp->offset_x;
starty = bevent->y + gdisp->offset_y;
change_win_cursor(gdisp->canvas->window, GDK_FLEUR);
change_win_cursor (gdisp->canvas->window, GDK_FLEUR,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
@ -75,7 +76,12 @@ void
end_grab_and_scroll (GDisplay *gdisp,
GdkEventButton *bevent)
{
change_win_cursor(gdisp->canvas->window, gdisp->current_cursor);
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
@ -83,13 +89,14 @@ void
grab_and_scroll (GDisplay *gdisp,
GdkEventMotion *mevent)
{
if(mevent && mevent->window != gdisp->canvas->window)
if (mevent && mevent->window != gdisp->canvas->window)
{
return;
}
scroll_display (gdisp, (startx - mevent->x - gdisp->offset_x),
(starty - mevent->y - gdisp->offset_y));
scroll_display (gdisp,
startx - mevent->x - gdisp->offset_x,
starty - mevent->y - gdisp->offset_y);
}

View File

@ -99,7 +99,8 @@ gdisplay_new (GimpImage *gimage,
*/
gdisp = g_new (GDisplay, 1);
gdisp->offset_x = gdisp->offset_y = 0;
gdisp->offset_x = 0;
gdisp->offset_y = 0;
gdisp->scale = scale;
gdisp->dot_for_dot = default_dot_for_dot;
gdisp->gimage = gimage;
@ -114,7 +115,10 @@ gdisplay_new (GimpImage *gimage,
gdisp->display_areas = NULL;
gdisp->disp_xoffset = 0;
gdisp->disp_yoffset = 0;
gdisp->current_cursor = -1;
gdisp->current_cursor = (GdkCursorType) -1;
gdisp->cursor_tool = TOOL_TYPE_NONE;
gdisp->cursor_modifier = CURSOR_MODIFIER_NONE;
gdisp->toggle_cursor = FALSE;
gdisp->draw_guides = TRUE;
gdisp->snap_to_guides = TRUE;
@ -1556,45 +1560,80 @@ gdisplay_untransform_coords_f (GDisplay *gdisp,
/* install and remove tool cursor from gdisplay... */
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install)
{
switch (cursor_mode)
{
case CURSOR_MODE_TOOL_ICON:
break;
case CURSOR_MODE_TOOL_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_SMALL_CURSOR;
tool_type = RECT_SELECT;
modifier = CURSOR_MODIFIER_PLUS;
break;
case CURSOR_MODE_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_CURSOR;
tool_type = TOOL_TYPE_NONE;
modifier = CURSOR_MODIFIER_NONE;
break;
}
if (gdisp->current_cursor != (gint)cursor_type)
if (gdisp->current_cursor != cursor_type ||
gdisp->cursor_tool != tool_type ||
gdisp->cursor_modifier != modifier ||
gdisp->toggle_cursor != toggle_cursor ||
always_install)
{
gdisp->current_cursor = (gint)cursor_type;
gdisp->current_cursor = cursor_type;
gdisp->cursor_tool = tool_type;
gdisp->cursor_modifier = modifier;
gdisp->toggle_cursor = toggle_cursor;
if (!gdisp->using_override_cursor)
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
tool_type,
modifier,
toggle_cursor);
}
}
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if (!gdisp->using_override_cursor)
gdisplay_real_install_tool_cursor (gdisp,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE,
FALSE);
}
/* install an override-cursor on gdisplay... */
void
gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if ((!gdisp->using_override_cursor) ||
(
(gdisp->using_override_cursor) &&
(gdisp->override_cursor != cursor_type)
)
)
if (!gdisp->using_override_cursor ||
(gdisp->using_override_cursor &&
(gdisp->override_cursor != cursor_type)))
{
gdisp->override_cursor = cursor_type;
gdisp->using_override_cursor = TRUE;
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE);
}
}
@ -1606,11 +1645,12 @@ gdisplay_remove_override_cursor (GDisplay *gdisp)
if (gdisp->using_override_cursor)
{
gdisp->using_override_cursor = FALSE;
change_win_cursor (gdisp->canvas->window, gdisp->current_cursor);
}
else
{
/* g_warning ("Tried to remove override-cursor from un-overridden gdisp."); */
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
}

View File

@ -20,6 +20,7 @@
#include <gtk/gtk.h>
#include "cursorutil.h"
#include "gimage.h"
#include "info_dialog.h"
#include "selection.h"
@ -143,12 +144,15 @@ struct _GDisplay
GSList *update_areas; /* Update areas list */
GSList *display_areas; /* Display areas list */
gint current_cursor; /* Currently installed cursor */
GdkCursorType current_cursor; /* Currently installed cursor */
ToolType cursor_tool; /* Cursor for which tool? */
CursorModifier cursor_modifier; /* Cursor modifier (plus, minus, ...) */
gboolean toggle_cursor; /* Cursor toggled? */
GdkCursorType override_cursor; /* Overriding cursor (ie. hourglass) */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gboolean draw_cursor; /* should we draw software cursor ? */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gint cursor_x; /* software cursor X value */
gint cursor_y; /* software cursor Y value */
gboolean proximity; /* is a device in proximity of gdisplay ? */
@ -178,10 +182,20 @@ void gdisplay_transform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_untransform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_install_tool_cursor (GDisplay *, GdkCursorType);
void gdisplay_remove_tool_cursor (GDisplay *);
void gdisplay_install_override_cursor(GDisplay *, GdkCursorType);
void gdisplay_remove_override_cursor (GDisplay *);
void gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install);
void gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_tool_cursor (GDisplay *gdisp);
void gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_override_cursor (GDisplay *gdisp);
void gdisplay_set_menu_sensitivity (GDisplay *);
void gdisplay_expose_area (GDisplay *, gint, gint, gint, gint);
void gdisplay_expose_guide (GDisplay *, Guide *);

View File

@ -1118,11 +1118,12 @@ toolbox_set_drag_dest (GtkWidget *object)
toolbox_target_table, toolbox_n_targets,
GDK_ACTION_COPY);
gimp_dnd_file_dest_set (object);
gtk_signal_connect (GTK_OBJECT (object), "drag_drop",
GTK_SIGNAL_FUNC (toolbox_drag_drop),
NULL);
gimp_dnd_file_dest_set (object);
gimp_dnd_tool_dest_set (object, toolbox_drop_tool, NULL);
}

View File

@ -67,7 +67,8 @@ start_grab_and_scroll (GDisplay *gdisp,
startx = bevent->x + gdisp->offset_x;
starty = bevent->y + gdisp->offset_y;
change_win_cursor(gdisp->canvas->window, GDK_FLEUR);
change_win_cursor (gdisp->canvas->window, GDK_FLEUR,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
@ -75,7 +76,12 @@ void
end_grab_and_scroll (GDisplay *gdisp,
GdkEventButton *bevent)
{
change_win_cursor(gdisp->canvas->window, gdisp->current_cursor);
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
@ -83,13 +89,14 @@ void
grab_and_scroll (GDisplay *gdisp,
GdkEventMotion *mevent)
{
if(mevent && mevent->window != gdisp->canvas->window)
if (mevent && mevent->window != gdisp->canvas->window)
{
return;
}
scroll_display (gdisp, (startx - mevent->x - gdisp->offset_x),
(starty - mevent->y - gdisp->offset_y));
scroll_display (gdisp,
startx - mevent->x - gdisp->offset_x,
starty - mevent->y - gdisp->offset_y);
}

View File

@ -1118,11 +1118,12 @@ toolbox_set_drag_dest (GtkWidget *object)
toolbox_target_table, toolbox_n_targets,
GDK_ACTION_COPY);
gimp_dnd_file_dest_set (object);
gtk_signal_connect (GTK_OBJECT (object), "drag_drop",
GTK_SIGNAL_FUNC (toolbox_drag_drop),
NULL);
gimp_dnd_file_dest_set (object);
gimp_dnd_tool_dest_set (object, toolbox_drop_tool, NULL);
}

View File

@ -99,7 +99,8 @@ gdisplay_new (GimpImage *gimage,
*/
gdisp = g_new (GDisplay, 1);
gdisp->offset_x = gdisp->offset_y = 0;
gdisp->offset_x = 0;
gdisp->offset_y = 0;
gdisp->scale = scale;
gdisp->dot_for_dot = default_dot_for_dot;
gdisp->gimage = gimage;
@ -114,7 +115,10 @@ gdisplay_new (GimpImage *gimage,
gdisp->display_areas = NULL;
gdisp->disp_xoffset = 0;
gdisp->disp_yoffset = 0;
gdisp->current_cursor = -1;
gdisp->current_cursor = (GdkCursorType) -1;
gdisp->cursor_tool = TOOL_TYPE_NONE;
gdisp->cursor_modifier = CURSOR_MODIFIER_NONE;
gdisp->toggle_cursor = FALSE;
gdisp->draw_guides = TRUE;
gdisp->snap_to_guides = TRUE;
@ -1556,45 +1560,80 @@ gdisplay_untransform_coords_f (GDisplay *gdisp,
/* install and remove tool cursor from gdisplay... */
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install)
{
switch (cursor_mode)
{
case CURSOR_MODE_TOOL_ICON:
break;
case CURSOR_MODE_TOOL_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_SMALL_CURSOR;
tool_type = RECT_SELECT;
modifier = CURSOR_MODIFIER_PLUS;
break;
case CURSOR_MODE_CROSSHAIR:
cursor_type = GIMP_CROSSHAIR_CURSOR;
tool_type = TOOL_TYPE_NONE;
modifier = CURSOR_MODIFIER_NONE;
break;
}
if (gdisp->current_cursor != (gint)cursor_type)
if (gdisp->current_cursor != cursor_type ||
gdisp->cursor_tool != tool_type ||
gdisp->cursor_modifier != modifier ||
gdisp->toggle_cursor != toggle_cursor ||
always_install)
{
gdisp->current_cursor = (gint)cursor_type;
gdisp->current_cursor = cursor_type;
gdisp->cursor_tool = tool_type;
gdisp->cursor_modifier = modifier;
gdisp->toggle_cursor = toggle_cursor;
if (!gdisp->using_override_cursor)
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
tool_type,
modifier,
toggle_cursor);
}
}
void
gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if (!gdisp->using_override_cursor)
gdisplay_real_install_tool_cursor (gdisp,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE,
FALSE);
}
/* install an override-cursor on gdisplay... */
void
gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type)
{
if ((!gdisp->using_override_cursor) ||
(
(gdisp->using_override_cursor) &&
(gdisp->override_cursor != cursor_type)
)
)
if (!gdisp->using_override_cursor ||
(gdisp->using_override_cursor &&
(gdisp->override_cursor != cursor_type)))
{
gdisp->override_cursor = cursor_type;
gdisp->using_override_cursor = TRUE;
change_win_cursor (gdisp->canvas->window, cursor_type);
change_win_cursor (gdisp->canvas->window,
cursor_type,
TOOL_TYPE_NONE,
CURSOR_MODIFIER_NONE,
FALSE);
}
}
@ -1606,11 +1645,12 @@ gdisplay_remove_override_cursor (GDisplay *gdisp)
if (gdisp->using_override_cursor)
{
gdisp->using_override_cursor = FALSE;
change_win_cursor (gdisp->canvas->window, gdisp->current_cursor);
}
else
{
/* g_warning ("Tried to remove override-cursor from un-overridden gdisp."); */
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
}

View File

@ -20,6 +20,7 @@
#include <gtk/gtk.h>
#include "cursorutil.h"
#include "gimage.h"
#include "info_dialog.h"
#include "selection.h"
@ -143,12 +144,15 @@ struct _GDisplay
GSList *update_areas; /* Update areas list */
GSList *display_areas; /* Display areas list */
gint current_cursor; /* Currently installed cursor */
GdkCursorType current_cursor; /* Currently installed cursor */
ToolType cursor_tool; /* Cursor for which tool? */
CursorModifier cursor_modifier; /* Cursor modifier (plus, minus, ...) */
gboolean toggle_cursor; /* Cursor toggled? */
GdkCursorType override_cursor; /* Overriding cursor (ie. hourglass) */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gboolean draw_cursor; /* should we draw software cursor ? */
gboolean using_override_cursor; /* is the cursor overridden? (ie. hourglass)*/
gint cursor_x; /* software cursor X value */
gint cursor_y; /* software cursor Y value */
gboolean proximity; /* is a device in proximity of gdisplay ? */
@ -178,10 +182,20 @@ void gdisplay_transform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_untransform_coords_f (GDisplay *, gdouble, gdouble,
gdouble *, gdouble *, gboolean);
void gdisplay_install_tool_cursor (GDisplay *, GdkCursorType);
void gdisplay_remove_tool_cursor (GDisplay *);
void gdisplay_install_override_cursor(GDisplay *, GdkCursorType);
void gdisplay_remove_override_cursor (GDisplay *);
void gdisplay_real_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor,
gboolean always_install);
void gdisplay_install_tool_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_tool_cursor (GDisplay *gdisp);
void gdisplay_install_override_cursor (GDisplay *gdisp,
GdkCursorType cursor_type);
void gdisplay_remove_override_cursor (GDisplay *gdisp);
void gdisplay_set_menu_sensitivity (GDisplay *);
void gdisplay_expose_area (GDisplay *, gint, gint, gint, gint);
void gdisplay_expose_guide (GDisplay *, Guide *);

View File

@ -1239,6 +1239,7 @@ gimp_dnd_file_open_files (gchar *buffer)
if ((sig_len < len) && (! strncmp (name, data_type, sig_len)))
name += sig_len;
if (name && strlen (name) > 2)
file_open (name, name);
if (*buffer)
@ -1275,6 +1276,6 @@ gimp_dnd_file_dest_set (GtkWidget *widget)
{
gtk_signal_connect (GTK_OBJECT (widget), "drag_data_received",
GTK_SIGNAL_FUNC (gimp_dnd_file_drag_data_received),
NULL);
widget);
}

View File

@ -1118,11 +1118,12 @@ toolbox_set_drag_dest (GtkWidget *object)
toolbox_target_table, toolbox_n_targets,
GDK_ACTION_COPY);
gimp_dnd_file_dest_set (object);
gtk_signal_connect (GTK_OBJECT (object), "drag_drop",
GTK_SIGNAL_FUNC (toolbox_drag_drop),
NULL);
gimp_dnd_file_dest_set (object);
gimp_dnd_tool_dest_set (object, toolbox_drop_tool, NULL);
}

View File

@ -67,7 +67,8 @@ start_grab_and_scroll (GDisplay *gdisp,
startx = bevent->x + gdisp->offset_x;
starty = bevent->y + gdisp->offset_y;
change_win_cursor(gdisp->canvas->window, GDK_FLEUR);
change_win_cursor (gdisp->canvas->window, GDK_FLEUR,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
@ -75,7 +76,12 @@ void
end_grab_and_scroll (GDisplay *gdisp,
GdkEventButton *bevent)
{
change_win_cursor(gdisp->canvas->window, gdisp->current_cursor);
gdisplay_real_install_tool_cursor (gdisp,
gdisp->current_cursor,
active_tool->type,
CURSOR_MODIFIER_NONE,
FALSE,
TRUE);
}
@ -83,13 +89,14 @@ void
grab_and_scroll (GDisplay *gdisp,
GdkEventMotion *mevent)
{
if(mevent && mevent->window != gdisp->canvas->window)
if (mevent && mevent->window != gdisp->canvas->window)
{
return;
}
scroll_display (gdisp, (startx - mevent->x - gdisp->offset_x),
(starty - mevent->y - gdisp->offset_y));
scroll_display (gdisp,
startx - mevent->x - gdisp->offset_x,
starty - mevent->y - gdisp->offset_y);
}

View File

@ -66,6 +66,29 @@
#include "pixmaps2.h"
#include "cursors/rect_select_small.xbm"
#include "cursors/rect_select_small_mask.xbm"
#include "cursors/ellipse_select_small.xbm"
#include "cursors/ellipse_select_small_mask.xbm"
#include "cursors/free_select_small.xbm"
#include "cursors/free_select_small_mask.xbm"
#include "cursors/fuzzy_select_small.xbm"
#include "cursors/fuzzy_select_small_mask.xbm"
#include "cursors/zoom_small.xbm"
#include "cursors/zoom_small_mask.xbm"
#include "cursors/crop_small.xbm"
#include "cursors/crop_small_mask.xbm"
#include "cursors/resize_small.xbm"
#include "cursors/resize_small_mask.xbm"
#include "cursors/bucket_fill_small.xbm"
#include "cursors/bucket_fill_small_mask.xbm"
#include "cursors/pencil_small.xbm"
#include "cursors/pencil_small_mask.xbm"
#include "cursors/paintbrush_small.xbm"
#include "cursors/paintbrush_small_mask.xbm"
#include "cursors/eraser_small.xbm"
#include "cursors/eraser_small_mask.xbm"
/* Global Data */
Tool * active_tool = NULL;
@ -97,7 +120,17 @@ ToolInfo tool_info[] =
tools_free_rect_select,
NULL,
NULL,
NULL
NULL,
{
rect_select_small_bits, rect_select_small_mask_bits,
rect_select_small_width, rect_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -115,7 +148,17 @@ ToolInfo tool_info[] =
tools_free_ellipse_select,
NULL,
NULL,
NULL
NULL,
{
ellipse_select_small_bits, ellipse_select_small_mask_bits,
ellipse_select_small_width, ellipse_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -133,7 +176,17 @@ ToolInfo tool_info[] =
tools_free_free_select,
NULL,
NULL,
NULL
NULL,
{
free_select_small_bits, free_select_small_mask_bits,
free_select_small_width, free_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -151,7 +204,17 @@ ToolInfo tool_info[] =
tools_free_fuzzy_select,
NULL,
NULL,
NULL
NULL,
{
fuzzy_select_small_bits, fuzzy_select_small_mask_bits,
fuzzy_select_small_width, fuzzy_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -169,7 +232,17 @@ ToolInfo tool_info[] =
tools_free_bezier_select,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -187,7 +260,17 @@ ToolInfo tool_info[] =
tools_free_iscissors,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -205,7 +288,17 @@ ToolInfo tool_info[] =
tools_free_move_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -223,7 +316,17 @@ ToolInfo tool_info[] =
tools_free_magnify,
NULL,
NULL,
NULL
NULL,
{
zoom_small_bits, zoom_small_mask_bits,
zoom_small_width, zoom_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -241,7 +344,17 @@ ToolInfo tool_info[] =
tools_free_crop,
NULL,
NULL,
NULL
NULL,
{
crop_small_bits, crop_small_mask_bits,
crop_small_width, crop_small_height,
0, 0, NULL, NULL, NULL
},
{
resize_small_bits, resize_small_mask_bits,
resize_small_width, resize_small_height,
0, 0, NULL, NULL, NULL
}
},
{
@ -259,7 +372,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* rotate */
{
@ -277,7 +400,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* scale */
{
@ -295,7 +428,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* shear */
{
@ -313,7 +456,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* perspective */
{
@ -331,7 +484,17 @@ ToolInfo tool_info[] =
tools_free_flip_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -350,6 +513,16 @@ ToolInfo tool_info[] =
NULL,
NULL,
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -367,7 +540,17 @@ ToolInfo tool_info[] =
tools_free_color_picker,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -385,7 +568,17 @@ ToolInfo tool_info[] =
tools_free_bucket_fill,
NULL,
NULL,
NULL
NULL,
{
bucket_fill_small_bits, bucket_fill_small_mask_bits,
bucket_fill_small_width, bucket_fill_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -403,7 +596,17 @@ ToolInfo tool_info[] =
tools_free_blend,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -421,7 +624,17 @@ ToolInfo tool_info[] =
tools_free_pencil,
NULL,
NULL,
NULL
NULL,
{
pencil_small_bits, pencil_small_mask_bits,
pencil_small_width, pencil_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -439,7 +652,17 @@ ToolInfo tool_info[] =
tools_free_paintbrush,
NULL,
NULL,
NULL
NULL,
{
paintbrush_small_bits, paintbrush_small_mask_bits,
paintbrush_small_width, paintbrush_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -457,7 +680,17 @@ ToolInfo tool_info[] =
tools_free_eraser,
NULL,
NULL,
NULL
NULL,
{
eraser_small_bits, eraser_small_mask_bits,
eraser_small_width, eraser_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -475,7 +708,17 @@ ToolInfo tool_info[] =
tools_free_airbrush,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -493,7 +736,17 @@ ToolInfo tool_info[] =
tools_free_clone,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -511,7 +764,17 @@ ToolInfo tool_info[] =
tools_free_convolve,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -529,7 +792,17 @@ ToolInfo tool_info[] =
tools_free_ink,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -547,7 +820,17 @@ ToolInfo tool_info[] =
tools_free_dodgeburn,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -565,7 +848,17 @@ ToolInfo tool_info[] =
tools_free_smudge,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
/*
@ -584,7 +877,17 @@ ToolInfo tool_info[] =
tools_free_xinput_airbrush,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
*/
@ -603,7 +906,17 @@ ToolInfo tool_info[] =
tools_free_measure_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
/*
@ -622,7 +935,17 @@ ToolInfo tool_info[] =
tools_free_path_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
*/
@ -642,7 +965,17 @@ ToolInfo tool_info[] =
tools_free_by_color_select,
by_color_select_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -660,7 +993,17 @@ ToolInfo tool_info[] =
tools_free_color_balance,
color_balance_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -678,7 +1021,17 @@ ToolInfo tool_info[] =
tools_free_brightness_contrast,
brightness_contrast_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -696,7 +1049,17 @@ ToolInfo tool_info[] =
tools_free_hue_saturation,
hue_saturation_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -714,7 +1077,17 @@ ToolInfo tool_info[] =
tools_free_posterize,
posterize_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -732,7 +1105,17 @@ ToolInfo tool_info[] =
tools_free_threshold,
threshold_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -750,7 +1133,17 @@ ToolInfo tool_info[] =
tools_free_curves,
curves_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -768,7 +1161,17 @@ ToolInfo tool_info[] =
tools_free_levels,
levels_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -786,7 +1189,17 @@ ToolInfo tool_info[] =
tools_free_histogram_tool,
histogram_tool_initialize ,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}
};

View File

@ -23,6 +23,7 @@
#include "gimpcontext.h"
#include "tool_options.h"
#include "channel.h"
#include "cursorutil.h"
#include "toolsF.h"
@ -109,6 +110,9 @@ struct _ToolInfo
GtkWidget *tool_widget;
GimpContext *tool_context;
BitmapCursor tool_cursor;
BitmapCursor toggle_cursor;
};
/* Global Data Structures */
@ -142,7 +146,3 @@ GdkPixmap * tool_get_pixmap (ToolType tool_type);
GdkBitmap * tool_get_mask (ToolType tool_type);
#endif /* __TOOLS_H__ */

View File

@ -1497,10 +1497,11 @@ curves_graph_events (GtkWidget *widget,
if (new_type != cursor_type)
{
cursor_type = new_type;
change_win_cursor (cd->graph->window, cursor_type);
change_win_cursor (cd->graph->window, cursor_type,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
curve_print_loc(cd,x,255-y);
curve_print_loc (cd, x, 255 - y);
break;

View File

@ -1497,10 +1497,11 @@ curves_graph_events (GtkWidget *widget,
if (new_type != cursor_type)
{
cursor_type = new_type;
change_win_cursor (cd->graph->window, cursor_type);
change_win_cursor (cd->graph->window, cursor_type,
TOOL_TYPE_NONE, CURSOR_MODIFIER_NONE, FALSE);
}
curve_print_loc(cd,x,255-y);
curve_print_loc (cd, x, 255 - y);
break;

View File

@ -66,6 +66,29 @@
#include "pixmaps2.h"
#include "cursors/rect_select_small.xbm"
#include "cursors/rect_select_small_mask.xbm"
#include "cursors/ellipse_select_small.xbm"
#include "cursors/ellipse_select_small_mask.xbm"
#include "cursors/free_select_small.xbm"
#include "cursors/free_select_small_mask.xbm"
#include "cursors/fuzzy_select_small.xbm"
#include "cursors/fuzzy_select_small_mask.xbm"
#include "cursors/zoom_small.xbm"
#include "cursors/zoom_small_mask.xbm"
#include "cursors/crop_small.xbm"
#include "cursors/crop_small_mask.xbm"
#include "cursors/resize_small.xbm"
#include "cursors/resize_small_mask.xbm"
#include "cursors/bucket_fill_small.xbm"
#include "cursors/bucket_fill_small_mask.xbm"
#include "cursors/pencil_small.xbm"
#include "cursors/pencil_small_mask.xbm"
#include "cursors/paintbrush_small.xbm"
#include "cursors/paintbrush_small_mask.xbm"
#include "cursors/eraser_small.xbm"
#include "cursors/eraser_small_mask.xbm"
/* Global Data */
Tool * active_tool = NULL;
@ -97,7 +120,17 @@ ToolInfo tool_info[] =
tools_free_rect_select,
NULL,
NULL,
NULL
NULL,
{
rect_select_small_bits, rect_select_small_mask_bits,
rect_select_small_width, rect_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -115,7 +148,17 @@ ToolInfo tool_info[] =
tools_free_ellipse_select,
NULL,
NULL,
NULL
NULL,
{
ellipse_select_small_bits, ellipse_select_small_mask_bits,
ellipse_select_small_width, ellipse_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -133,7 +176,17 @@ ToolInfo tool_info[] =
tools_free_free_select,
NULL,
NULL,
NULL
NULL,
{
free_select_small_bits, free_select_small_mask_bits,
free_select_small_width, free_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -151,7 +204,17 @@ ToolInfo tool_info[] =
tools_free_fuzzy_select,
NULL,
NULL,
NULL
NULL,
{
fuzzy_select_small_bits, fuzzy_select_small_mask_bits,
fuzzy_select_small_width, fuzzy_select_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -169,7 +232,17 @@ ToolInfo tool_info[] =
tools_free_bezier_select,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -187,7 +260,17 @@ ToolInfo tool_info[] =
tools_free_iscissors,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -205,7 +288,17 @@ ToolInfo tool_info[] =
tools_free_move_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -223,7 +316,17 @@ ToolInfo tool_info[] =
tools_free_magnify,
NULL,
NULL,
NULL
NULL,
{
zoom_small_bits, zoom_small_mask_bits,
zoom_small_width, zoom_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -241,7 +344,17 @@ ToolInfo tool_info[] =
tools_free_crop,
NULL,
NULL,
NULL
NULL,
{
crop_small_bits, crop_small_mask_bits,
crop_small_width, crop_small_height,
0, 0, NULL, NULL, NULL
},
{
resize_small_bits, resize_small_mask_bits,
resize_small_width, resize_small_height,
0, 0, NULL, NULL, NULL
}
},
{
@ -259,7 +372,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* rotate */
{
@ -277,7 +400,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* scale */
{
@ -295,7 +428,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* shear */
{
@ -313,7 +456,17 @@ ToolInfo tool_info[] =
tools_free_transform_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}, /* perspective */
{
@ -331,7 +484,17 @@ ToolInfo tool_info[] =
tools_free_flip_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -350,6 +513,16 @@ ToolInfo tool_info[] =
NULL,
NULL,
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -367,7 +540,17 @@ ToolInfo tool_info[] =
tools_free_color_picker,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -385,7 +568,17 @@ ToolInfo tool_info[] =
tools_free_bucket_fill,
NULL,
NULL,
NULL
NULL,
{
bucket_fill_small_bits, bucket_fill_small_mask_bits,
bucket_fill_small_width, bucket_fill_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -403,7 +596,17 @@ ToolInfo tool_info[] =
tools_free_blend,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -421,7 +624,17 @@ ToolInfo tool_info[] =
tools_free_pencil,
NULL,
NULL,
NULL
NULL,
{
pencil_small_bits, pencil_small_mask_bits,
pencil_small_width, pencil_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -439,7 +652,17 @@ ToolInfo tool_info[] =
tools_free_paintbrush,
NULL,
NULL,
NULL
NULL,
{
paintbrush_small_bits, paintbrush_small_mask_bits,
paintbrush_small_width, paintbrush_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -457,7 +680,17 @@ ToolInfo tool_info[] =
tools_free_eraser,
NULL,
NULL,
NULL
NULL,
{
eraser_small_bits, eraser_small_mask_bits,
eraser_small_width, eraser_small_height,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -475,7 +708,17 @@ ToolInfo tool_info[] =
tools_free_airbrush,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -493,7 +736,17 @@ ToolInfo tool_info[] =
tools_free_clone,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -511,7 +764,17 @@ ToolInfo tool_info[] =
tools_free_convolve,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -529,7 +792,17 @@ ToolInfo tool_info[] =
tools_free_ink,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -547,7 +820,17 @@ ToolInfo tool_info[] =
tools_free_dodgeburn,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -565,7 +848,17 @@ ToolInfo tool_info[] =
tools_free_smudge,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
/*
@ -584,7 +877,17 @@ ToolInfo tool_info[] =
tools_free_xinput_airbrush,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
*/
@ -603,7 +906,17 @@ ToolInfo tool_info[] =
tools_free_measure_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
/*
@ -622,7 +935,17 @@ ToolInfo tool_info[] =
tools_free_path_tool,
NULL,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
*/
@ -642,7 +965,17 @@ ToolInfo tool_info[] =
tools_free_by_color_select,
by_color_select_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -660,7 +993,17 @@ ToolInfo tool_info[] =
tools_free_color_balance,
color_balance_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -678,7 +1021,17 @@ ToolInfo tool_info[] =
tools_free_brightness_contrast,
brightness_contrast_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -696,7 +1049,17 @@ ToolInfo tool_info[] =
tools_free_hue_saturation,
hue_saturation_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -714,7 +1077,17 @@ ToolInfo tool_info[] =
tools_free_posterize,
posterize_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -732,7 +1105,17 @@ ToolInfo tool_info[] =
tools_free_threshold,
threshold_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -750,7 +1133,17 @@ ToolInfo tool_info[] =
tools_free_curves,
curves_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -768,7 +1161,17 @@ ToolInfo tool_info[] =
tools_free_levels,
levels_initialize,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
},
{
@ -786,7 +1189,17 @@ ToolInfo tool_info[] =
tools_free_histogram_tool,
histogram_tool_initialize ,
NULL,
NULL
NULL,
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
},
{
NULL, NULL,
0, 0,
0, 0, NULL, NULL, NULL
}
}
};

View File

@ -23,6 +23,7 @@
#include "gimpcontext.h"
#include "tool_options.h"
#include "channel.h"
#include "cursorutil.h"
#include "toolsF.h"
@ -109,6 +110,9 @@ struct _ToolInfo
GtkWidget *tool_widget;
GimpContext *tool_context;
BitmapCursor tool_cursor;
BitmapCursor toggle_cursor;
};
/* Global Data Structures */
@ -142,7 +146,3 @@ GdkPixmap * tool_get_pixmap (ToolType tool_type);
GdkBitmap * tool_get_mask (ToolType tool_type);
#endif /* __TOOLS_H__ */

View File

@ -36,7 +36,8 @@ typedef enum
/* Tool types */
typedef enum
{
FIRST_TOOLBOX_TOOL,
TOOL_TYPE_NONE = -1,
FIRST_TOOLBOX_TOOL = 0,
RECT_SELECT = FIRST_TOOLBOX_TOOL,
ELLIPSE_SELECT,
FREE_SELECT,

View File

@ -19,11 +19,20 @@
#include "cursorutil.h"
#include "dialog_handler.h"
#include "gdisplay.h" /* for gdisplay_*_override_cursor() */
#include "tools.h"
#include "cursors/mouse.xbm"
#include "cursors/mouse_mask.xbm"
#include "cursors/crosshair.xbm"
#include "cursors/crosshair_mask.xbm"
#include "cursors/crosshair_small.xbm"
#include "cursors/crosshair_small_mask.xbm"
/* stuff to be reordered */
#include "cursors/zoom.xbm"
#include "cursors/zoom_mask.xbm"
/* old stuff */
#include "cursors/mouse_add.xbm"
#include "cursors/mouse_add_mask.xbm"
#include "cursors/mouse_subtract.xbm"
@ -55,105 +64,154 @@
#include "cursors/zoom_out.xbm"
#include "cursors/zoom_out_mask.xbm"
typedef struct
{
guchar *bits;
guchar *mask_bits;
gint width, height;
gint x_hot, y_hot;
GdkCursor *cursor;
} BM_Cursor;
/* modifiers */
#include "cursors/plus.xbm"
#include "cursors/plus_mask.xbm"
#include "cursors/minus.xbm"
#include "cursors/minus_mask.xbm"
#include "cursors/intersect.xbm"
#include "cursors/intersect_mask.xbm"
#include "cursors/move.xbm"
#include "cursors/move_mask.xbm"
/* FIXME: gimp_busy HACK */
gboolean gimp_busy = FALSE;
static BM_Cursor gimp_cursors[] =
static BitmapCursor gimp_cursors[] =
/* these have to match up with the enum in cursorutil.h */
{
{
mouse_bits, mouse_mask_bits,
mouse_width, mouse_height,
mouse_x_hot, mouse_y_hot, NULL
mouse_x_hot, mouse_y_hot, NULL, NULL, NULL
},
{
crosshair_bits, crosshair_mask_bits,
crosshair_width, crosshair_height,
crosshair_x_hot, crosshair_y_hot, NULL
crosshair_x_hot, crosshair_y_hot, NULL, NULL, NULL
},
{
crosshair_small_bits, crosshair_small_mask_bits,
crosshair_small_width, crosshair_small_height,
crosshair_small_x_hot, crosshair_small_y_hot, NULL, NULL, NULL
},
/* to be reordered */
{
zoom_bits, zoom_mask_bits,
zoom_width, zoom_height,
zoom_x_hot, zoom_y_hot, NULL, NULL, NULL
},
/* to be removed */
{
mouse_add_bits, mouse_add_mask_bits,
mouse_add_width, mouse_add_height,
mouse_add_x_hot, mouse_add_y_hot, NULL
mouse_add_x_hot, mouse_add_y_hot, NULL, NULL, NULL
},
{
mouse_subtract_bits, mouse_subtract_mask_bits,
mouse_subtract_width, mouse_subtract_height,
mouse_subtract_x_hot, mouse_subtract_y_hot, NULL
mouse_subtract_x_hot, mouse_subtract_y_hot, NULL, NULL, NULL
},
{
mouse_intersect_bits, mouse_intersect_mask_bits,
mouse_intersect_width, mouse_intersect_height,
mouse_intersect_x_hot, mouse_intersect_y_hot, NULL
mouse_intersect_x_hot, mouse_intersect_y_hot, NULL, NULL, NULL
},
{
mouse_point_bits, mouse_point_mask_bits,
mouse_point_width, mouse_point_height,
mouse_point_x_hot, mouse_point_y_hot, NULL
mouse_point_x_hot, mouse_point_y_hot, NULL, NULL, NULL
},
{
mouse_rectangle_bits, mouse_rectangle_mask_bits,
mouse_rectangle_width, mouse_rectangle_height,
mouse_rectangle_x_hot, mouse_rectangle_y_hot, NULL
mouse_rectangle_x_hot, mouse_rectangle_y_hot, NULL, NULL, NULL
},
{
mouse_move_bits, mouse_move_mask_bits,
mouse_move_width, mouse_move_height,
mouse_move_x_hot, mouse_move_y_hot, NULL
mouse_move_x_hot, mouse_move_y_hot, NULL, NULL, NULL
},
{
selection_bits, selection_mask_bits,
selection_width, selection_height,
selection_x_hot, selection_y_hot, NULL
selection_x_hot, selection_y_hot, NULL, NULL, NULL
},
{
selection_add_bits, selection_add_mask_bits,
selection_add_width, selection_add_height,
selection_add_x_hot, selection_add_y_hot, NULL
selection_add_x_hot, selection_add_y_hot, NULL, NULL, NULL
},
{
selection_subtract_bits, selection_subtract_mask_bits,
selection_subtract_width, selection_subtract_height,
selection_subtract_x_hot, selection_subtract_y_hot, NULL
selection_subtract_x_hot, selection_subtract_y_hot, NULL, NULL, NULL
},
{
selection_intersect_bits, selection_intersect_mask_bits,
selection_intersect_width, selection_intersect_height,
selection_intersect_x_hot, selection_intersect_y_hot, NULL
selection_intersect_x_hot, selection_intersect_y_hot, NULL, NULL, NULL
},
{
selection_move_bits, selection_move_mask_bits,
selection_move_width, selection_move_height,
selection_move_x_hot, selection_move_y_hot, NULL
selection_move_x_hot, selection_move_y_hot, NULL, NULL, NULL
},
{
bad_bits, bad_mask_bits,
bad_width, bad_height,
bad_x_hot, bad_y_hot, NULL
bad_x_hot, bad_y_hot, NULL, NULL, NULL
},
{
dropper_bits, dropper_mask_bits,
dropper_width, dropper_height,
dropper_x_hot, dropper_y_hot, NULL
dropper_x_hot, dropper_y_hot, NULL, NULL, NULL
},
{
zoom_in_bits, zoom_in_mask_bits,
zoom_in_width, zoom_in_height,
zoom_in_x_hot, zoom_in_y_hot, NULL
zoom_in_x_hot, zoom_in_y_hot, NULL, NULL, NULL
},
{
zoom_out_bits, zoom_out_mask_bits,
zoom_out_width, zoom_out_height,
zoom_out_x_hot, zoom_out_y_hot, NULL
zoom_out_x_hot, zoom_out_y_hot, NULL, NULL, NULL
}
};
enum
{
GIMP_PLUS_CURSOR = GIMP_LAST_CURSOR_ENTRY + 1,
GIMP_MINUS_CURSOR,
GIMP_INTERSECT_CURSOR,
GIMP_MOVE_CURSOR
};
static BitmapCursor modifier_cursors[] =
/* these have to match up with the enum above */
{
{
plus_bits, plus_mask_bits,
plus_width, plus_height,
plus_x_hot, plus_y_hot, NULL, NULL, NULL
},
{
minus_bits, minus_mask_bits,
minus_width, minus_height,
minus_x_hot, minus_y_hot, NULL, NULL, NULL
},
{
intersect_bits, intersect_mask_bits,
intersect_width, intersect_height,
intersect_x_hot, intersect_y_hot, NULL, NULL, NULL
},
{
move_bits, move_mask_bits,
move_width, move_height,
move_x_hot, move_y_hot, NULL, NULL, NULL
}
};
@ -163,56 +221,224 @@ static gboolean pending_removebusy = FALSE;
static void
create_cursor (BM_Cursor *bmcursor)
create_cursor_bitmaps (BitmapCursor *bmcursor)
{
GdkPixmap *pixmap;
GdkPixmap *pixmapmsk;
if (bmcursor->bitmap == NULL)
bmcursor->bitmap = gdk_bitmap_create_from_data (NULL, bmcursor->bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (bmcursor->bitmap != NULL);
if (bmcursor->mask == NULL)
bmcursor->mask = gdk_bitmap_create_from_data (NULL, bmcursor->mask_bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (bmcursor->mask != NULL);
}
static void
create_cursor (BitmapCursor *bmcursor)
{
if (bmcursor->bitmap == NULL ||
bmcursor->mask == NULL)
create_cursor_bitmaps (bmcursor);
if (bmcursor->cursor == NULL)
{
GdkColor fg, bg;
/* should have a way to configure the mouse colors */
gdk_color_parse ("#FFFFFF", &bg);
gdk_color_parse ("#000000", &fg);
pixmap = gdk_bitmap_create_from_data (NULL, bmcursor->bits,
bmcursor->width, bmcursor->height);
g_return_if_fail (pixmap != NULL);
pixmapmsk = gdk_bitmap_create_from_data (NULL, bmcursor->mask_bits,
bmcursor->width,
bmcursor->height);
g_return_if_fail (pixmapmsk != NULL);
bmcursor->cursor = gdk_cursor_new_from_pixmap (pixmap, pixmapmsk, &fg, &bg,
bmcursor->cursor = gdk_cursor_new_from_pixmap (bmcursor->bitmap,
bmcursor->mask,
&fg, &bg,
bmcursor->x_hot,
bmcursor->y_hot);
}
g_return_if_fail (bmcursor->cursor != NULL);
}
static void
gimp_change_win_cursor (GdkWindow *win,
GimpCursorType curtype)
GimpCursorType curtype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor)
{
GdkCursor *cursor;
GimpCursorType modtype = GIMP_PLUS_CURSOR;
GdkBitmap *bitmap;
GdkBitmap *mask;
GdkColor color;
GdkColor fg, bg;
static GdkGC *gc = NULL;
gint width;
gint height;
BitmapCursor *bmcursor = NULL;
BitmapCursor *bmmodifier = NULL;
BitmapCursor *bmtool = NULL;
g_return_if_fail (curtype < GIMP_LAST_CURSOR_ENTRY);
/* allow the small tool cursor only with the standard mouse and
* the small crosshair
*/
if (curtype != GIMP_MOUSE_CURSOR &&
curtype != GIMP_CROSSHAIR_SMALL_CURSOR)
tool_type = TOOL_TYPE_NONE;
curtype -= GIMP_MOUSE_CURSOR;
if (!gimp_cursors[(int)curtype].cursor)
create_cursor (&gimp_cursors[(int)curtype]);
cursor = gimp_cursors[(int)curtype].cursor;
bmcursor = &gimp_cursors[(int)curtype];
if (modifier == CURSOR_MODIFIER_NONE &&
tool_type == TOOL_TYPE_NONE)
{
if (bmcursor->cursor == NULL)
create_cursor (bmcursor);
gdk_window_set_cursor (win, bmcursor->cursor);
return;
}
switch (modifier)
{
case CURSOR_MODIFIER_PLUS:
modtype = GIMP_PLUS_CURSOR;
break;
case CURSOR_MODIFIER_MINUS:
modtype = GIMP_MINUS_CURSOR;
break;
case CURSOR_MODIFIER_INTERSECT:
modtype = GIMP_INTERSECT_CURSOR;
break;
case CURSOR_MODIFIER_MOVE:
modtype = GIMP_MOVE_CURSOR;
break;
default:
break;
}
if (modifier != CURSOR_MODIFIER_NONE)
{
modtype -= GIMP_PLUS_CURSOR;
bmmodifier = &modifier_cursors[(int)modtype];
}
if (tool_type != TOOL_TYPE_NONE)
{
if (toggle_cursor)
{
if (tool_info[(gint) tool_type].toggle_cursor.bits != NULL &&
tool_info[(gint) tool_type].toggle_cursor.mask_bits != NULL)
bmtool = &tool_info[(gint) tool_type].toggle_cursor;
}
else
{
if (tool_info[(gint) tool_type].tool_cursor.bits != NULL &&
tool_info[(gint) tool_type].tool_cursor.mask_bits != NULL)
bmtool = &tool_info[(gint) tool_type].tool_cursor;
}
}
if (bmcursor->bitmap == NULL ||
bmcursor->mask == NULL)
create_cursor_bitmaps (bmcursor);
if (bmmodifier->bitmap == NULL ||
bmmodifier->mask == NULL)
create_cursor_bitmaps (bmmodifier);
if (bmtool &&
(bmtool->bitmap == NULL ||
bmtool->mask == NULL))
create_cursor_bitmaps (bmtool);
if (gc == NULL)
gc = gdk_gc_new (bmcursor->bitmap);
gdk_window_get_size (bmcursor->bitmap, &width, &height);
bitmap = gdk_pixmap_new (NULL, width, height, 1);
mask = gdk_pixmap_new (NULL, width, height, 1);
color.pixel = 1;
gdk_gc_set_foreground (gc, &color);
gdk_draw_pixmap (bitmap, gc, bmcursor->bitmap,
0, 0, 0, 0, width, height);
if (bmmodifier)
{
gdk_gc_set_clip_mask (gc, bmmodifier->bitmap);
gdk_draw_pixmap (bitmap, gc, bmmodifier->bitmap,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
if (bmtool)
{
gdk_gc_set_clip_mask (gc, bmtool->bitmap);
gdk_draw_pixmap (bitmap, gc, bmtool->bitmap,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
gdk_draw_pixmap (mask, gc, bmcursor->mask,
0, 0, 0, 0, width, height);
if (bmmodifier)
{
gdk_gc_set_clip_mask (gc, bmmodifier->mask);
gdk_draw_pixmap (mask, gc, bmmodifier->mask,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
if (bmtool)
{
gdk_gc_set_clip_mask (gc, bmtool->mask);
gdk_draw_pixmap (mask, gc, bmtool->mask,
0, 0, 0, 0, width, height);
gdk_gc_set_clip_mask (gc, NULL);
}
/* should have a way to configure the mouse colors */
gdk_color_parse ("#FFFFFF", &bg);
gdk_color_parse ("#000000", &fg);
cursor = gdk_cursor_new_from_pixmap (bitmap, mask,
&fg, &bg,
bmcursor->x_hot,
bmcursor->y_hot);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);
}
void
change_win_cursor (GdkWindow *win,
GdkCursorType cursortype)
GdkCursorType cursortype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor)
{
GdkCursor *cursor;
if (cursortype > GDK_LAST_CURSOR)
{
gimp_change_win_cursor (win, (GimpCursorType)cursortype);
gimp_change_win_cursor (win, (GimpCursorType) cursortype,
tool_type, modifier, toggle_cursor);
return;
}
cursor = gdk_cursor_new (cursortype);
gdk_window_set_cursor (win, cursor);
gdk_cursor_destroy (cursor);

View File

@ -28,12 +28,35 @@
#include <gtk/gtk.h>
enum
#include "toolsF.h"
typedef struct
{
guchar *bits;
guchar *mask_bits;
gint width, height;
gint x_hot, y_hot;
GdkBitmap *bitmap;
GdkBitmap *mask;
GdkCursor *cursor;
} BitmapCursor;
typedef enum
{
CURSOR_MODE_TOOL_ICON,
CURSOR_MODE_TOOL_CROSSHAIR,
CURSOR_MODE_CROSSHAIR
};
} CursorMode;
typedef enum
{
CURSOR_MODIFIER_NONE,
CURSOR_MODIFIER_PLUS,
CURSOR_MODIFIER_MINUS,
CURSOR_MODIFIER_INTERSECT,
CURSOR_MODIFIER_MOVE
} CursorModifier;
/* FIXME: gimp_busy HACK */
extern gboolean gimp_busy;
@ -42,6 +65,12 @@ typedef enum
{
GIMP_MOUSE_CURSOR = (GDK_LAST_CURSOR + 2),
GIMP_CROSSHAIR_CURSOR,
GIMP_CROSSHAIR_SMALL_CURSOR,
/* to be reordered */
GIMP_ZOOM_CURSOR,
/* to be reordered / removed: */
GIMP_MOUSE_ADD_CURSOR,
GIMP_MOUSE_SUBTRACT_CURSOR,
GIMP_MOUSE_INTERSECT_CURSOR,
@ -61,7 +90,10 @@ typedef enum
} GimpCursorType;
void change_win_cursor (GdkWindow *win,
GdkCursorType curtype);
GdkCursorType curtype,
ToolType tool_type,
CursorModifier modifier,
gboolean toggle_cursor);
void unset_win_cursor (GdkWindow *win);
void gimp_add_busy_cursors_until_idle (void);

View File

@ -1239,6 +1239,7 @@ gimp_dnd_file_open_files (gchar *buffer)
if ((sig_len < len) && (! strncmp (name, data_type, sig_len)))
name += sig_len;
if (name && strlen (name) > 2)
file_open (name, name);
if (*buffer)
@ -1275,6 +1276,6 @@ gimp_dnd_file_dest_set (GtkWidget *widget)
{
gtk_signal_connect (GTK_OBJECT (widget), "drag_data_received",
GTK_SIGNAL_FUNC (gimp_dnd_file_drag_data_received),
NULL);
widget);
}

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define bucket_fill_small_width 32
#define bucket_fill_small_height 32
#define bucket_fill_small_x_hot 0
#define bucket_fill_small_y_hot 0
static unsigned char bucket_fill_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0xc0, 0x01,
0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x20, 0x07, 0x00, 0x00, 0x10, 0x0d,
0x00, 0x00, 0x88, 0x1b, 0x00, 0x00, 0x04, 0x1d, 0x00, 0x00, 0x04, 0x1e,
0x00, 0x00, 0xf8, 0x17, 0x00, 0x00, 0xf0, 0x13, 0x00, 0x00, 0xe0, 0x01,
0x00, 0x00, 0xc0, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define bucket_fill_small_mask_width 32
#define bucket_fill_small_mask_height 32
#define bucket_fill_small_mask_x_hot 0
#define bucket_fill_small_mask_y_hot 0
static unsigned char bucket_fill_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x01,
0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03,
0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x1f,
0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0xfe, 0x3f,
0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf0, 0x13,
0x00, 0x00, 0xe0, 0x39, 0x00, 0x00, 0xc0, 0x38, 0x00, 0x00, 0x00, 0x10,
0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x10 };

17
cursors/crop_small.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define crop_small_width 32
#define crop_small_height 32
#define crop_small_x_hot 0
#define crop_small_y_hot 0
static unsigned char crop_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf8, 0x0f,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0xfe, 0x03,
0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define crop_small_mask_width 32
#define crop_small_mask_height 32
#define crop_small_mask_x_hot 0
#define crop_small_mask_y_hot 0
static unsigned char crop_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xfc, 0x1f,
0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x1c, 0x07, 0x00, 0x00, 0x1c, 0x07,
0x00, 0x00, 0x1c, 0x07, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xff, 0x07,
0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x08, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define crosshair_small_width 32
#define crosshair_small_height 32
#define crosshair_small_x_hot 10
#define crosshair_small_y_hot 10
static unsigned char crosshair_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x7c, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,
0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define crosshair_small_mask_width 32
#define crosshair_small_mask_height 32
#define crosshair_small_mask_x_hot 10
#define crosshair_small_mask_y_hot 10
static unsigned char crosshair_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7c, 0xc0, 0x07, 0x00, 0xfe, 0xe0, 0x0f, 0x00, 0x7c, 0xc0, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00,
0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define ellipse_select_small_width 32
#define ellipse_select_small_height 32
#define ellipse_select_small_x_hot 0
#define ellipse_select_small_y_hot 0
static unsigned char ellipse_select_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x08, 0x02,
0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define ellipse_select_small_mask_width 32
#define ellipse_select_small_mask_height 32
#define ellipse_select_small_mask_x_hot 0
#define ellipse_select_small_mask_y_hot 0
static unsigned char ellipse_select_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0x03,
0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x06, 0x0c,
0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c,
0x00, 0x00, 0x06, 0x0c, 0x00, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0xfc, 0x07,
0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/eraser_small.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define eraser_small_width 32
#define eraser_small_height 32
#define eraser_small_x_hot 0
#define eraser_small_y_hot 0
static unsigned char eraser_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01,
0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x20, 0x04, 0x00, 0x00, 0x10, 0x08,
0x00, 0x00, 0x08, 0x0c, 0x00, 0x00, 0x04, 0x06, 0x00, 0x00, 0x02, 0x03,
0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, 0x66, 0x00,
0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x16, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define eraser_small_mask_width 32
#define eraser_small_mask_height 32
#define eraser_small_mask_x_hot 0
#define eraser_small_mask_y_hot 0
static unsigned char eraser_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03,
0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf8, 0x1f,
0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0x07,
0x00, 0x80, 0xff, 0x03, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0xff, 0x00,
0x00, 0x00, 0xfe, 0x16, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0x16,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define free_select_small_width 32
#define free_select_small_height 32
#define free_select_small_x_hot 0
#define free_select_small_y_hot 0
static unsigned char free_select_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0x02, 0x08,
0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10,
0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x07, 0x06, 0x00, 0x80, 0xfa, 0x01,
0x00, 0x80, 0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00,
0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define free_select_small_mask_width 32
#define free_select_small_mask_height 32
#define free_select_small_mask_x_hot 0
#define free_select_small_mask_y_hot 0
static unsigned char free_select_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01,
0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x0f, 0x1e,
0x00, 0x80, 0x03, 0x38, 0x00, 0x80, 0x03, 0x38, 0x00, 0x80, 0x03, 0x38,
0x00, 0x80, 0x07, 0x1e, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0x07,
0x00, 0xc0, 0xff, 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00,
0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define fuzzy_select_small_width 32
#define fuzzy_select_small_height 32
#define fuzzy_select_small_x_hot 0
#define fuzzy_select_small_y_hot 0
static unsigned char fuzzy_select_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x40, 0x44, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11,
0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xd0, 0x20, 0x00, 0x00, 0x00, 0x0b,
0x00, 0x00, 0x80, 0x15, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x41,
0x00, 0x00, 0xf0, 0x04, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3c, 0x00,
0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x07, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define fuzzy_select_small_mask_width 32
#define fuzzy_select_small_mask_height 32
#define fuzzy_select_small_mask_x_hot 0
#define fuzzy_select_small_mask_y_hot 0
static unsigned char fuzzy_select_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x40, 0x44,
0x00, 0x00, 0xe0, 0xee, 0x00, 0x00, 0x40, 0x5f, 0x00, 0x00, 0x80, 0x3f,
0x00, 0x00, 0xd0, 0x3f, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0xd0, 0x3f,
0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0xe0, 0x57, 0x00, 0x00, 0xf0, 0xe7,
0x00, 0x00, 0xf8, 0x4f, 0x00, 0x00, 0xfc, 0x04, 0x00, 0x00, 0x7e, 0x00,
0x00, 0x00, 0x3f, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x80, 0x0f, 0x00,
0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/intersect.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define intersect_width 32
#define intersect_height 32
#define intersect_x_hot 0
#define intersect_y_hot 0
static unsigned char intersect_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x22,
0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define intersect_mask_width 32
#define intersect_mask_height 32
#define intersect_mask_x_hot 0
#define intersect_mask_y_hot 0
static unsigned char intersect_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3e,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x77,
0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/minus.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define minus_width 32
#define minus_height 32
#define minus_x_hot 0
#define minus_y_hot 0
static unsigned char minus_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/minus_mask.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define minus_mask_width 32
#define minus_mask_height 32
#define minus_mask_x_hot 0
#define minus_mask_y_hot 0
static unsigned char minus_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -1,8 +1,17 @@
#define mouse_width 14
#define mouse_height 17
#define mouse_x_hot 1
#define mouse_y_hot 1
/* Created with The GIMP */
#define mouse_width 32
#define mouse_height 32
#define mouse_x_hot 3
#define mouse_y_hot 2
static unsigned char mouse_bits[] = {
0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x0e, 0x00, 0x1e, 0x00, 0x3e, 0x00,
0x7e, 0x00, 0xfe, 0x00, 0xfe, 0x01, 0x3e, 0x00, 0x06, 0x00, 0x02, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0xf0, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00,
0xf0, 0x07, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00,
0xf0, 0x3f, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00,
0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -1,6 +1,17 @@
#define mouse_mask_width 14
#define mouse_mask_height 17
/* Created with The GIMP */
#define mouse_mask_width 32
#define mouse_mask_height 32
#define mouse_mask_x_hot 3
#define mouse_mask_y_hot 2
static unsigned char mouse_mask_bits[] = {
0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x3f, 0x00, 0x7f, 0x00,
0xff, 0x00, 0xff, 0x01, 0xff, 0x03, 0xff, 0x01, 0x3f, 0x00, 0x07, 0x00,
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00,
0x38, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00,
0xf8, 0x01, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00,
0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00,
0xf8, 0x7f, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00,
0x78, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/move.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define move_width 32
#define move_height 32
#define move_x_hot 0
#define move_y_hot 0
static unsigned char move_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x80, 0x24, 0x00, 0x00, 0xc0, 0x7f,
0x00, 0x00, 0x80, 0x24, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/move_mask.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define move_mask_width 32
#define move_mask_height 32
#define move_mask_x_hot 0
#define move_mask_y_hot 0
static unsigned char move_mask_bits[] = {
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1f,
0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0xe0, 0xff,
0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x1f,
0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define paintbrush_small_width 32
#define paintbrush_small_height 32
#define paintbrush_small_x_hot 0
#define paintbrush_small_y_hot 0
static unsigned char paintbrush_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x30,
0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0e,
0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03,
0x00, 0x00, 0xb8, 0x01, 0x00, 0x00, 0x74, 0x00, 0x00, 0x00, 0x7a, 0x00,
0x00, 0x00, 0x3d, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define paintbrush_small_mask_width 32
#define paintbrush_small_mask_height 32
#define paintbrush_small_mask_x_hot 0
#define paintbrush_small_mask_y_hot 0
static unsigned char paintbrush_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x7c,
0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x80, 0x3f,
0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xfc, 0x0f,
0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xff, 0x03, 0x00, 0x80, 0xff, 0x00,
0x00, 0xe0, 0xff, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0xe0, 0x1f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/pencil_small.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define pencil_small_width 32
#define pencil_small_height 32
#define pencil_small_x_hot 0
#define pencil_small_y_hot 0
static unsigned char pencil_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0d,
0x00, 0x00, 0x80, 0x0e, 0x00, 0x00, 0x40, 0x06, 0x00, 0x00, 0x20, 0x03,
0x00, 0x00, 0x90, 0x01, 0x00, 0x00, 0xc8, 0x00, 0x00, 0x00, 0x68, 0x00,
0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define pencil_small_mask_width 32
#define pencil_small_mask_height 32
#define pencil_small_mask_x_hot 0
#define pencil_small_mask_y_hot 0
static unsigned char pencil_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x80, 0x1f,
0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xf0, 0x07,
0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0xfc, 0x00,
0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x0e, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/plus.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define plus_width 32
#define plus_height 32
#define plus_x_hot 0
#define plus_y_hot 0
static unsigned char plus_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x08,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/plus_mask.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define plus_mask_width 32
#define plus_mask_height 32
#define plus_mask_x_hot 0
#define plus_mask_y_hot 0
static unsigned char plus_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c,
0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x7f,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define rect_select_small_width 32
#define rect_select_small_height 32
#define rect_select_small_x_hot 0
#define rect_select_small_y_hot 0
static unsigned char rect_select_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x0d,
0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08,
0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08,
0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x08,
0x00, 0x00, 0xb6, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define rect_select_small_mask_width 32
#define rect_select_small_mask_height 32
#define rect_select_small_mask_x_hot 0
#define rect_select_small_mask_y_hot 0
static unsigned char rect_select_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f,
0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c,
0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c,
0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0x07, 0x1c, 0x00, 0x00, 0xff, 0x1f,
0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/resize_small.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define resize_small_width 32
#define resize_small_height 32
#define resize_small_x_hot 0
#define resize_small_y_hot 0
static unsigned char resize_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xfa, 0x03,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02,
0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0xf8, 0x0b,
0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define resize_small_mask_width 32
#define resize_small_mask_height 32
#define resize_small_mask_x_hot 0
#define resize_small_mask_y_hot 0
static unsigned char resize_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00,
0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07,
0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x1c, 0x07, 0x00, 0x00, 0x1c, 0x07,
0x00, 0x00, 0x1c, 0x07, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0xfc, 0x1f,
0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x1e,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/zoom.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define zoom_width 32
#define zoom_height 32
#define zoom_x_hot 8
#define zoom_y_hot 8
static unsigned char zoom_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00,
0x20, 0x08, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00,
0x04, 0x40, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00,
0x04, 0x40, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00,
0x10, 0x30, 0x00, 0x00, 0x20, 0x78, 0x00, 0x00, 0xc0, 0xe7, 0x00, 0x00,
0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00,
0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00,
0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/zoom_mask.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define zoom_mask_width 32
#define zoom_mask_height 32
#define zoom_mask_x_hot 8
#define zoom_mask_y_hot 8
static unsigned char zoom_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00,
0xf0, 0x1f, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x1c, 0x70, 0x00, 0x00,
0x0e, 0xe0, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00,
0x0e, 0xe0, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00, 0x1c, 0x70, 0x00, 0x00,
0x38, 0x78, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00,
0xc0, 0xe7, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x80, 0x0f, 0x00,
0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x7c, 0x00,
0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

17
cursors/zoom_small.xbm Normal file
View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define zoom_small_width 32
#define zoom_small_height 32
#define zoom_small_x_hot 0
#define zoom_small_y_hot 0
static unsigned char zoom_small_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x84, 0x00,
0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02,
0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x02, 0x01,
0x00, 0x00, 0x84, 0x03, 0x00, 0x00, 0x78, 0x07, 0x00, 0x00, 0x00, 0x0e,
0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70,
0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00 };

View File

@ -0,0 +1,17 @@
/* Created with The GIMP */
#define zoom_small_mask_width 32
#define zoom_small_mask_height 32
#define zoom_small_mask_x_hot 0
#define zoom_small_mask_y_hot 0
static unsigned char zoom_small_mask_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfe, 0x01,
0x00, 0x00, 0x87, 0x03, 0x00, 0x80, 0x03, 0x07, 0x00, 0x80, 0x03, 0x07,
0x00, 0x80, 0x03, 0x07, 0x00, 0x80, 0x03, 0x07, 0x00, 0x00, 0x87, 0x03,
0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x78, 0x1f,
0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8,
0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x20 };