static void gimp_dodge_burn_tool_modifier_key (GimpTool *tool, GdkModifierType key, gboolean press, GdkModifierType state, GimpDisplay *display) { GimpDodgeBurnOptions *options = GIMP_DODGE_BURN_TOOL_GET_OPTIONS (tool); if (key == GDK_CONTROL_MASK && ! (state & GDK_SHIFT_MASK)) /* leave stuff untouched in line draw mode */ { switch (options->type) { case GIMP_DODGE: g_object_set (options, "type", GIMP_BURN, NULL); break; case GIMP_BURN: g_object_set (options, "type", GIMP_DODGE, NULL); break; default: break; } } GIMP_TOOL_CLASS (parent_class)->modifier_key (tool, key, press, state, display); }
static void gimp_dodge_burn_tool_cursor_update (GimpTool *tool, GimpCoords *coords, GdkModifierType state, GimpDisplay *display) { GimpDodgeBurnOptions *options = GIMP_DODGE_BURN_TOOL_GET_OPTIONS (tool); gimp_tool_control_set_toggled (tool->control, (options->type == GIMP_BURN)); GIMP_TOOL_CLASS (parent_class)->cursor_update (tool, coords, state, display); }
static void gimp_dodge_burn_tool_oper_update (GimpTool *tool, GimpCoords *coords, GdkModifierType state, gboolean proximity, GimpDisplay *display) { GimpDodgeBurnOptions *options = GIMP_DODGE_BURN_TOOL_GET_OPTIONS (tool); gimp_dodge_burn_tool_status_update (tool, options->type); GIMP_TOOL_CLASS (parent_class)->oper_update (tool, coords, state, proximity, display); }
static void gimp_dodge_burn_tool_modifier_key (GimpTool *tool, GdkModifierType key, gboolean press, GdkModifierType state, GimpDisplay *display) { GimpDodgeBurnTool *dodgeburn = GIMP_DODGE_BURN_TOOL (tool); GimpDodgeBurnOptions *options = GIMP_DODGE_BURN_TOOL_GET_OPTIONS (tool); GdkModifierType toggle_mask; toggle_mask = gimp_get_toggle_behavior_mask (); if ((key == toggle_mask && ! (state & GDK_SHIFT_MASK) && /* leave stuff untouched in line draw mode */ press != dodgeburn->toggled) || (key == GDK_SHIFT_MASK && /* toggle back after keypresses CTRL(hold)-> */ ! press && /* SHIFT(hold)->CTRL(release)->SHIFT(release) */ dodgeburn->toggled && ! (state & toggle_mask))) { dodgeburn->toggled = press; switch (options->type) { case GIMP_DODGE: g_object_set (options, "type", GIMP_BURN, NULL); break; case GIMP_BURN: g_object_set (options, "type", GIMP_DODGE, NULL); break; default: break; } } GIMP_TOOL_CLASS (parent_class)->modifier_key (tool, key, press, state, display); }