]> Pileus Git - ~andy/gtk/commitdiff
Seal GtkAccelGroup - fixed some issues with the initial attempt thanks to comments...
authorTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 11:02:02 +0000 (11:02 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 20 Jun 2008 11:02:02 +0000 (11:02 +0000)
svn path=/trunk/; revision=20535

gtk/gtkaccelgroup.c
gtk/gtkaccelgroup.h

index e7402f3144fc3c5c88175b442d26b0b3fafe1315..b277a4cc38aabfe6141850017bfa8cef6d2c90c4 100644 (file)
@@ -61,12 +61,9 @@ static guint          default_accel_mod_mask = (GDK_SHIFT_MASK |
 
 
 enum {
-       PROP_0,
-       PROP_LOCK_COUNT,
-       PROP_MODIFIER_MASK,
-        PROP_ACCELERATABLES,
-        PROP_N_ACCELS,
-        PROP_PRIV_ACCELS
+  PROP_0,
+  PROP_IS_LOCKED,
+  PROP_MODIFIER_MASK,
 };
 
 G_DEFINE_TYPE (GtkAccelGroup, gtk_accel_group, G_TYPE_OBJECT)
@@ -85,14 +82,12 @@ gtk_accel_group_class_init (GtkAccelGroupClass *class)
   class->accel_changed = NULL;
 
   g_object_class_install_property (object_class,
-                                   PROP_LOCK_COUNT,
-                                   g_param_spec_uint ("lock-count",
-                                                      "Lock Count",
-                                                      "Total locks on this accel group",
-                                                      0,
-                                                      G_MAXUINT,
-                                                      0,
-                                                      G_PARAM_READABLE));
+                                   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_enum ("modifier-mask",
@@ -101,28 +96,6 @@ gtk_accel_group_class_init (GtkAccelGroupClass *class)
                                                       gdk_modifier_type_get_type (),
                                                       0,
                                                       G_PARAM_READABLE));
-  g_object_class_install_property (object_class,
-                                   PROP_ACCELERATABLES,
-                                   g_param_spec_pointer ("acceleratables",
-                                                         "Acceleratables",
-                                                         "Acceleratables",
-                                                         G_PARAM_READABLE));
-  g_object_class_install_property (object_class,
-                                   PROP_N_ACCELS,
-                                   g_param_spec_uint ("n-accels",
-                                                      "N Accels",
-                                                      "Number of acceleraters",
-                                                      0,
-                                                      G_MAXUINT,
-                                                      0,
-                                                      G_PARAM_READABLE));
-  g_object_class_install_property (object_class,
-                                   PROP_PRIV_ACCELS,
-                                   g_param_spec_pointer ("priv-accels",
-                                                         "Priv Accels",
-                                                         "Private Acceleraters",
-                                                         G_PARAM_READABLE));
-  
 
   /**
    * GtkAccelGroup::accel-activate:
@@ -207,21 +180,12 @@ gtk_accel_group_get_property (GObject    *object,
   GtkAccelGroup *accel_group = GTK_ACCEL_GROUP (object);
 
   switch (param_id) {
-  case PROP_LOCK_COUNT:
-    g_value_set_uint (value, accel_group->lock_count);
+  case PROP_IS_LOCKED:
+    g_value_set_boolean (value, accel_group->lock_count > 0);
     break;
   case PROP_MODIFIER_MASK:
     g_value_set_enum (value, accel_group->modifier_mask);
     break;
-  case PROP_ACCELERATABLES:
-    g_value_set_pointer (value, accel_group->acceleratables);
-    break;
-  case PROP_N_ACCELS:
-    g_value_set_uint (value, accel_group->n_accels);
-    break;
-  case PROP_PRIV_ACCELS:
-    g_value_set_pointer (value, accel_group->priv_accels);
-    break;
   default:
     G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
     break;
@@ -250,14 +214,30 @@ gtk_accel_group_new (void)
   return g_object_new (GTK_TYPE_ACCEL_GROUP, NULL);
 }
 
-guint          
-gtk_accel_group_get_lock_count (GtkAccelGroup *accel_group)
+/**
+ * gtk_accel_group_get_is_locked:
+ * @accel_group: a #GtkAccelGroup
+ * @returns: %TRUE if there are 1 or more locks on the @accel_group,
+ * %FALSE otherwise. 
+ *
+ * Locks are added and removed using gtk_accel_group_lock() and
+ * gtk_accel_group_unlock(). 
+ *
+ */
+gboolean          
+gtk_accel_group_get_is_locked (GtkAccelGroup *accel_group)
 {
-  g_return_val_if_fail (GTK_IS_ACCEL_GROUP (accel_group), 0);
+  g_return_val_if_fail (GTK_IS_ACCEL_GROUP (accel_group), FALSE);
 
-  return accel_group->lock_count;
+  return accel_group->lock_count > 0;
 }
 
+/**
+ * gtk_accel_group_get_modifier_mask:
+ * @accel_group: a #GtkAccelGroup
+ * @returns: #GdkModifierType representing the mask for this
+ * @accel_group. For example, #GDK_CONTROL_MASK, #GDK_SHIFT_MASK, etc. 
+ */
 GdkModifierType
 gtk_accel_group_get_modifier_mask (GtkAccelGroup *accel_group)
 {
@@ -266,30 +246,6 @@ gtk_accel_group_get_modifier_mask (GtkAccelGroup *accel_group)
   return accel_group->modifier_mask;
 }
 
-GSList *
-gtk_accel_group_get_acceleratables (GtkAccelGroup *accel_group)
-{
-  g_return_val_if_fail (GTK_IS_ACCEL_GROUP (accel_group), NULL);
-
-  return accel_group->acceleratables;
-}
-
-guint
-gtk_accel_group_get_n_accels (GtkAccelGroup *accel_group)
-{
-  g_return_val_if_fail (GTK_IS_ACCEL_GROUP (accel_group), 0);
-
-  return accel_group->n_accels;
-}
-
-GtkAccelGroupEntry *
-gtk_accel_group_get_priv_accels (GtkAccelGroup *accel_group)
-{
-  g_return_val_if_fail (GTK_IS_ACCEL_GROUP (accel_group), NULL);
-
-  return accel_group->priv_accels;
-}
-
 static void
 accel_group_weak_ref_detach (GSList  *free_list,
                             GObject *stale_object)
index 72c74e8844df467c258fbc7664b76c64e5f7bc8d..48815d0374c15fe0ff05b2bfbe45e88a07dbb959 100644 (file)
@@ -107,14 +107,9 @@ struct _GtkAccelKey
 /* -- Accelerator Groups --- */
 GType          gtk_accel_group_get_type           (void) G_GNUC_CONST;
 GtkAccelGroup* gtk_accel_group_new               (void);
-guint          gtk_accel_group_get_lock_count     (GtkAccelGroup  *accel_group);
+gboolean       gtk_accel_group_get_is_locked      (GtkAccelGroup  *accel_group);
 GdkModifierType 
                gtk_accel_group_get_modifier_mask  (GtkAccelGroup  *accel_group);
-GSList*        gtk_accel_group_get_acceleratables (GtkAccelGroup  *accel_group);
-guint          gtk_accel_group_get_n_accels       (GtkAccelGroup  *accel_group);
-GtkAccelGroupEntry*
-               gtk_accel_group_get_priv_accels    (GtkAccelGroup  *accel_group);
-                                                   
 void          gtk_accel_group_lock               (GtkAccelGroup  *accel_group);
 void          gtk_accel_group_unlock             (GtkAccelGroup  *accel_group);
 void          gtk_accel_group_connect            (GtkAccelGroup  *accel_group,