summaryrefslogtreecommitdiff
path: root/gtk/gtklockbutton.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristanvb@openismus.com>2013-03-23 17:52:48 +0900
committerTristan Van Berkom <tristanvb@openismus.com>2013-04-08 21:19:28 +0900
commit3c39c388c9413df5e06733fa5fbd005260b0a06b (patch)
treed5e963eefa8d3a84d8a366acf5620711de3e5304 /gtk/gtklockbutton.c
parent67a2cdb303d640ef78a0369741453c33a975fd52 (diff)
downloadgtk+-3c39c388c9413df5e06733fa5fbd005260b0a06b.tar.gz
GtkLockButton: Define children with a GtkBuilder template
Diffstat (limited to 'gtk/gtklockbutton.c')
-rw-r--r--gtk/gtklockbutton.c31
1 files changed, 10 insertions, 21 deletions
diff --git a/gtk/gtklockbutton.c b/gtk/gtklockbutton.c
index 962b4a947d..b8a162139d 100644
--- a/gtk/gtklockbutton.c
+++ b/gtk/gtklockbutton.c
@@ -108,7 +108,6 @@ gtk_lock_button_finalize (GObject *object)
g_object_unref (priv->icon_lock);
g_object_unref (priv->icon_unlock);
- g_object_unref (priv->label_group);
if (priv->cancellable != NULL)
{
@@ -226,26 +225,7 @@ gtk_lock_button_init (GtkLockButton *button)
GTK_TYPE_LOCK_BUTTON,
GtkLockButtonPrivate);
- priv->label_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- priv->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
- gtk_widget_set_halign (priv->box, GTK_ALIGN_CENTER);
- gtk_widget_set_valign (priv->box, GTK_ALIGN_CENTER);
- gtk_widget_show (priv->box);
- gtk_container_add (GTK_CONTAINER (button), priv->box);
- priv->image = gtk_image_new ();
- gtk_box_pack_start (GTK_BOX (priv->box), priv->image, FALSE, FALSE, 0);
- gtk_widget_show (priv->image);
- priv->label_lock = gtk_label_new ("");
- gtk_misc_set_alignment (GTK_MISC (priv->label_lock), 0, 0.5);
- gtk_widget_set_no_show_all (priv->label_lock, TRUE);
- gtk_widget_show (priv->label_lock);
- gtk_box_pack_start (GTK_BOX (priv->box), priv->label_lock, FALSE, FALSE, 0);
- gtk_size_group_add_widget (priv->label_group, priv->label_lock);
- priv->label_unlock = gtk_label_new ("");
- gtk_misc_set_alignment (GTK_MISC (priv->label_unlock), 0, 0.5);
- gtk_widget_set_no_show_all (priv->label_unlock, TRUE);
- gtk_box_pack_start (GTK_BOX (priv->box), priv->label_unlock, FALSE, FALSE, 0);
- gtk_size_group_add_widget (priv->label_group, priv->label_unlock);
+ gtk_widget_init_template (GTK_WIDGET (button));
names[0] = "changes-allow-symbolic";
names[1] = "changes-allow";
@@ -328,6 +308,15 @@ gtk_lock_button_class_init (GtkLockButtonClass *klass)
G_PARAM_CONSTRUCT |
G_PARAM_STATIC_STRINGS));
+ /* Bind class to template
+ */
+ gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/gtklockbutton.ui");
+ gtk_widget_class_bind_child (widget_class, GtkLockButtonPrivate, box);
+ gtk_widget_class_bind_child (widget_class, GtkLockButtonPrivate, image);
+ gtk_widget_class_bind_child (widget_class, GtkLockButtonPrivate, label_lock);
+ gtk_widget_class_bind_child (widget_class, GtkLockButtonPrivate, label_unlock);
+ gtk_widget_class_bind_child (widget_class, GtkLockButtonPrivate, label_group);
+
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LOCK_BUTTON_ACCESSIBLE);
}