[gtk+] box: Convert to gtk_container_child_notify_by_pspec
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] box: Convert to gtk_container_child_notify_by_pspec
- Date: Tue, 8 Sep 2015 12:08:11 +0000 (UTC)
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]