]> Pileus Git - ~andy/gtk/commitdiff
Make color chooser always come up with palette
authorMatthias Clasen <mclasen@redhat.com>
Wed, 1 Feb 2012 06:53:08 +0000 (01:53 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 14 Feb 2012 21:36:52 +0000 (16:36 -0500)
gtk/gtkcolorchooser.c
gtk/gtkcolorchooser.h
gtk/gtkcolorchooserdialog.c
gtk/gtkcolorchooserwidget.c

index 42e0e974efba2db72f6e5f068636088c8c27cd00..9013d2ca9f5ae7db90e4ba279f67c86f78d9f514 100644 (file)
@@ -52,6 +52,7 @@ gtk_color_chooser_default_init (GtkColorChooserInterface *iface)
                             P_("Whether alpha should be shown"),
                             TRUE,
                             GTK_PARAM_READWRITE));
+
   /**
    * GtkColorChooser::color-activated:
    * @self: the object which received the signal
index 23db3380f11dca00c97f781e5166d9eb26dcfa34..3d38c0fb3707744b1497efa4fa2d7a0024d904cd 100644 (file)
@@ -55,15 +55,15 @@ struct _GtkColorChooserInterface
   gpointer padding[12];
 };
 
-GType    gtk_color_chooser_get_type       (void) G_GNUC_CONST;
+GType    gtk_color_chooser_get_type        (void) G_GNUC_CONST;
 
-void     gtk_color_chooser_get_color      (GtkColorChooser *chooser,
-                                           GdkRGBA         *color);
-void     gtk_color_chooser_set_color      (GtkColorChooser *chooser,
-                                           const GdkRGBA   *color);
-gboolean gtk_color_chooser_get_show_alpha (GtkColorChooser *chooser);
-void     gtk_color_chooser_set_show_alpha (GtkColorChooser *chooser,
-                                           gboolean         show_alpha);
+void     gtk_color_chooser_get_color       (GtkColorChooser *chooser,
+                                            GdkRGBA         *color);
+void     gtk_color_chooser_set_color       (GtkColorChooser *chooser,
+                                            const GdkRGBA   *color);
+gboolean gtk_color_chooser_get_show_alpha  (GtkColorChooser *chooser);
+void     gtk_color_chooser_set_show_alpha  (GtkColorChooser *chooser,
+                                            gboolean         show_alpha);
 
 G_END_DECLS
 
index 8d2c2296a36176a0cc2c63e64e6efa13772f5195..32e77cccf51dbba204219be367afa2d4569674c5 100644 (file)
@@ -22,6 +22,7 @@
 #include "gtkdialog.h"
 #include "gtkstock.h"
 #include "gtkbox.h"
+#include "gtkprivate.h"
 #include "gtkintl.h"
 
 #include "gtkcolorchooserprivate.h"
@@ -41,7 +42,8 @@ enum
 {
   PROP_ZERO,
   PROP_COLOR,
-  PROP_SHOW_ALPHA
+  PROP_SHOW_ALPHA,
+  PROP_SHOW_EDITOR
 };
 
 static void gtk_color_chooser_dialog_iface_init (GtkColorChooserInterface *iface);
@@ -133,6 +135,9 @@ gtk_color_chooser_dialog_response (GtkDialog *dialog,
       gtk_color_chooser_get_color (GTK_COLOR_CHOOSER (dialog), &color);
       gtk_color_chooser_set_color (GTK_COLOR_CHOOSER (dialog), &color);
     }
+
+  g_object_set (GTK_COLOR_CHOOSER_DIALOG (dialog)->priv->color_chooser,
+                "show-editor", FALSE, NULL);
 }
 
 static void
@@ -153,10 +158,17 @@ gtk_color_chooser_dialog_get_property (GObject    *object,
         gtk_color_chooser_get_color (cc, &color);
         g_value_set_boxed (value, &color);
       }
-    break;
+      break;
     case PROP_SHOW_ALPHA:
       g_value_set_boolean (value, gtk_color_chooser_get_show_alpha (GTK_COLOR_CHOOSER (cd->priv->color_chooser)));
       break;
+    case PROP_SHOW_EDITOR:
+      {
+        gboolean show_editor;
+        g_object_get (cd->priv->color_chooser, "show-editor", &show_editor, NULL);
+        g_value_set_boolean (value, show_editor);
+      }
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -176,10 +188,15 @@ gtk_color_chooser_dialog_set_property (GObject      *object,
     {
     case PROP_COLOR:
       gtk_color_chooser_set_color (cc, g_value_get_boxed (value));
-    break;
+      break;
     case PROP_SHOW_ALPHA:
       gtk_color_chooser_set_show_alpha (GTK_COLOR_CHOOSER (cd->priv->color_chooser), g_value_get_boolean (value));
-    break;
+      break;
+    case PROP_SHOW_EDITOR:
+      g_object_set (cd->priv->color_chooser,
+                    "show-editor", g_value_get_boolean (value),
+                    NULL);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -199,6 +216,10 @@ gtk_color_chooser_dialog_class_init (GtkColorChooserDialogClass *class)
 
   g_object_class_override_property (object_class, PROP_COLOR, "color");
   g_object_class_override_property (object_class, PROP_SHOW_ALPHA, "show-alpha");
+  g_object_class_install_property (object_class, PROP_SHOW_EDITOR,
+      g_param_spec_boolean ("show-editor", P_("Show editor"), P_("Show editor"),
+                            FALSE, GTK_PARAM_READWRITE));
+
 
   g_type_class_add_private (class, sizeof (GtkColorChooserDialogPrivate));
 }
index c54181b4efbdd2c6338bc371d260efe99668f84a..04ac168db035558237bf0a339cf71ee2cf941acc 100644 (file)
@@ -29,6 +29,7 @@
 #include "gtkhsv.h"
 #include "gtklabel.h"
 #include "gtkorientable.h"
+#include "gtkprivate.h"
 #include "gtkintl.h"
 
 struct _GtkColorChooserWidgetPrivate
@@ -51,7 +52,8 @@ enum
 {
   PROP_ZERO,
   PROP_COLOR,
-  PROP_SHOW_ALPHA
+  PROP_SHOW_ALPHA,
+  PROP_SHOW_EDITOR
 };
 
 static void gtk_color_chooser_widget_iface_init (GtkColorChooserInterface *iface);
@@ -348,6 +350,9 @@ gtk_color_chooser_widget_get_property (GObject    *object,
     case PROP_SHOW_ALPHA:
       g_value_set_boolean (value, cw->priv->show_alpha);
       break;
+    case PROP_SHOW_EDITOR:
+      g_value_set_boolean (value, gtk_widget_get_visible (cw->priv->editor));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -384,6 +389,14 @@ gtk_color_chooser_widget_set_show_alpha (GtkColorChooserWidget *cc,
   gtk_widget_queue_draw (GTK_WIDGET (cc));
 }
 
+static void
+gtk_color_chooser_widget_set_show_editor (GtkColorChooserWidget *cc,
+                                          gboolean               show_editor)
+{
+  gtk_widget_set_visible (cc->priv->editor, show_editor);
+  gtk_widget_set_visible (cc->priv->palette, !show_editor);
+}
+
 static void
 gtk_color_chooser_widget_set_property (GObject      *object,
                                        guint         prop_id,
@@ -402,6 +415,10 @@ gtk_color_chooser_widget_set_property (GObject      *object,
       gtk_color_chooser_widget_set_show_alpha (cc,
                                                g_value_get_boolean (value));
       break;
+    case PROP_SHOW_EDITOR:
+      gtk_color_chooser_widget_set_show_editor (cc,
+                                                g_value_get_boolean (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -430,6 +447,10 @@ gtk_color_chooser_widget_class_init (GtkColorChooserWidgetClass *class)
   g_object_class_override_property (object_class, PROP_COLOR, "color");
   g_object_class_override_property (object_class, PROP_SHOW_ALPHA, "show-alpha");
 
+  g_object_class_install_property (object_class, PROP_SHOW_EDITOR,
+      g_param_spec_boolean ("show-editor", P_("Show editor"), P_("Show editor"),
+                            FALSE, GTK_PARAM_READWRITE));
+
   g_type_class_add_private (object_class, sizeof (GtkColorChooserWidgetPrivate));
 }