Commit c6ba0ffb authored by Michael Natterer's avatar Michael Natterer

app/cursors/libgimpwidgets: bye bye stone age B&W bitmap cursors

parent b70b04c6
......@@ -70,7 +70,6 @@ enum
PROP_USER_MANUAL_ONLINE,
PROP_USER_MANUAL_ONLINE_URI,
PROP_DOCK_WINDOW_HINT,
PROP_CURSOR_FORMAT,
PROP_CURSOR_HANDEDNESS,
PROP_HIDE_DOCKS,
......@@ -78,6 +77,7 @@ enum
PROP_LAST_TIP_SHOWN,
/* ignored, only for backward compatibility: */
PROP_CURSOR_FORMAT,
PROP_INFO_WINDOW_PER_DISPLAY,
PROP_MENU_MNEMONICS,
PROP_SHOW_TOOL_TIPS,
......@@ -244,11 +244,6 @@ gimp_gui_config_class_init (GimpGuiConfigClass *klass)
GIMP_WINDOW_HINT_UTILITY,
GIMP_PARAM_STATIC_STRINGS |
GIMP_CONFIG_PARAM_RESTART);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_CURSOR_FORMAT,
"cursor-format", CURSOR_FORMAT_BLURB,
GIMP_TYPE_CURSOR_FORMAT,
GIMP_CURSOR_FORMAT_PIXBUF,
GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_CURSOR_HANDEDNESS,
"cursor-handedness", CURSOR_HANDEDNESS_BLURB,
GIMP_TYPE_HANDEDNESS,
......@@ -280,6 +275,12 @@ gimp_gui_config_class_init (GimpGuiConfigClass *klass)
GIMP_PARAM_STATIC_STRINGS));
/* only for backward compatibility: */
GIMP_CONFIG_INSTALL_PROP_ENUM (object_class, PROP_CURSOR_FORMAT,
"cursor-format", CURSOR_FORMAT_BLURB,
GIMP_TYPE_CURSOR_FORMAT,
GIMP_CURSOR_FORMAT_PIXBUF,
GIMP_PARAM_STATIC_STRINGS |
GIMP_CONFIG_PARAM_IGNORE);
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_INFO_WINDOW_PER_DISPLAY,
"info-window-per-display",
NULL,
......@@ -434,9 +435,6 @@ gimp_gui_config_set_property (GObject *object,
case PROP_DOCK_WINDOW_HINT:
gui_config->dock_window_hint = g_value_get_enum (value);
break;
case PROP_CURSOR_FORMAT:
gui_config->cursor_format = g_value_get_enum (value);
break;
case PROP_CURSOR_HANDEDNESS:
gui_config->cursor_handedness = g_value_get_enum (value);
break;
......@@ -451,6 +449,7 @@ gimp_gui_config_set_property (GObject *object,
gui_config->last_tip_shown = g_value_get_int (value);
break;
case PROP_CURSOR_FORMAT:
case PROP_INFO_WINDOW_PER_DISPLAY:
case PROP_MENU_MNEMONICS:
case PROP_SHOW_TOOL_TIPS:
......@@ -558,9 +557,6 @@ gimp_gui_config_get_property (GObject *object,
case PROP_DOCK_WINDOW_HINT:
g_value_set_enum (value, gui_config->dock_window_hint);
break;
case PROP_CURSOR_FORMAT:
g_value_set_enum (value, gui_config->cursor_format);
break;
case PROP_CURSOR_HANDEDNESS:
g_value_set_enum (value, gui_config->cursor_handedness);
break;
......@@ -575,6 +571,7 @@ gimp_gui_config_get_property (GObject *object,
g_value_set_int (value, gui_config->last_tip_shown);
break;
case PROP_CURSOR_FORMAT:
case PROP_INFO_WINDOW_PER_DISPLAY:
case PROP_MENU_MNEMONICS:
case PROP_SHOW_TOOL_TIPS:
......
......@@ -65,7 +65,6 @@ struct _GimpGuiConfig
gboolean user_manual_online;
gchar *user_manual_online_uri;
GimpWindowHint dock_window_hint;
GimpCursorFormat cursor_format;
GimpHandedness cursor_handedness;
/* saved in sessionrc */
......
......@@ -2122,17 +2122,14 @@ prefs_dialog_new (Gimp *gimp,
_("Show pointer for paint _tools"),
GTK_BOX (vbox2));
table = prefs_table_new (3, GTK_CONTAINER (vbox2));
table = prefs_table_new (2, GTK_CONTAINER (vbox2));
prefs_enum_combo_box_add (object, "cursor-mode", 0, 0,
_("Pointer _mode:"),
GTK_TABLE (table), 0, size_group);
prefs_enum_combo_box_add (object, "cursor-format", 0, 0,
_("Pointer re_ndering:"),
GTK_TABLE (table), 1, size_group);
prefs_enum_combo_box_add (object, "cursor-handedness", 0, 0,
_("Pointer _handedness:"),
GTK_TABLE (table), 2, NULL);
GTK_TABLE (table), 1, NULL);
g_object_unref (size_group);
size_group = NULL;
......
......@@ -92,7 +92,6 @@ gimp_display_shell_set_override_cursor (GimpDisplayShell *shell,
shell->using_override_cursor = TRUE;
gimp_cursor_set (shell->canvas,
shell->cursor_format,
shell->cursor_handedness,
cursor_type,
GIMP_TOOL_CURSOR_NONE,
......@@ -221,8 +220,7 @@ gimp_display_shell_real_set_cursor (GimpDisplayShell *shell,
GimpCursorModifier modifier,
gboolean always_install)
{
GimpCursorFormat cursor_format;
GimpHandedness cursor_handedness;
GimpHandedness cursor_handedness;
g_return_if_fail (GIMP_IS_DISPLAY_SHELL (shell));
......@@ -268,24 +266,21 @@ gimp_display_shell_real_set_cursor (GimpDisplayShell *shell,
}
}
cursor_format = GIMP_GUI_CONFIG (shell->display->config)->cursor_format;
cursor_handedness = GIMP_GUI_CONFIG (shell->display->config)->cursor_handedness;
if (shell->cursor_format != cursor_format ||
shell->cursor_handedness != cursor_handedness ||
if (shell->cursor_handedness != cursor_handedness ||
shell->current_cursor != cursor_type ||
shell->tool_cursor != tool_cursor ||
shell->cursor_modifier != modifier ||
always_install)
{
shell->cursor_format = cursor_format;
shell->cursor_handedness = cursor_handedness;
shell->current_cursor = cursor_type;
shell->tool_cursor = tool_cursor;
shell->cursor_modifier = modifier;
gimp_cursor_set (shell->canvas,
cursor_format, cursor_handedness,
cursor_handedness,
cursor_type, tool_cursor, modifier);
}
}
......@@ -299,7 +299,6 @@ gimp_display_shell_init (GimpDisplayShell *shell)
shell->icon_size = 32;
shell->cursor_format = GIMP_CURSOR_FORMAT_BITMAP;
shell->cursor_handedness = GIMP_HANDEDNESS_RIGHT;
shell->current_cursor = (GimpCursorType) -1;
shell->tool_cursor = GIMP_TOOL_CURSOR_NONE;
......
......@@ -139,7 +139,6 @@ struct _GimpDisplayShell
guint fill_idle_id; /* display_shell_fill() idle ID */
GimpCursorFormat cursor_format; /* Currently used cursor format */
GimpHandedness cursor_handedness;/* Handedness for cursor display */
GimpCursorType current_cursor; /* Currently installed main cursor */
GimpToolCursorType tool_cursor; /* Current Tool cursor */
......
......@@ -65,11 +65,9 @@ typedef struct _GimpCursor GimpCursor;
struct _GimpCursor
{
const guint8 *pixbuf_data;
const guint8 *pixbuf_data_bw;
const gint x_hot, y_hot;
GdkPixbuf *pixbuf;
GdkPixbuf *pixbuf_bw;
};
......@@ -79,82 +77,66 @@ static GimpCursor gimp_cursors[] =
{
cursor_none,
cursor_none_bw,
cursor_none_x_hot, cursor_none_y_hot
},
{
cursor_mouse,
cursor_mouse_bw,
cursor_mouse_x_hot, cursor_mouse_y_hot
},
{
cursor_crosshair,
cursor_crosshair_bw,
cursor_crosshair_x_hot, cursor_crosshair_y_hot
},
{
cursor_crosshair_small,
cursor_crosshair_small_bw,
cursor_crosshair_small_x_hot, cursor_crosshair_small_y_hot
},
{
cursor_bad,
cursor_bad_bw,
cursor_bad_x_hot, cursor_bad_y_hot
},
{
cursor_move,
cursor_move_bw,
cursor_move_x_hot, cursor_move_y_hot
},
{
cursor_zoom,
cursor_zoom_bw,
cursor_zoom_x_hot, cursor_zoom_y_hot
},
{
cursor_color_picker,
cursor_color_picker_bw,
cursor_color_picker_x_hot, cursor_color_picker_y_hot
},
{
cursor_corner_top_left,
cursor_corner_top_left_bw,
cursor_corner_top_left_x_hot, cursor_corner_top_left_y_hot
},
{
cursor_corner_top_right,
cursor_corner_top_right_bw,
cursor_corner_top_right_x_hot, cursor_corner_top_right_y_hot
},
{
cursor_corner_bottom_left,
cursor_corner_bottom_left_bw,
cursor_corner_bottom_left_x_hot, cursor_corner_bottom_left_y_hot
},
{
cursor_corner_bottom_right,
cursor_corner_bottom_right_bw,
cursor_corner_bottom_right_x_hot, cursor_corner_bottom_right_y_hot
},
{
cursor_side_top,
cursor_side_top_bw,
cursor_side_top_x_hot, cursor_side_top_y_hot
},
{
cursor_side_left,
cursor_side_left_bw,
cursor_side_left_x_hot, cursor_side_left_y_hot
},
{
cursor_side_right,
cursor_side_right_bw,
cursor_side_right_x_hot, cursor_side_right_y_hot
},
{
cursor_side_bottom,
cursor_side_bottom_bw,
cursor_side_bottom_x_hot, cursor_side_bottom_y_hot
}
};
......@@ -164,42 +146,42 @@ static GimpCursor gimp_tool_cursors[] =
/* these have to match up with enum GimpToolCursorType in widgets-enums.h */
{ NULL },
{ tool_rect_select, tool_rect_select_bw },
{ tool_ellipse_select, tool_ellipse_select_bw },
{ tool_free_select, tool_free_select_bw },
{ tool_polygon_select, tool_polygon_select_bw },
{ tool_fuzzy_select, tool_fuzzy_select_bw },
{ tool_paths, tool_paths_bw },
{ tool_paths_anchor, tool_paths_anchor_bw },
{ tool_paths_control, tool_paths_control_bw },
{ tool_paths_segment, tool_paths_segment_bw },
{ tool_iscissors, tool_iscissors_bw },
{ tool_move, tool_move_bw },
{ tool_zoom, tool_zoom_bw },
{ tool_crop, tool_crop_bw },
{ tool_resize, tool_resize_bw },
{ tool_rotate, tool_rotate_bw },
{ tool_shear, tool_shear_bw },
{ tool_perspective, tool_perspective_bw },
{ tool_flip_horizontal, tool_flip_horizontal_bw },
{ tool_flip_vertical, tool_flip_vertical_bw },
{ tool_text, tool_text_bw },
{ tool_color_picker, tool_color_picker_bw },
{ tool_bucket_fill, tool_bucket_fill_bw },
{ tool_blend, tool_blend_bw },
{ tool_pencil, tool_pencil_bw },
{ tool_paintbrush, tool_paintbrush_bw },
{ tool_airbrush, tool_airbrush_bw },
{ tool_ink, tool_ink_bw },
{ tool_clone, tool_clone_bw },
{ tool_heal, tool_heal_bw },
{ tool_eraser, tool_eraser_bw },
{ tool_smudge, tool_smudge_bw },
{ tool_blur, tool_blur_bw },
{ tool_dodge, tool_dodge_bw },
{ tool_burn, tool_burn_bw },
{ tool_measure, tool_measure_bw },
{ tool_hand, tool_hand_bw }
{ tool_rect_select },
{ tool_ellipse_select },
{ tool_free_select },
{ tool_polygon_select },
{ tool_fuzzy_select },
{ tool_paths },
{ tool_paths_anchor },
{ tool_paths_control },
{ tool_paths_segment },
{ tool_iscissors },
{ tool_move },
{ tool_zoom },
{ tool_crop },
{ tool_resize },
{ tool_rotate },
{ tool_shear },
{ tool_perspective },
{ tool_flip_horizontal },
{ tool_flip_vertical },
{ tool_text },
{ tool_color_picker },
{ tool_bucket_fill },
{ tool_blend },
{ tool_pencil },
{ tool_paintbrush },
{ tool_airbrush },
{ tool_ink },
{ tool_clone },
{ tool_heal },
{ tool_eraser },
{ tool_smudge },
{ tool_blur },
{ tool_dodge },
{ tool_burn },
{ tool_measure },
{ tool_hand }
};
static GimpCursor gimp_cursor_modifiers[] =
......@@ -207,46 +189,35 @@ static GimpCursor gimp_cursor_modifiers[] =
/* these have to match up with enum GimpCursorModifier in widgets-enums.h */
{ NULL },
{ modifier_bad, modifier_bad },
{ modifier_plus, modifier_plus },
{ modifier_minus, modifier_minus },
{ modifier_intersect, modifier_intersect },
{ modifier_move, modifier_move },
{ modifier_resize, modifier_resize },
{ modifier_control, modifier_control },
{ modifier_anchor, modifier_anchor },
{ modifier_foreground, modifier_foreground },
{ modifier_background, modifier_background },
{ modifier_pattern, modifier_pattern },
{ modifier_join, modifier_join },
{ modifier_select, modifier_select }
{ modifier_bad },
{ modifier_plus },
{ modifier_minus },
{ modifier_intersect },
{ modifier_move },
{ modifier_resize },
{ modifier_control },
{ modifier_anchor },
{ modifier_foreground },
{ modifier_background },
{ modifier_pattern },
{ modifier_join },
{ modifier_select }
};
static const GdkPixbuf *
get_cursor_pixbuf (GimpCursor *cursor,
gboolean bw)
get_cursor_pixbuf (GimpCursor *cursor)
{
GdkPixbuf **pixbuf;
if (! cursor->pixbuf)
cursor->pixbuf = gdk_pixbuf_new_from_inline (-1,
cursor->pixbuf_data,
FALSE, NULL);
g_return_val_if_fail (cursor->pixbuf != NULL, NULL);
if (bw)
pixbuf = &cursor->pixbuf_bw;
else
pixbuf = &cursor->pixbuf;
if (! *pixbuf)
*pixbuf = gdk_pixbuf_new_from_inline (-1,
bw ?
cursor->pixbuf_data_bw :
cursor->pixbuf_data,
FALSE, NULL);
g_return_val_if_fail (*pixbuf != NULL, NULL);
return *pixbuf;
return cursor->pixbuf;
}
GdkCursor *
gimp_cursor_new (GdkDisplay *display,
GimpCursorFormat cursor_format,
GimpHandedness cursor_handedness,
GimpCursorType cursor_type,
GimpToolCursorType tool_cursor,
......@@ -257,7 +228,6 @@ gimp_cursor_new (GdkDisplay *display,
GimpCursor *bmtool = NULL;
GdkCursor *cursor;
GdkPixbuf *pixbuf;
gboolean bw;
g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
g_return_val_if_fail (cursor_type < GIMP_CURSOR_LAST, NULL);
......@@ -347,18 +317,7 @@ gimp_cursor_new (GdkDisplay *display,
bmmodifier = &gimp_cursor_modifiers[modifier];
}
if (cursor_format != GIMP_CURSOR_FORMAT_BITMAP &&
gdk_display_supports_cursor_alpha (display) &&
gdk_display_supports_cursor_color (display))
{
bw = FALSE;
}
else
{
bw = TRUE;
}
pixbuf = gdk_pixbuf_copy (get_cursor_pixbuf (bmcursor, bw));
pixbuf = gdk_pixbuf_copy (get_cursor_pixbuf (bmcursor));
if (bmmodifier || bmtool)
{
......@@ -366,16 +325,16 @@ gimp_cursor_new (GdkDisplay *display,
gint height = gdk_pixbuf_get_height (pixbuf);
if (bmmodifier)
gdk_pixbuf_composite (get_cursor_pixbuf (bmmodifier, bw), pixbuf,
gdk_pixbuf_composite (get_cursor_pixbuf (bmmodifier), pixbuf,
0, 0, width, height,
0.0, 0.0, 1.0, 1.0,
GDK_INTERP_NEAREST, bw ? 255 : 200);
GDK_INTERP_NEAREST, 200);
if (bmtool)
gdk_pixbuf_composite (get_cursor_pixbuf (bmtool, bw), pixbuf,
gdk_pixbuf_composite (get_cursor_pixbuf (bmtool), pixbuf,
0, 0, width, height,
0.0, 0.0, 1.0, 1.0,
GDK_INTERP_NEAREST, bw ? 255 : 200);
GDK_INTERP_NEAREST, 200);
}
/* flip the cursor if mouse setting is left-handed */
......@@ -404,7 +363,6 @@ gimp_cursor_new (GdkDisplay *display,
void
gimp_cursor_set (GtkWidget *widget,
GimpCursorFormat cursor_format,
GimpHandedness cursor_handedness,
GimpCursorType cursor_type,
GimpToolCursorType tool_cursor,
......@@ -416,7 +374,6 @@ gimp_cursor_set (GtkWidget *widget,
g_return_if_fail (gtk_widget_get_realized (widget));
cursor = gimp_cursor_new (gtk_widget_get_display (widget),
cursor_format,
cursor_handedness,
cursor_type,
tool_cursor,
......
......@@ -20,13 +20,11 @@
GdkCursor * gimp_cursor_new (GdkDisplay *display,
GimpCursorFormat cursor_format,
GimpHandedness cursor_handedness,
GimpCursorType cursor_type,
GimpToolCursorType tool_cursor,
GimpCursorModifier modifier);
void gimp_cursor_set (GtkWidget *widget,
GimpCursorFormat cursor_format,
GimpHandedness cursor_handedness,
GimpCursorType cursor_type,
GimpToolCursorType tool_cursor,
......
......@@ -1546,7 +1546,6 @@ gimp_dialog_factory_set_busy (GimpDialogFactory *factory)
gdk_cursor_unref (cursor);
cursor = gimp_cursor_new (display,
GIMP_CURSOR_FORMAT_BITMAP,
GIMP_HANDEDNESS_RIGHT,
GDK_WATCH,
GIMP_TOOL_CURSOR_NONE,
......
......@@ -2,37 +2,21 @@
CURSOR_IMAGES = \
cursor-bad.png \
cursor-bad-bw.png \
cursor-color-picker.png \
cursor-color-picker-bw.png \
cursor-corner-bottom-left.png \
cursor-corner-bottom-left-bw.png \
cursor-corner-bottom-right.png \
cursor-corner-bottom-right-bw.png \
cursor-corner-top-left.png \
cursor-corner-top-left-bw.png \
cursor-corner-top-right.png \
cursor-corner-top-right-bw.png \
cursor-crosshair.png \
cursor-crosshair-bw.png \
cursor-crosshair-small.png \
cursor-crosshair-small-bw.png \
cursor-mouse.png \
cursor-mouse-bw.png \
cursor-move.png \
cursor-move-bw.png \
cursor-none.png \
cursor-none-bw.png \
cursor-side-bottom.png \
cursor-side-bottom-bw.png \
cursor-side-left.png \
cursor-side-left-bw.png \
cursor-side-right.png \
cursor-side-right-bw.png \
cursor-side-top.png \
cursor-side-top-bw.png \
cursor-zoom.png \
cursor-zoom-bw.png \
\
modifier-anchor.png \
modifier-bad.png \
......@@ -49,81 +33,44 @@ CURSOR_IMAGES = \
modifier-select.png \
\
tool-airbrush.png \
tool-airbrush-bw.png \
tool-blend.png \
tool-blend-bw.png \
tool-blur.png \
tool-blur-bw.png \
tool-bucket-fill.png \
tool-bucket-fill-bw.png \
tool-burn.png \
tool-burn-bw.png \
tool-clone.png \
tool-clone-bw.png \
tool-color-picker.png \
tool-color-picker-bw.png \
tool-crop.png \
tool-crop-bw.png \
tool-dodge.png \
tool-dodge-bw.png \
tool-ellipse-select.png \
tool-ellipse-select-bw.png \
tool-eraser.png \
tool-eraser-bw.png \
tool-flip-horizontal.png \
tool-flip-horizontal-bw.png \
tool-flip-vertical.png \
tool-flip-vertical-bw.png \
tool-free-select.png \
tool-free-select-bw.png \
tool-fuzzy-select.png \
tool-fuzzy-select-bw.png \
tool-hand.png \
tool-hand-bw.png \
tool-heal.png \
tool-heal-bw.png \
tool-ink.png \
tool-ink-bw.png \
tool-iscissors.png \
tool-iscissors-bw.png \
tool-measure.png \
tool-measure-bw.png \
tool-move.png \
tool-move-bw.png \
tool-paintbrush.png \
tool-paintbrush-bw.png \
tool-paths.png \
tool-paths-bw.png \
tool-paths-anchor.png \
tool-paths-anchor-bw.png \
tool-paths-control.png \
tool-paths-control-bw.png \
tool-paths-segment.png \
tool-paths-segment-bw.png \
tool-pencil.png \
tool-pencil-bw.png \
tool-perspective.png \
tool-perspective-bw.png \
tool-polygon-select.png \
tool-polygon-select-bw.png \
tool-rect-select.png \
tool-rect-select-bw.png \
tool-resize.png \
tool-resize-bw.png \
tool-rotate.png \
tool-rotate-bw.png \
tool-shear.png \
tool-shear-bw.png \
tool-smudge.png \
tool-smudge-bw.png \
tool-text.png \
tool-text-bw.png \
tool-zoom.png \
tool-zoom-bw.png
tool-zoom.png
COLOR_PICKER_IMAGES = \
cursor-color-picker.png \
cursor-color-picker-bw.png
cursor-color-picker.png
EXTRA_DIST = \
$(CURSOR_IMAGES) \
......
......@@ -174,19 +174,8 @@ make_cursor (GdkDisplay *display)
{
GdkCursor *cursor;
GdkPixbuf *pixbuf;
static const guint8 *data;
if (gdk_display_supports_cursor_alpha (display) &&
gdk_display_supports_cursor_color (display))
{
data = cursor_color_picker;
}
else
{
data = cursor_color_picker_bw;
}