static void gimp_color_picker_tool_picked (GimpColorTool *color_tool, GimpColorPickState pick_state, gdouble x, gdouble y, const Babl *sample_format, gpointer pixel, const GimpRGB *color) { GimpColorPickerTool *picker_tool = GIMP_COLOR_PICKER_TOOL (color_tool); GimpColorPickerOptions *options; options = GIMP_COLOR_PICKER_TOOL_GET_OPTIONS (color_tool); if (options->use_info_window && ! picker_tool->gui) gimp_color_picker_tool_info_create (picker_tool); if (picker_tool->gui) gimp_color_picker_tool_info_update (picker_tool, GIMP_COLOR_OPTIONS (options)->sample_average, sample_format, pixel, color); GIMP_COLOR_TOOL_CLASS (parent_class)->picked (color_tool, pick_state, x, y, sample_format, pixel, color); }
static void gimp_color_picker_options_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GimpColorPickerOptions *options = GIMP_COLOR_PICKER_OPTIONS (object); switch (property_id) { case PROP_SAMPLE_AVERAGE: GIMP_COLOR_OPTIONS (options)->sample_average = g_value_get_boolean (value); break; case PROP_PICK_MODE: options->pick_mode = g_value_get_enum (value); break; case PROP_USE_INFO_WINDOW: options->use_info_window = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }
static void gimp_paint_tool_modifier_key (GimpTool *tool, GdkModifierType key, gboolean press, GdkModifierType state, GimpDisplay *display) { GimpPaintTool *paint_tool = GIMP_PAINT_TOOL (tool); GimpDrawTool *draw_tool = GIMP_DRAW_TOOL (tool); if (paint_tool->pick_colors && ! paint_tool->draw_line) { if ((state & gimp_get_all_modifiers_mask ()) == gimp_get_constrain_behavior_mask ()) { if (! gimp_color_tool_is_enabled (GIMP_COLOR_TOOL (tool))) { GimpToolInfo *info = gimp_get_tool_info (display->gimp, "gimp-color-picker-tool"); if (GIMP_IS_TOOL_INFO (info)) { if (gimp_draw_tool_is_active (draw_tool)) gimp_draw_tool_stop (draw_tool); gimp_color_tool_enable (GIMP_COLOR_TOOL (tool), GIMP_COLOR_OPTIONS (info->tool_options)); switch (GIMP_COLOR_TOOL (tool)->pick_mode) { case GIMP_COLOR_PICK_MODE_FOREGROUND: gimp_tool_push_status (tool, display, _("Click in any image to pick the " "foreground color")); break; case GIMP_COLOR_PICK_MODE_BACKGROUND: gimp_tool_push_status (tool, display, _("Click in any image to pick the " "background color")); break; default: break; } } } } else { if (gimp_color_tool_is_enabled (GIMP_COLOR_TOOL (tool))) { gimp_tool_pop_status (tool, display); gimp_color_tool_disable (GIMP_COLOR_TOOL (tool)); } } } }
static void gimp_color_options_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { GimpColorOptions *options = GIMP_COLOR_OPTIONS (object); switch (property_id) { case PROP_SAMPLE_MERGED: options->sample_merged = g_value_get_boolean (value); break; case PROP_SAMPLE_AVERAGE: options->sample_average = g_value_get_boolean (value); break; case PROP_AVERAGE_RADIUS: options->average_radius = g_value_get_double (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); break; } }