ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #02894
[Branch ~dbusmenu-team/dbusmenu/trunk] Rev 198: Making the parser recognize when it hits serializable menu items
Merge authors:
Ted Gould (ted)
Related merge proposals:
https://code.launchpad.net/~ted/dbusmenu/parse-serializable-menuitem/+merge/47710
proposed by: Ted Gould (ted)
------------------------------------------------------------
revno: 198 [merge]
committer: Ted Gould <ted@xxxxxxxx>
branch nick: trunk
timestamp: Thu 2011-01-27 13:54:18 -0600
message:
Making the parser recognize when it hits serializable menu items
modified:
.bzrignore
libdbusmenu-gtk/parser.c
--
lp:dbusmenu
https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
To unsubscribe from this branch go to https://code.launchpad.net/~dbusmenu-team/dbusmenu/trunk/+edit-subscription
=== modified file '.bzrignore'
--- .bzrignore 2011-01-27 19:49:40 +0000
+++ .bzrignore 2011-01-27 19:54:18 +0000
@@ -220,10 +220,10 @@
libdbusmenu-gtk/DbusmenuGtk-0.4.vapi
libdbusmenu-gtk/dbusmenu-gtk-0.4.pc
libdbusmenu-gtk/dbusmenu-gtk3-0.4.pc
+libdbusmenu-gtk/libdbusmenu_gtk_la-serializablemenuitem.lo
+docs/libdbusmenu-gtk/reference/html/DbusmenuGtkSerializableMenuItem.html
+docs/libdbusmenu-gtk/reference/tmpl/serializablemenuitem.sgml
libdbusmenu-gtk/libdbusmenu_gtk_la-parser.lo
test-gtk-parser
test-gtk-parser-test
test-gtk-parser.xml
-libdbusmenu-gtk/libdbusmenu_gtk_la-serializablemenuitem.lo
-docs/libdbusmenu-gtk/reference/html/DbusmenuGtkSerializableMenuItem.html
-docs/libdbusmenu-gtk/reference/tmpl/serializablemenuitem.sgml
=== modified file 'libdbusmenu-gtk/parser.c'
--- libdbusmenu-gtk/parser.c 2011-01-27 14:50:24 +0000
+++ libdbusmenu-gtk/parser.c 2011-01-27 19:54:18 +0000
@@ -28,6 +28,7 @@
#include "parser.h"
#include "menuitem.h"
+#include "serializablemenuitem.h"
#define CACHED_MENUITEM "dbusmenu-gtk-parser-cached-item"
@@ -221,13 +222,23 @@
return;
}
+/* Turn a widget into a dbusmenu item depending on the type of GTK
+ object that it is. */
static DbusmenuMenuitem *
construct_dbusmenu_for_widget (GtkWidget * widget)
{
- DbusmenuMenuitem *mi = dbusmenu_menuitem_new ();
+ /* If it's a subclass of our serializable menu item then we can
+ use its own build function */
+ if (DBUSMENU_IS_GTK_SERIALIZABLE_MENU_ITEM(widget)) {
+ DbusmenuGtkSerializableMenuItem * smi = DBUSMENU_GTK_SERIALIZABLE_MENU_ITEM(widget);
+ return dbusmenu_gtk_serializable_menu_item_build_menuitem(smi);
+ }
+ /* If it's a standard GTK Menu Item we need to do some of our own work */
if (GTK_IS_MENU_ITEM (widget))
{
+ DbusmenuMenuitem *mi = dbusmenu_menuitem_new ();
+
gboolean visible = FALSE;
gboolean sensitive = FALSE;
if (GTK_IS_SEPARATOR_MENU_ITEM (widget))
@@ -360,11 +371,12 @@
"notify",
G_CALLBACK (widget_notify_cb),
mi);
+ return mi;
}
- return mi;
-
- return NULL;
+ /* If it's none of those we're going to just create a
+ generic menuitem as a place holder for it. */
+ return dbusmenu_menuitem_new();
}
static void