diff options
author | Ted Gould <ted@gould.cx> | 2011-03-10 10:28:16 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2011-03-10 10:28:16 -0600 |
commit | 8e65325fbcf64fb7a9467d805e9d43306c6b7d0a (patch) | |
tree | 75ffaffe8d196f81b1237221a8d15d6a0d226d34 | |
parent | 37d4bb79ab935208b94954d48292097f7ca2ecdd (diff) | |
parent | 8b44761d80a2c9ccdd7482feeabd3bcb5396387b (diff) | |
download | libdbusmenu-8e65325fbcf64fb7a9467d805e9d43306c6b7d0a.tar.gz libdbusmenu-8e65325fbcf64fb7a9467d805e9d43306c6b7d0a.tar.bz2 libdbusmenu-8e65325fbcf64fb7a9467d805e9d43306c6b7d0a.zip |
Helper to get the cached menuitem from a widget
-rw-r--r-- | docs/libdbusmenu-gtk/reference/libdbusmenu-gtk-sections.txt | 1 | ||||
-rw-r--r-- | libdbusmenu-gtk/parser.c | 19 | ||||
-rw-r--r-- | libdbusmenu-gtk/parser.h | 1 |
3 files changed, 21 insertions, 0 deletions
diff --git a/docs/libdbusmenu-gtk/reference/libdbusmenu-gtk-sections.txt b/docs/libdbusmenu-gtk/reference/libdbusmenu-gtk-sections.txt index 77101f7..efffeaa 100644 --- a/docs/libdbusmenu-gtk/reference/libdbusmenu-gtk-sections.txt +++ b/docs/libdbusmenu-gtk/reference/libdbusmenu-gtk-sections.txt @@ -73,5 +73,6 @@ dbusmenu_menuitem_property_get_shortcut <SECTION> <FILE>parser</FILE> dbusmenu_gtk_parse_menu_structure +dbusmenu_gtk_parse_get_cached_item </SECTION> diff --git a/libdbusmenu-gtk/parser.c b/libdbusmenu-gtk/parser.c index a890543..1b032bb 100644 --- a/libdbusmenu-gtk/parser.c +++ b/libdbusmenu-gtk/parser.c @@ -109,6 +109,25 @@ dbusmenu_gtk_parse_menu_structure (GtkWidget * widget) return recurse.parent; } +/** + * dbusmenu_gtk_parse_get_cached_item: + * @widget: A #GtkMenuItem that may have a cached #DbusmenuMenuitem from the parser + * + * The Dbusmenu GTK parser adds cached items on the various + * menu items throughout the tree. Sometimes it can be useful + * to get that cached item to use directly. This function + * will retrieve it for you. + * + * Return value: (transfer none): A pointer to the cached item + * or NULL if it isn't there. + */ +DbusmenuMenuitem * +dbusmenu_gtk_parse_get_cached_item (GtkWidget * widget) +{ + g_return_val_if_fail(GTK_IS_MENU_ITEM(widget), NULL); + return DBUSMENU_MENUITEM(g_object_get_data(G_OBJECT(widget), CACHED_MENUITEM)); +} + static void parse_data_free (gpointer data) { diff --git a/libdbusmenu-gtk/parser.h b/libdbusmenu-gtk/parser.h index 8187a8e..97fa9c6 100644 --- a/libdbusmenu-gtk/parser.h +++ b/libdbusmenu-gtk/parser.h @@ -35,6 +35,7 @@ License version 3 and version 2.1 along with this program. If not, see G_BEGIN_DECLS DbusmenuMenuitem * dbusmenu_gtk_parse_menu_structure (GtkWidget * widget); +DbusmenuMenuitem * dbusmenu_gtk_parse_get_cached_item (GtkWidget * widget); /** SECTION:parser |