static void gimp_foreground_select_tool_set_mask (GimpForegroundSelectTool *fg_select, GimpDisplay *display, GimpChannel *mask) { GimpTool *tool = GIMP_TOOL (fg_select); GimpForegroundSelectOptions *options; options = GIMP_FOREGROUND_SELECT_TOOL_GET_OPTIONS (tool); if (fg_select->mask == mask) return; if (fg_select->mask) { g_object_unref (fg_select->mask); fg_select->mask = NULL; } if (mask) { GimpRGB color; fg_select->mask = g_object_ref (mask); gimp_foreground_select_options_get_mask_color (options, &color); gimp_display_shell_set_mask (gimp_display_get_shell (display), GIMP_DRAWABLE (mask), &color); } else { gimp_display_shell_set_mask (gimp_display_get_shell (display), NULL, NULL); } if (mask) { gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PAINTBRUSH); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_ERASER); gimp_tool_control_set_toggled (tool->control, options->background); } else { gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FREE_SELECT); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FREE_SELECT); gimp_tool_control_set_toggled (tool->control, FALSE); } }
static void gimp_airbrush_tool_init (GimpAirbrushTool *airbrush) { GimpTool *tool = GIMP_TOOL (airbrush); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_AIRBRUSH); }
static void gimp_rectangle_select_tool_init (GimpRectangleSelectTool *rect_sel_tool) { GimpTool *tool = GIMP_TOOL (rect_sel_tool); GimpRectangleSelectToolPrivate *priv; gimp_rectangle_tool_init (GIMP_RECTANGLE_TOOL (rect_sel_tool)); rect_sel_tool->priv = G_TYPE_INSTANCE_GET_PRIVATE (rect_sel_tool, GIMP_TYPE_RECTANGLE_SELECT_TOOL, GimpRectangleSelectToolPrivate); priv = GIMP_RECTANGLE_SELECT_TOOL_GET_PRIVATE (rect_sel_tool); gimp_tool_control_set_wants_click (tool->control, TRUE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_PIXEL_BORDER); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_RECT_SELECT); gimp_tool_control_set_preserve (tool->control, FALSE); gimp_tool_control_set_dirty_mask (tool->control, GIMP_DIRTY_IMAGE_SIZE | GIMP_DIRTY_SELECTION); priv->undo = NULL; priv->redo = NULL; priv->press_x = 0.0; priv->press_y = 0.0; }
static void gimp_foreground_select_tool_drop_masks (GimpForegroundSelectTool *fg_select, GimpDisplay *display) { GimpTool *tool = GIMP_TOOL (fg_select); if (fg_select->trimap) { g_object_unref (fg_select->trimap); fg_select->trimap = NULL; } if (fg_select->mask) { g_object_unref (fg_select->mask); fg_select->mask = NULL; } if (GIMP_IS_DISPLAY (display)) { gimp_display_shell_set_mask (gimp_display_get_shell (display), NULL, NULL); } gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FREE_SELECT); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FREE_SELECT); gimp_tool_control_set_toggled (tool->control, FALSE); fg_select->state = MATTING_STATE_FREE_SELECT; }
static void gimp_cage_tool_init (GimpCageTool *self) { GimpTool *tool = GIMP_TOOL (self); gimp_tool_control_set_preserve (tool->control, FALSE); gimp_tool_control_set_dirty_mask (tool->control, GIMP_DIRTY_IMAGE | GIMP_DIRTY_IMAGE_STRUCTURE | GIMP_DIRTY_DRAWABLE | GIMP_DIRTY_SELECTION | GIMP_DIRTY_ACTIVE_DRAWABLE); gimp_tool_control_set_wants_click (tool->control, TRUE); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PERSPECTIVE); self->config = g_object_new (GIMP_TYPE_CAGE_CONFIG, NULL); self->hovering_handle = -1; self->tool_state = CAGE_STATE_INIT; self->coef = NULL; self->render_node = NULL; self->coef_node = NULL; self->cage_node = NULL; self->image_map = NULL; }
static void gimp_by_color_select_tool_init (GimpByColorSelectTool *by_color_select) { GimpTool *tool = GIMP_TOOL (by_color_select); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_HAND); }
static void gimp_foreground_select_tool_set_preview (GimpForegroundSelectTool *fg_select, GimpDisplay *display) { GimpTool *tool = GIMP_TOOL (fg_select); GimpForegroundSelectOptions *options; GimpRGB color; g_return_if_fail (fg_select->mask != NULL); options = GIMP_FOREGROUND_SELECT_TOOL_GET_OPTIONS (tool); gimp_foreground_select_options_get_mask_color (options, &color); gimp_display_shell_set_mask (gimp_display_get_shell (display), fg_select->mask, &color); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PAINTBRUSH); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PAINTBRUSH); gimp_tool_control_set_toggled (tool->control, FALSE); fg_select->state = MATTING_STATE_PREVIEW_MASK; }
static void gimp_fuzzy_select_tool_init (GimpFuzzySelectTool *fuzzy_select) { GimpTool *tool = GIMP_TOOL (fuzzy_select); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FUZZY_SELECT); }
static void gimp_ellipse_select_tool_init (GimpEllipseSelectTool *ellipse_select) { GimpTool *tool = GIMP_TOOL (ellipse_select); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_ELLIPSE_SELECT); }
static void gimp_airbrush_tool_init (GimpAirbrushTool *airbrush) { GimpTool *tool = GIMP_TOOL (airbrush); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_AIRBRUSH); gimp_paint_tool_enable_color_picker (GIMP_PAINT_TOOL (airbrush), GIMP_COLOR_PICK_MODE_FOREGROUND); }
static void gimp_smudge_tool_init (GimpSmudgeTool *smudge) { GimpTool *tool = GIMP_TOOL (smudge); GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (smudge); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_SMUDGE); paint_tool->status = _("Click to smudge"); paint_tool->status_line = _("Click to smudge the line"); paint_tool->status_ctrl = NULL; }
static void gimp_dodge_burn_tool_init (GimpDodgeBurnTool *dodgeburn) { GimpTool *tool = GIMP_TOOL (dodgeburn); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_DODGE); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_BURN); gimp_dodge_burn_tool_status_update (tool, GIMP_BURN); }
static void gimp_shear_tool_init (GimpShearTool *shear_tool) { GimpTool *tool = GIMP_TOOL (shear_tool); GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (shear_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_SHEAR); tr_tool->progress_text = _("Shearing"); tr_tool->use_grid = TRUE; }
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_align_tool_init (GimpAlignTool *align_tool) { GimpTool *tool = GIMP_TOOL (align_tool); gimp_tool_control_set_snap_to (tool->control, FALSE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_PIXEL_BORDER); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_MOVE); align_tool->function = ALIGN_TOOL_IDLE; }
static void gimp_mybrush_tool_init (GimpMybrushTool *mybrush_tool) { GimpTool *tool = GIMP_TOOL (mybrush_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_INK); gimp_tool_control_set_action_size (tool->control, "tools/tools-mybrush-radius-set"); gimp_paint_tool_enable_color_picker (GIMP_PAINT_TOOL (mybrush_tool), GIMP_COLOR_PICK_MODE_FOREGROUND); }
static void gimp_perspective_clone_tool_mode_notify (GimpPerspectiveCloneOptions *options, GParamSpec *pspec, GimpPerspectiveCloneTool *clone_tool) { GimpTool *tool = GIMP_TOOL (clone_tool); GimpPerspectiveClone *clone; clone = GIMP_PERSPECTIVE_CLONE (GIMP_PAINT_TOOL (clone_tool)->core); gimp_draw_tool_pause (GIMP_DRAW_TOOL (clone_tool)); if (options->clone_mode == GIMP_PERSPECTIVE_CLONE_MODE_PAINT) { /* GimpPaintTool's notify callback will set the right precision */ g_object_notify (G_OBJECT (options), "hard"); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_CLONE); gimp_perspective_clone_set_transform (clone, &clone_tool->transform); } else { gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_SUBPIXEL); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PERSPECTIVE); /* start drawing the bounding box and handles... */ if (tool->display && ! gimp_draw_tool_is_active (GIMP_DRAW_TOOL (clone_tool))) { gimp_draw_tool_start (GIMP_DRAW_TOOL (clone_tool), tool->display); } } gimp_draw_tool_resume (GIMP_DRAW_TOOL (clone_tool)); }
static void gimp_rotate_tool_init (GimpRotateTool *rotate_tool) { GimpTool *tool = GIMP_TOOL (rotate_tool); GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (rotate_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_ROTATE); tr_tool->progress_text = _("Rotating"); tr_tool->use_grid = TRUE; tr_tool->use_pivot = TRUE; }
static void gimp_align_tool_cursor_update (GimpTool *tool, GimpCoords *coords, GdkModifierType state, GimpDisplay *display) { GimpAlignTool *align_tool = GIMP_ALIGN_TOOL (tool); GimpToolCursorType tool_cursor = GIMP_TOOL_CURSOR_NONE; GimpCursorModifier modifier = GIMP_CURSOR_MODIFIER_NONE; if (state & GDK_SHIFT_MASK) { /* always add '+' when Shift is pressed, even if nothing is selected */ modifier = GIMP_CURSOR_MODIFIER_PLUS; } switch (align_tool->function) { case ALIGN_TOOL_IDLE: tool_cursor = GIMP_TOOL_CURSOR_RECT_SELECT; break; case ALIGN_TOOL_PICK_LAYER: case ALIGN_TOOL_ADD_LAYER: tool_cursor = GIMP_TOOL_CURSOR_HAND; break; case ALIGN_TOOL_PICK_GUIDE: case ALIGN_TOOL_ADD_GUIDE: tool_cursor = GIMP_TOOL_CURSOR_MOVE; break; case ALIGN_TOOL_PICK_PATH: case ALIGN_TOOL_ADD_PATH: tool_cursor = GIMP_TOOL_CURSOR_PATHS; break; case ALIGN_TOOL_DRAG_BOX: /* FIXME: it would be nice to add something here, but we cannot easily detect when the tool is in this mode (the draw tool is always active) so this state is not used for the moment. */ break; } gimp_tool_control_set_cursor (tool->control, GIMP_CURSOR_MOUSE); gimp_tool_control_set_tool_cursor (tool->control, tool_cursor); gimp_tool_control_set_cursor_modifier (tool->control, modifier); GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display); }
static void gimp_crop_tool_init (GimpCropTool *crop_tool) { GimpTool *tool = GIMP_TOOL (crop_tool); gimp_tool_control_set_wants_click (tool->control, TRUE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_PIXEL_BORDER); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_CROP); gimp_rectangle_tool_init (GIMP_RECTANGLE_TOOL (crop_tool)); crop_tool->current_image = NULL; }
static void gimp_bucket_fill_tool_init (GimpBucketFillTool *bucket_fill_tool) { GimpTool *tool = GIMP_TOOL (bucket_fill_tool); gimp_tool_control_set_scroll_lock (tool->control, TRUE); gimp_tool_control_set_wants_click (tool->control, TRUE); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_BUCKET_FILL); gimp_tool_control_set_action_value_1 (tool->control, "context/context-opacity-set"); gimp_tool_control_set_action_object_1 (tool->control, "context/context-pattern-select-set"); }
static void gimp_blend_tool_init (GimpBlendTool *blend_tool) { GimpTool *tool = GIMP_TOOL (blend_tool); gimp_tool_control_set_scroll_lock (tool->control, TRUE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_SUBPIXEL); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_BLEND); gimp_tool_control_set_action_opacity (tool->control, "context/context-opacity-set"); gimp_tool_control_set_action_object_1 (tool->control, "context/context-gradient-select-set"); }
static void gimp_scale_tool_init (GimpScaleTool *scale_tool) { GimpTool *tool = GIMP_TOOL (scale_tool); GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (scale_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_RESIZE); tr_tool->progress_text = _("Scaling"); tr_tool->use_grid = TRUE; tr_tool->use_corner_handles = TRUE; tr_tool->use_side_handles = TRUE; tr_tool->use_center_handle = TRUE; }
static void gimp_ink_tool_init (GimpInkTool *ink_tool) { GimpTool *tool = GIMP_TOOL (ink_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_INK); gimp_tool_control_set_action_value_2 (tool->control, "tools/tools-ink-blob-size-set"); gimp_tool_control_set_action_value_3 (tool->control, "tools/tools-ink-blob-aspect-set"); gimp_tool_control_set_action_value_4 (tool->control, "tools/tools-ink-blob-angle-set"); gimp_paint_tool_enable_color_picker (GIMP_PAINT_TOOL (ink_tool), GIMP_COLOR_PICK_MODE_FOREGROUND); }
static void gimp_warp_tool_init (GimpWarpTool *self) { GimpTool *tool = GIMP_TOOL (self); gimp_tool_control_set_preserve (tool->control, FALSE); gimp_tool_control_set_motion_mode (tool->control, GIMP_MOTION_MODE_EXACT); gimp_tool_control_set_dirty_mask (tool->control, GIMP_DIRTY_IMAGE | GIMP_DIRTY_IMAGE_STRUCTURE | GIMP_DIRTY_DRAWABLE | GIMP_DIRTY_SELECTION); gimp_tool_control_set_wants_click (tool->control, TRUE); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PERSPECTIVE); }
static void gimp_heal_tool_init (GimpHealTool *heal) { GimpTool *tool = GIMP_TOOL (heal); GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (tool); GimpSourceTool *source_tool = GIMP_SOURCE_TOOL (tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_HEAL); paint_tool->status = _("Click to heal"); paint_tool->status_ctrl = _("%s to set a new heal source"); source_tool->status_paint = _("Click to heal"); source_tool->status_set_source = _("Click to set a new heal source"); source_tool->status_set_source_ctrl = _("%s to set a new heal source"); }
static void gimp_seamless_clone_tool_init (GimpSeamlessCloneTool *self) { GimpTool *tool = GIMP_TOOL (self); gimp_tool_control_set_dirty_mask (tool->control, GIMP_DIRTY_IMAGE | GIMP_DIRTY_IMAGE_STRUCTURE | GIMP_DIRTY_DRAWABLE | GIMP_DIRTY_SELECTION); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_MOVE); self->tool_state = SC_STATE_INIT; }
static void gimp_perspective_tool_init (GimpPerspectiveTool *perspective_tool) { GimpTool *tool = GIMP_TOOL (perspective_tool); GimpTransformTool *tr_tool = GIMP_TRANSFORM_TOOL (perspective_tool); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_PERSPECTIVE); tr_tool->progress_text = _("Perspective transformation"); tr_tool->use_grid = TRUE; tr_tool->use_corner_handles = TRUE; tr_tool->use_center_handle = TRUE; tr_tool->does_perspective = TRUE; }
static void gimp_flip_tool_init (GimpFlipTool *flip_tool) { GimpTool *tool = GIMP_TOOL (flip_tool); gimp_tool_control_set_snap_to (tool->control, FALSE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_PIXEL_CENTER); gimp_tool_control_set_cursor (tool->control, GIMP_CURSOR_MOUSE); gimp_tool_control_set_toggle_cursor (tool->control, GIMP_CURSOR_MOUSE); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FLIP_HORIZONTAL); gimp_tool_control_set_toggle_tool_cursor (tool->control, GIMP_TOOL_CURSOR_FLIP_VERTICAL); flip_tool->guide = NULL; }
static void gimp_guide_tool_init (GimpGuideTool *guide_tool) { GimpTool *tool = GIMP_TOOL (guide_tool); gimp_tool_control_set_snap_to (tool->control, FALSE); gimp_tool_control_set_handle_empty_image (tool->control, TRUE); gimp_tool_control_set_tool_cursor (tool->control, GIMP_TOOL_CURSOR_MOVE); gimp_tool_control_set_scroll_lock (tool->control, TRUE); gimp_tool_control_set_precision (tool->control, GIMP_CURSOR_PRECISION_PIXEL_BORDER); guide_tool->guide = NULL; guide_tool->guide_position = GIMP_GUIDE_POSITION_UNDEFINED; guide_tool->guide_orientation = GIMP_ORIENTATION_UNKNOWN; }