[gimp] app: remember the modes of the color picker info window's GimpColorFrames



commit 0611ca1d50d38a44151ae4302caf41e4a9330953
Author: Michael Natterer <mitch gimp org>
Date:   Sun Nov 12 20:33:42 2017 +0100

    app: remember the modes of the color picker info window's GimpColorFrames
    
    Keep them in GimpColorPickerOptions.

 app/tools/gimpcolorpickeroptions.c |   30 +++++++++++++++++++++++++++++-
 app/tools/gimpcolorpickeroptions.h |    2 ++
 app/tools/gimpcolorpickertool.c    |   13 +++++++++----
 3 files changed, 40 insertions(+), 5 deletions(-)
---
diff --git a/app/tools/gimpcolorpickeroptions.c b/app/tools/gimpcolorpickeroptions.c
index fb85dd2..ada0890 100644
--- a/app/tools/gimpcolorpickeroptions.c
+++ b/app/tools/gimpcolorpickeroptions.c
@@ -37,7 +37,9 @@ enum
   PROP_0,
   PROP_SAMPLE_AVERAGE, /* overrides a GimpColorOptions property */
   PROP_PICK_MODE,
-  PROP_USE_INFO_WINDOW
+  PROP_USE_INFO_WINDOW,
+  PROP_FRAME1_MODE,
+  PROP_FRAME2_MODE,
 };
 
 
@@ -87,6 +89,20 @@ gimp_color_picker_options_class_init (GimpColorPickerOptionsClass *klass)
                               "color values in various color models"),
                             FALSE,
                             GIMP_PARAM_STATIC_STRINGS);
+
+  GIMP_CONFIG_PROP_ENUM (object_class, PROP_FRAME1_MODE,
+                         "frame1-mode",
+                         "Frame 1 Mode", NULL,
+                         GIMP_TYPE_COLOR_FRAME_MODE,
+                         GIMP_COLOR_FRAME_MODE_PIXEL,
+                         GIMP_PARAM_STATIC_STRINGS);
+
+  GIMP_CONFIG_PROP_ENUM (object_class, PROP_FRAME2_MODE,
+                         "frame2-mode",
+                         "Frame 2 Mode", NULL,
+                         GIMP_TYPE_COLOR_FRAME_MODE,
+                         GIMP_COLOR_FRAME_MODE_RGB_PERCENT,
+                         GIMP_PARAM_STATIC_STRINGS);
 }
 
 static void
@@ -113,6 +129,12 @@ gimp_color_picker_options_set_property (GObject      *object,
     case PROP_USE_INFO_WINDOW:
       options->use_info_window = g_value_get_boolean (value);
       break;
+    case PROP_FRAME1_MODE:
+      options->frame1_mode = g_value_get_enum (value);
+      break;
+    case PROP_FRAME2_MODE:
+      options->frame2_mode = g_value_get_enum (value);
+      break;
 
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -140,6 +162,12 @@ gimp_color_picker_options_get_property (GObject    *object,
     case PROP_USE_INFO_WINDOW:
       g_value_set_boolean (value, options->use_info_window);
       break;
+    case PROP_FRAME1_MODE:
+      g_value_set_enum (value, options->frame1_mode);
+      break;
+    case PROP_FRAME2_MODE:
+      g_value_set_enum (value, options->frame2_mode);
+      break;
 
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
diff --git a/app/tools/gimpcolorpickeroptions.h b/app/tools/gimpcolorpickeroptions.h
index d633d2e..58b912b 100644
--- a/app/tools/gimpcolorpickeroptions.h
+++ b/app/tools/gimpcolorpickeroptions.h
@@ -39,6 +39,8 @@ struct _GimpColorPickerOptions
 
   GimpColorPickMode  pick_mode;
   gboolean           use_info_window;
+  GimpColorFrameMode frame1_mode;
+  GimpColorFrameMode frame2_mode;
 };
 
 
diff --git a/app/tools/gimpcolorpickertool.c b/app/tools/gimpcolorpickertool.c
index ee15b66..3cabdf6 100644
--- a/app/tools/gimpcolorpickertool.c
+++ b/app/tools/gimpcolorpickertool.c
@@ -329,6 +329,7 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool,
                                     GimpDisplay         *display)
 {
   GimpTool         *tool     = GIMP_TOOL (picker_tool);
+  GimpToolOptions  *options  = GIMP_TOOL_GET_OPTIONS (tool);
   GimpContext      *context  = GIMP_CONTEXT (tool->tool_info->tool_options);
   GimpDisplayShell *shell    = gimp_display_get_shell (display);
   GimpImage        *image    = gimp_display_get_image (display);
@@ -365,10 +366,12 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool,
   picker_tool->color_frame1 = gimp_color_frame_new ();
   gimp_color_frame_set_color_config (GIMP_COLOR_FRAME (picker_tool->color_frame1),
                                      context->gimp->config->color_management);
-  gimp_color_frame_set_mode (GIMP_COLOR_FRAME (picker_tool->color_frame1),
-                             GIMP_COLOR_FRAME_MODE_PIXEL);
   gimp_color_frame_set_has_coords (GIMP_COLOR_FRAME (picker_tool->color_frame1),
                                    TRUE);
+  g_object_bind_property (options,                   "frame1-mode",
+                          picker_tool->color_frame1, "mode",
+                          G_BINDING_BIDIRECTIONAL |
+                          G_BINDING_SYNC_CREATE);
   gtk_box_pack_start (GTK_BOX (hbox), picker_tool->color_frame1,
                       FALSE, FALSE, 0);
   gtk_widget_show (picker_tool->color_frame1);
@@ -376,8 +379,10 @@ gimp_color_picker_tool_info_create (GimpColorPickerTool *picker_tool,
   picker_tool->color_frame2 = gimp_color_frame_new ();
   gimp_color_frame_set_color_config (GIMP_COLOR_FRAME (picker_tool->color_frame2),
                                      context->gimp->config->color_management);
-  gimp_color_frame_set_mode (GIMP_COLOR_FRAME (picker_tool->color_frame2),
-                             GIMP_COLOR_FRAME_MODE_RGB_PERCENT);
+  g_object_bind_property (options,                   "frame2-mode",
+                          picker_tool->color_frame2, "mode",
+                          G_BINDING_BIDIRECTIONAL |
+                          G_BINDING_SYNC_CREATE);
   gtk_box_pack_start (GTK_BOX (hbox), picker_tool->color_frame2,
                       FALSE, FALSE, 0);
   gtk_widget_show (picker_tool->color_frame2);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]