[gtk+] GtkCellRendererToggle: Use G_PARAM_EXPLICIT_NOTIFY



commit 2d88a3ae300d6e1c8faa7391bbab9746f2131092
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jun 8 11:28:28 2014 -0400

    GtkCellRendererToggle: Use G_PARAM_EXPLICIT_NOTIFY

 gtk/gtkcellrenderertoggle.c |   52 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 43 insertions(+), 9 deletions(-)
---
diff --git a/gtk/gtkcellrenderertoggle.c b/gtk/gtkcellrenderertoggle.c
index 57f263c..bee07f7 100644
--- a/gtk/gtkcellrenderertoggle.c
+++ b/gtk/gtkcellrenderertoggle.c
@@ -137,7 +137,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                         P_("Toggle state"),
                                                         P_("The toggle state of the button"),
                                                         FALSE,
-                                                        GTK_PARAM_READWRITE));
+                                                        GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
   g_object_class_install_property (object_class,
                                   PROP_INCONSISTENT,
@@ -145,7 +145,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                         P_("Inconsistent state"),
                                                         P_("The inconsistent state of the button"),
                                                         FALSE,
-                                                        GTK_PARAM_READWRITE));
+                                                        GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
   
   g_object_class_install_property (object_class,
                                   PROP_ACTIVATABLE,
@@ -153,7 +153,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                         P_("Activatable"),
                                                         P_("The toggle button can be activated"),
                                                         TRUE,
-                                                        GTK_PARAM_READWRITE));
+                                                        GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
   g_object_class_install_property (object_class,
                                   PROP_RADIO,
@@ -161,7 +161,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                         P_("Radio state"),
                                                         P_("Draw the toggle button as a radio button"),
                                                         FALSE,
-                                                        GTK_PARAM_READWRITE));
+                                                        GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
   g_object_class_install_property (object_class,
                                   PROP_INDICATOR_SIZE,
@@ -171,7 +171,7 @@ gtk_cell_renderer_toggle_class_init (GtkCellRendererToggleClass *class)
                                                     0,
                                                     G_MAXINT,
                                                     TOGGLE_WIDTH,
-                                                    GTK_PARAM_READWRITE));
+                                                    GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
   
   /**
@@ -244,16 +244,50 @@ gtk_cell_renderer_toggle_set_property (GObject      *object,
   switch (param_id)
     {
     case PROP_ACTIVE:
-      priv->active = g_value_get_boolean (value);
+      if (priv->active != g_value_get_boolean (value))
+        {
+          priv->active = g_value_get_boolean (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
       break;
     case PROP_INCONSISTENT:
-      priv->inconsistent = g_value_get_boolean (value);
+      if (priv->inconsistent != g_value_get_boolean (value))
+        {
+          priv->inconsistent = g_value_get_boolean (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
       break;
     case PROP_ACTIVATABLE:
-      priv->activatable = g_value_get_boolean (value);
+      if (priv->activatable != g_value_get_boolean (value))
+        {
+          priv->activatable = g_value_get_boolean (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
       break;
     case PROP_RADIO:
-      priv->radio = g_value_get_boolean (value);
+      if (priv->radio != g_value_get_boolean (value))
+        {
+          priv->radio = g_value_get_boolean (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
+      break;
+    case PROP_INDICATOR_SIZE:
+      if (priv->indicator_size != g_value_get_int (value))
+        {
+          priv->indicator_size = g_value_get_int (value);
+          g_object_notify_by_pspec (object, pspec);
+        }
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+      break;
+    }
+}
+
+/**
+ * gtk_cell_renderer_toggle_new:
+ *
+ * Creates a new #GtkCellRendererToggle. Adjust rendering
       break;
     case PROP_INDICATOR_SIZE:
       priv->indicator_size = g_value_get_int (value);


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