diff options
author | Javier Jardón <jjardon@gnome.org> | 2010-11-14 03:38:04 +0100 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2014-01-24 22:46:30 -0500 |
commit | a2637160e39400327999e481ae54b0ef4f25bcab (patch) | |
tree | fb79b840c3cc6f4b03d3ececc8029b2b8563c68e /gtk/gtkaccelgroup.c | |
parent | dcf41924fe5e2116caaab90c6867a991d02e6ed8 (diff) | |
download | gtk+-a2637160e39400327999e481ae54b0ef4f25bcab.tar.gz |
gtkaccelgroup: Use g_object_class_install_properties() and g_object_notify_by_pspec()
Diffstat (limited to 'gtk/gtkaccelgroup.c')
-rw-r--r-- | gtk/gtkaccelgroup.c | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/gtk/gtkaccelgroup.c b/gtk/gtkaccelgroup.c index f360e683f8..0d11d30136 100644 --- a/gtk/gtkaccelgroup.c +++ b/gtk/gtkaccelgroup.c @@ -80,15 +80,18 @@ static guint default_accel_mod_mask = (GDK_SHIFT_MASK | GDK_HYPER_MASK | GDK_META_MASK); - enum { PROP_0, PROP_IS_LOCKED, PROP_MODIFIER_MASK, + N_PROPERTIES }; +static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, }; + G_DEFINE_TYPE_WITH_PRIVATE (GtkAccelGroup, gtk_accel_group, G_TYPE_OBJECT) + /* --- functions --- */ static void gtk_accel_group_class_init (GtkAccelGroupClass *class) @@ -102,22 +105,24 @@ gtk_accel_group_class_init (GtkAccelGroupClass *class) class->accel_changed = NULL; - g_object_class_install_property (object_class, - PROP_IS_LOCKED, - g_param_spec_boolean ("is-locked", - "Is locked", - "Is the accel group locked", - FALSE, - G_PARAM_READABLE)); - - g_object_class_install_property (object_class, - PROP_MODIFIER_MASK, - g_param_spec_flags ("modifier-mask", - "Modifier Mask", - "Modifier Mask", - GDK_TYPE_MODIFIER_TYPE, - default_accel_mod_mask, - G_PARAM_READABLE)); + obj_properties [PROP_IS_LOCKED] = + g_param_spec_boolean ("is-locked", + "Is locked", + "Is the accel group locked", + FALSE, + G_PARAM_READABLE); + + obj_properties [PROP_MODIFIER_MASK] = + g_param_spec_flags ("modifier-mask", + "Modifier Mask", + "Modifier Mask", + GDK_TYPE_MODIFIER_TYPE, + default_accel_mod_mask, + G_PARAM_READABLE); + + g_object_class_install_properties (object_class, + N_PROPERTIES, + obj_properties); /** * GtkAccelGroup::accel-activate: @@ -429,7 +434,7 @@ gtk_accel_group_lock (GtkAccelGroup *accel_group) if (accel_group->priv->lock_count == 1) { /* State change from unlocked to locked */ - g_object_notify (G_OBJECT (accel_group), "is-locked"); + g_object_notify_by_pspec (G_OBJECT (accel_group), obj_properties[PROP_IS_LOCKED]); } } @@ -449,7 +454,7 @@ gtk_accel_group_unlock (GtkAccelGroup *accel_group) if (accel_group->priv->lock_count < 1) { /* State change from locked to unlocked */ - g_object_notify (G_OBJECT (accel_group), "is-locked"); + g_object_notify_by_pspec (G_OBJECT (accel_group), obj_properties[PROP_IS_LOCKED]); } } |