Author: jannis
Date: 2007-01-14 15:03:28 +0000 (Sun, 14 Jan 2007)
New Revision: 24446

Modified:
   libfrap/trunk/libfrap/menu/ChangeLog
   libfrap/trunk/libfrap/menu/frap-menu.c
   libfrap/trunk/libfrap/menu/frap-menu.h
Log:
        * frap-menu.{c,h}: Add frap_menu_get_items() method as a convenience 
          wrapper around frap_menu_item_pool_foreach. Thanks to Benny again.

Modified: libfrap/trunk/libfrap/menu/ChangeLog
===================================================================
--- libfrap/trunk/libfrap/menu/ChangeLog        2007-01-14 14:47:57 UTC (rev 
24445)
+++ libfrap/trunk/libfrap/menu/ChangeLog        2007-01-14 15:03:28 UTC (rev 
24446)
@@ -1,3 +1,8 @@
+2006-01-14     Jannis Pohlmann <[EMAIL PROTECTED]>
+
+       * frap-menu.{c,h}: Add frap_menu_get_items() method as a convenience 
+         wrapper around frap_menu_item_pool_foreach. Thanks to Benny again.
+
 2007-01-14     Jannis Pohlmann <[EMAIL PROTECTED]>
 
        * frap-menu.{c,h}, frap-menu-rules.h, frap-menu-standard-rules.h,

Modified: libfrap/trunk/libfrap/menu/frap-menu.c
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu.c      2007-01-14 14:47:57 UTC (rev 
24445)
+++ libfrap/trunk/libfrap/menu/frap-menu.c      2007-01-14 15:03:28 UTC (rev 
24446)
@@ -2480,3 +2480,44 @@
 
   return menu->priv->pool;
 }
+
+
+
+static void
+items_collect (const gchar  *desktop_id,
+               FrapMenuItem *item,
+               GSList      **listp)
+{
+  *listp = g_slist_prepend (*listp, item);
+}
+
+
+
+/**
+ * frap_menu_get_items:
+ * @menu : a #FrapMenu.
+ *
+ * Convenience wrapper around frap_menu_get_item_pool(), which simply returns 
the
+ * #FrapMenuItem<!---->s contained within the associated item pool as singly 
linked
+ * list.
+ *
+ * The caller is responsible to free the returned list using
+ * <informalexample><programlisting>
+ * g_slist_free (list);
+ * </programlisting></informalexample>
+ * when no longer needed.
+ * 
+ * Return value: the list of #FrapMenuItem<!---->s within this menu.
+ **/
+GSList*
+frap_menu_get_items (FrapMenu *menu)
+{
+  GSList *items = NULL;
+
+  g_return_val_if_fail (FRAP_IS_MENU (menu), NULL);
+
+  /* collect the items in the pool */
+  frap_menu_item_pool_foreach (menu->priv->pool, (GHFunc) items_collect, 
&items);
+
+  return items;
+}

Modified: libfrap/trunk/libfrap/menu/frap-menu.h
===================================================================
--- libfrap/trunk/libfrap/menu/frap-menu.h      2007-01-14 14:47:57 UTC (rev 
24445)
+++ libfrap/trunk/libfrap/menu/frap-menu.h      2007-01-14 15:03:28 UTC (rev 
24446)
@@ -76,6 +76,7 @@
                                                     const gchar       *name);
 FrapMenu          *frap_menu_get_parent            (FrapMenu          *menu);
 FrapMenuItemPool  *frap_menu_get_item_pool         (FrapMenu          *menu);
+GSList            *frap_menu_get_items             (FrapMenu          *menu);
 
 G_END_DECLS;
 

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to