static void gimp_paint_tool_cursor_update (GimpTool *tool, const GimpCoords *coords, GdkModifierType state, GimpDisplay *display) { GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (tool); GimpCursorModifier modifier; GimpCursorModifier toggle_modifier; GimpCursorModifier old_modifier; GimpCursorModifier old_toggle_modifier; modifier = tool->control->cursor_modifier; toggle_modifier = tool->control->toggle_cursor_modifier; old_modifier = modifier; old_toggle_modifier = toggle_modifier; if (! gimp_color_tool_is_enabled (GIMP_COLOR_TOOL (tool))) { GimpImage *image = gimp_display_get_image (display); GimpDrawable *drawable = gimp_image_get_active_drawable (image); if (gimp_viewable_get_children (GIMP_VIEWABLE (drawable)) || gimp_item_is_content_locked (GIMP_ITEM (drawable)) || ! gimp_item_is_visible (GIMP_ITEM (drawable))) { modifier = GIMP_CURSOR_MODIFIER_BAD; toggle_modifier = GIMP_CURSOR_MODIFIER_BAD; } if (! paint_tool->show_cursor && modifier != GIMP_CURSOR_MODIFIER_BAD) { gimp_tool_set_cursor (tool, display, GIMP_CURSOR_NONE, GIMP_TOOL_CURSOR_NONE, GIMP_CURSOR_MODIFIER_NONE); return; } gimp_tool_control_set_cursor_modifier (tool->control, modifier); gimp_tool_control_set_toggle_cursor_modifier (tool->control, toggle_modifier); } GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display); /* reset old stuff here so we are not interferring with the modifiers * set by our subclasses */ gimp_tool_control_set_cursor_modifier (tool->control, old_modifier); gimp_tool_control_set_toggle_cursor_modifier (tool->control, old_toggle_modifier); }
static void gimp_convolve_tool_init (GimpConvolveTool *convolve) { GimpTool *tool = GIMP_TOOL (convolve); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_BLUR); gimp_tool_control_set_toggle_cursor_modifier (tool->control, GIMP_CURSOR_MODIFIER_MINUS); gimp_convolve_tool_status_update (tool, GIMP_BLUR_CONVOLVE); }
static void gimp_eraser_tool_init (GimpEraserTool *eraser) { GimpTool *tool = GIMP_TOOL (eraser); GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (eraser); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_ERASER); gimp_tool_control_set_toggle_cursor_modifier (tool->control, GIMP_CURSOR_MODIFIER_MINUS); gimp_paint_tool_enable_color_picker (paint_tool, GIMP_COLOR_PICK_MODE_BACKGROUND); paint_tool->status = _("Click to erase"); paint_tool->status_line = _("Click to erase the line"); paint_tool->status_ctrl = _("%s to pick a background color"); }
static void gimp_flip_tool_cursor_update (GimpTool *tool, GimpCoords *coords, GdkModifierType state, GimpDisplay *display) { GimpFlipOptions *options = GIMP_FLIP_TOOL_GET_OPTIONS (tool); GimpCursorModifier modifier = GIMP_CURSOR_MODIFIER_BAD; if (gimp_image_coords_in_active_pickable (display->image, coords, FALSE, TRUE)) { modifier = GIMP_CURSOR_MODIFIER_NONE; } gimp_tool_control_set_cursor_modifier (tool->control, modifier); gimp_tool_control_set_toggle_cursor_modifier (tool->control, modifier); gimp_tool_control_set_toggled (tool->control, options->flip_type == GIMP_ORIENTATION_VERTICAL); GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display); }