Add 'change_state' callback to GActionEntry
authorRyan Lortie <desrt@desrt.ca>
Wed, 29 Jun 2011 15:04:09 +0000 (16:04 +0100)
committerJavier Jardon <jjardon@gnome.org>
Wed, 29 Jun 2011 15:20:52 +0000 (16:20 +0100)
gio/gsimpleactiongroup.c
gio/gsimpleactiongroup.h

index b35982d..46619d3 100644 (file)
@@ -393,6 +393,8 @@ g_simple_action_group_remove (GSimpleActionGroup *simple,
  *         format.  The state is parsed with no extra type information,
  *         so type tags must be added to the string if they are
  *         necessary.
+ * @change_state: the callback to connect to the "change-state" signal
+ *                of the action
  *
  * This struct defines a single action.  It is for use with
  * g_simple_action_group_add_entries().
@@ -523,6 +525,10 @@ g_simple_action_group_add_entries (GSimpleActionGroup *simple,
         g_signal_connect (action, "activate",
                           G_CALLBACK (entry->activate), user_data);
 
+      if (entry->change_state != NULL)
+        g_signal_connect (action, "change-state",
+                          G_CALLBACK (entry->change_state), user_data);
+
       g_simple_action_group_insert (simple, G_ACTION (action));
       g_object_unref (action);
     }
index 8486808..710cd59 100644 (file)
@@ -96,8 +96,12 @@ struct _GActionEntry
 
   const gchar *state;
 
+  void (* change_state) (GSimpleAction *action,
+                         GVariant      *value,
+                         gpointer       user_data);
+
   /*< private >*/
-  gsize padding[4];
+  gsize padding[3];
 };
 
 void                    g_simple_action_group_add_entries               (GSimpleActionGroup *simple,