From 276750aa7aba853535a9f751429ef51aa9dcc924 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Wed, 29 Jun 2011 16:04:09 +0100 Subject: [PATCH] Add 'change_state' callback to GActionEntry --- gio/gsimpleactiongroup.c | 6 ++++++ gio/gsimpleactiongroup.h | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gio/gsimpleactiongroup.c b/gio/gsimpleactiongroup.c index b35982d..46619d3 100644 --- a/gio/gsimpleactiongroup.c +++ b/gio/gsimpleactiongroup.c @@ -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); } diff --git a/gio/gsimpleactiongroup.h b/gio/gsimpleactiongroup.h index 8486808..710cd59 100644 --- a/gio/gsimpleactiongroup.h +++ b/gio/gsimpleactiongroup.h @@ -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, -- 2.7.4