diff options
author | Ted Gould <ted@gould.cx> | 2011-01-09 15:44:19 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-01-09 15:44:19 -0600 |
commit | a17110ef804bc829df9f6e2275ed3210f7dc1031 (patch) | |
tree | c89afa27a72c40159c9b1534fb87cc31a063a246 | |
parent | f7b8662cc0e5abd018f11345205536dda7d56646 (diff) | |
download | libayatana-indicator-a17110ef804bc829df9f6e2275ed3210f7dc1031.tar.gz libayatana-indicator-a17110ef804bc829df9f6e2275ed3210f7dc1031.tar.bz2 libayatana-indicator-a17110ef804bc829df9f6e2275ed3210f7dc1031.zip |
Adding a virtual function for closing the menu and a wrapper for it.
-rw-r--r-- | libindicator/indicator-object.c | 21 | ||||
-rw-r--r-- | libindicator/indicator-object.h | 5 |
2 files changed, 26 insertions, 0 deletions
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 |