aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-03-31 13:47:27 -0500
committerTed Gould <ted@gould.cx>2010-03-31 13:47:27 -0500
commitcae176681adb2e32464ec690b319008ae04a4a09 (patch)
tree64a5a117dac2a8d7b315fdd6361d7c30c2c77a39 /libdbusmenu-glib/menuitem.c
parent2033f92976ad4e34f01ebf14d11f2198e7ec5142 (diff)
downloadlibdbusmenu-cae176681adb2e32464ec690b319008ae04a4a09.tar.gz
libdbusmenu-cae176681adb2e32464ec690b319008ae04a4a09.tar.bz2
libdbusmenu-cae176681adb2e32464ec690b319008ae04a4a09.zip
Adding a set of callbacks so that we can respond to the about to show request.
Diffstat (limited to 'libdbusmenu-glib/menuitem.c')
-rw-r--r--libdbusmenu-glib/menuitem.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index f33da74..0186a20 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -1207,6 +1207,8 @@ dbusmenu_menuitem_handle_event (DbusmenuMenuitem * mi, const gchar * name, const
/**
dbusmenu_menuitem_send_about_to_show:
@mi: The #DbusmenuMenuitem to send the signal on.
+ @cb: Callback to call when the call has returned.
+ @cb_data: Data to pass to the callback.
This function is used to send the even that the submenu
of this item is about to be shown. Callers to this event
@@ -1214,7 +1216,7 @@ dbusmenu_menuitem_handle_event (DbusmenuMenuitem * mi, const gchar * name, const
called if possible.
*/
void
-dbusmenu_menuitem_send_about_to_show (DbusmenuMenuitem * mi)
+dbusmenu_menuitem_send_about_to_show (DbusmenuMenuitem * mi, dbusmenu_menuitem_about_to_show_cb cb, gpointer cb_data)
{
g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));
#ifdef MASSIVEDEBUGGING
@@ -1223,7 +1225,10 @@ dbusmenu_menuitem_send_about_to_show (DbusmenuMenuitem * mi)
DbusmenuMenuitemClass * class = DBUSMENU_MENUITEM_GET_CLASS(mi);
if (class->send_about_to_show != NULL) {
- return class->send_about_to_show(mi);
+ return class->send_about_to_show(mi, cb, cb_data);
+ } else if (cb != NULL) {
+ cb(mi, cb_data);
}
+
return;
}