From a17110ef804bc829df9f6e2275ed3210f7dc1031 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Sun, 9 Jan 2011 15:44:19 -0600 Subject: Adding a virtual function for closing the menu and a wrapper for it. --- libindicator/indicator-object.c | 21 +++++++++++++++++++++ libindicator/indicator-object.h | 5 +++++ 2 files changed, 26 insertions(+) (limited to 'libindicator') diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c index 7469cb9..f82a7c3 100644 --- a/libindicator/indicator-object.c +++ b/libindicator/indicator-object.c @@ -500,3 +500,24 @@ indicator_object_entry_activate (IndicatorObject * io, IndicatorObjectEntry * en return; } +/** + indicator_object_entry_activate: + @io: #IndicatorObject to query + @entry: The #IndicatorObjectEntry whose menu was closed + @timestamp: The X11 timestamp of the event + + Used to signal that a menu has been closed for the specific + entry that is specified. +*/ +void +indicator_object_entry_close (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp) +{ + g_return_if_fail(INDICATOR_IS_OBJECT(io)); + IndicatorObjectClass * class = INDICATOR_OBJECT_GET_CLASS(io); + + if (class->entry_close != NULL) { + return class->entry_close(io, entry, timestamp); + } + + return; +} diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h index 6072f4f..9ad1366 100644 --- a/libindicator/indicator-object.h +++ b/libindicator/indicator-object.h @@ -83,6 +83,9 @@ typedef struct _IndicatorObjectEntry IndicatorObjectEntry; @get_show_now: Returns whether the entry is requesting to be shown "right now" in that it has something important to tell the user. + @entry_activate: Should be called when the menus for a given + entry are shown to the user. + @entry_close: Called when the menu is closed. @entry_added: Slot for #IndicatorObject::entry-added @entry_removed: Slot for #IndicatorObject::entry-removed @entry_moved: Slot for #IndicatorObject::entry-moved @@ -102,6 +105,7 @@ struct _IndicatorObjectClass { gboolean (*get_show_now) (IndicatorObject * io, IndicatorObjectEntry * entry); void (*entry_activate) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp); + void (*entry_close) (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp); /* Signals */ void (*entry_added) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data); @@ -150,6 +154,7 @@ GList * indicator_object_get_entries (IndicatorObject * io); guint indicator_object_get_location (IndicatorObject * io, IndicatorObjectEntry * entry); guint indicator_object_get_show_now (IndicatorObject * io, IndicatorObjectEntry * entry); void indicator_object_entry_activate (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp); +void indicator_object_entry_close (IndicatorObject * io, IndicatorObjectEntry * entry, guint timestamp); G_END_DECLS -- cgit v1.2.3