[gtk+] box: Convert to gtk_container_child_notify_by_pspec



commit 1e4369e8ef0dc7eab9d27990c69de7bbf69ccf4f
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Sep 7 18:27:02 2015 -0400

    box: Convert to gtk_container_child_notify_by_pspec
    
    For the same reasons as g_object_child_notify_by_pspec.

 gtk/gtkbox.c |   99 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 52 insertions(+), 47 deletions(-)
---
diff --git a/gtk/gtkbox.c b/gtk/gtkbox.c
index 947af01..f85459c 100644
--- a/gtk/gtkbox.c
+++ b/gtk/gtkbox.c
@@ -106,7 +106,8 @@ enum {
   CHILD_PROP_FILL,
   CHILD_PROP_PADDING,
   CHILD_PROP_PACK_TYPE,
-  CHILD_PROP_POSITION
+  CHILD_PROP_POSITION,
+  LAST_CHILD_PROP
 };
 
 typedef struct _GtkBoxChild        GtkBoxChild;
@@ -126,6 +127,7 @@ struct _GtkBoxPrivate
 };
 
 static GParamSpec *props[LAST_PROP] = { NULL, };
+static GParamSpec *child_props[LAST_CHILD_PROP] = { NULL, };
 
 /*
  * GtkBoxChild:
@@ -292,13 +294,12 @@ gtk_box_class_init (GtkBoxClass *class)
    * In contrast to #GtkWidget:hexpand, the expand child property does
    * not cause the box to expand itself.
    */
-  gtk_container_class_install_child_property (container_class,
-                                             CHILD_PROP_EXPAND,
-                                             g_param_spec_boolean ("expand",
-                                                                   P_("Expand"),
-                                                                   P_("Whether the child should receive 
extra space when the parent grows"),
-                                                                   FALSE,
-                                                                   GTK_PARAM_READWRITE));
+  child_props[CHILD_PROP_EXPAND] =
+      g_param_spec_boolean ("expand",
+                            P_("Expand"),
+                            P_("Whether the child should receive extra space when the parent grows"),
+                            FALSE,
+                            GTK_PARAM_READWRITE);
 
   /**
    * GtkBox:fill:
@@ -309,35 +310,37 @@ gtk_box_class_init (GtkBoxClass *class)
    * and #GtkWidget:vexpand properties are the preferred way to influence
    * child size allocation in containers.
    */
-  gtk_container_class_install_child_property (container_class,
-                                             CHILD_PROP_FILL,
-                                             g_param_spec_boolean ("fill",
-                                                                   P_("Fill"),
-                                                                   P_("Whether extra space given to the 
child should be allocated to the child or used as padding"),
-                                                                   TRUE,
-                                                                   GTK_PARAM_READWRITE));
-
-  gtk_container_class_install_child_property (container_class,
-                                             CHILD_PROP_PADDING,
-                                             g_param_spec_uint ("padding",
-                                                                P_("Padding"),
-                                                                P_("Extra space to put between the child and 
its neighbors, in pixels"),
-                                                                0, G_MAXINT, 0,
-                                                                GTK_PARAM_READWRITE));
-  gtk_container_class_install_child_property (container_class,
-                                             CHILD_PROP_PACK_TYPE,
-                                             g_param_spec_enum ("pack-type",
-                                                                P_("Pack type"),
-                                                                P_("A GtkPackType indicating whether the 
child is packed with reference to the start or end of the parent"),
-                                                                GTK_TYPE_PACK_TYPE, GTK_PACK_START,
-                                                                GTK_PARAM_READWRITE));
-  gtk_container_class_install_child_property (container_class,
-                                             CHILD_PROP_POSITION,
-                                             g_param_spec_int ("position",
-                                                               P_("Position"),
-                                                               P_("The index of the child in the parent"),
-                                                               -1, G_MAXINT, 0,
-                                                               GTK_PARAM_READWRITE));
+  child_props[CHILD_PROP_FILL] =
+      g_param_spec_boolean ("fill",
+                            P_("Fill"),
+                            P_("Whether extra space given to the child should be allocated to the child or 
used as padding"),
+                            TRUE,
+                            GTK_PARAM_READWRITE);
+
+  child_props[CHILD_PROP_PADDING] =
+      g_param_spec_uint ("padding",
+                         P_("Padding"),
+                         P_("Extra space to put between the child and its neighbors, in pixels"),
+                         0, G_MAXINT,
+                         0,
+                         GTK_PARAM_READWRITE);
+
+  child_props[CHILD_PROP_PACK_TYPE] =
+      g_param_spec_enum ("pack-type",
+                         P_("Pack type"),
+                         P_("A GtkPackType indicating whether the child is packed with reference to the 
start or end of the parent"),
+                         GTK_TYPE_PACK_TYPE, GTK_PACK_START,
+                         GTK_PARAM_READWRITE);
+
+  child_props[CHILD_PROP_POSITION] =
+      g_param_spec_int ("position",
+                        P_("Position"),
+                        P_("The index of the child in the parent"),
+                        -1, G_MAXINT,
+                        0,
+                        GTK_PARAM_READWRITE);
+
+  gtk_container_class_install_child_properties (container_class, LAST_CHILD_PROP, child_props);
 
   gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILLER);
 }
@@ -1495,6 +1498,7 @@ gtk_box_pack (GtkBox      *box,
               guint        padding,
               GtkPackType  pack_type)
 {
+  GtkContainer *container = GTK_CONTAINER (box);
   GtkBoxPrivate *private = box->priv;
   GtkBoxChild *child_info;
 
@@ -1519,11 +1523,12 @@ gtk_box_pack (GtkBox      *box,
   g_signal_connect (child, "notify::visible",
                     G_CALLBACK (box_child_visibility_notify_cb), box);
 
-  gtk_widget_child_notify (child, "expand");
-  gtk_widget_child_notify (child, "fill");
-  gtk_widget_child_notify (child, "padding");
-  gtk_widget_child_notify (child, "pack-type");
-  gtk_widget_child_notify (child, "position");
+  gtk_container_child_notify_by_pspec (container, child, child_props[CHILD_PROP_EXPAND]);
+  gtk_container_child_notify_by_pspec (container, child, child_props[CHILD_PROP_FILL]);
+  gtk_container_child_notify_by_pspec (container, child, child_props[CHILD_PROP_PADDING]);
+  gtk_container_child_notify_by_pspec (container, child, child_props[CHILD_PROP_PACK_TYPE]);
+  gtk_container_child_notify_by_pspec (container, child, child_props[CHILD_PROP_POSITION]);
+
   gtk_widget_thaw_child_notify (child);
 
   return child_info;
@@ -2346,7 +2351,7 @@ gtk_box_reorder_child (GtkBox    *box,
 
   priv->children = g_list_insert_before (priv->children, new_link, child_info);
 
-  gtk_widget_child_notify (child, "position");
+  gtk_container_child_notify_by_pspec (GTK_CONTAINER (box), child, child_props[CHILD_PROP_POSITION]);
   if (_gtk_widget_get_visible (child) &&
       _gtk_widget_get_visible (GTK_WIDGET (box)))
     {
@@ -2462,19 +2467,19 @@ gtk_box_set_child_packing (GtkBox      *box,
         {
           child_info->expand = expand != FALSE;
           gtk_widget_queue_compute_expand (GTK_WIDGET (box));
-          gtk_widget_child_notify (child, "expand");
+          gtk_container_child_notify_by_pspec (GTK_CONTAINER (box), child, child_props[CHILD_PROP_EXPAND]);
         }
 
       child_info->fill = fill != FALSE;
-      gtk_widget_child_notify (child, "fill");
+      gtk_container_child_notify_by_pspec (GTK_CONTAINER (box), child, child_props[CHILD_PROP_FILL]);
       child_info->padding = padding;
-      gtk_widget_child_notify (child, "padding");
+      gtk_container_child_notify_by_pspec (GTK_CONTAINER (box), child, child_props[CHILD_PROP_PADDING]);
       if (pack_type != GTK_PACK_END)
         pack_type = GTK_PACK_START;
       if (child_info->pack != pack_type)
         {
          child_info->pack = pack_type;
-          gtk_widget_child_notify (child, "pack-type");
+          gtk_container_child_notify_by_pspec (GTK_CONTAINER (box), child, 
child_props[CHILD_PROP_PACK_TYPE]);
           gtk_box_invalidate_order (box);
         }
 


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