← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~mterry/dbusmenu/gtk3 into lp:dbusmenu

 

Michael Terry has proposed merging lp:~mterry/dbusmenu/gtk3 into lp:dbusmenu.

Requested reviews:
  DBus Menu Team (dbusmenu-team)
Related bugs:
  #596171 Provide GTK+ 3.0 version of libappindicator
  https://bugs.launchpad.net/bugs/596171


Applications ported to GTK+ 3.0 cannot use libdbusmenu-gtk because it is built for GTK+ 2.0. This branch builds a parallel-installable version of the library (libdbusmenu-gtk3) so that GTK+ 3.0 apps can also use dbus menus.
-- 
https://code.launchpad.net/~mterry/dbusmenu/gtk3/+merge/27992
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
=== modified file 'configure.ac'
--- configure.ac	2010-06-10 17:21:05 +0000
+++ configure.ac	2010-06-19 13:40:54 +0000
@@ -48,6 +48,7 @@
 ###########################
 
 GTK_REQUIRED_VERSION=2.16
+GTK3_REQUIRED_VERSION=2.90
 
 PKG_CHECK_MODULES(DBUSMENUGTK,  gtk+-2.0 >= $GTK_REQUIRED_VERSION
                                 glib-2.0 >= $GLIB_REQUIRED_VERSION
@@ -57,6 +58,14 @@
 AC_SUBST(DBUSMENUGTK_CFLAGS)
 AC_SUBST(DBUSMENUGTK_LIBS)
 
+PKG_CHECK_MODULES(DBUSMENUGTK3, gtk+-3.0 >= $GTK3_REQUIRED_VERSION
+                                glib-2.0 >= $GLIB_REQUIRED_VERSION
+                                dbus-glib-1 >= $DBUS_REQUIRED_VERSION
+                                libxml-2.0 >= $XML_REQUIRED_VERSION)
+
+AC_SUBST(DBUSMENUGTK3_CFLAGS)
+AC_SUBST(DBUSMENUGTK3_LIBS)
+
 ###########################
 # Dependencies - Testing
 ###########################
@@ -123,6 +132,7 @@
 libdbusmenu-glib/dbusmenu-glib.pc
 libdbusmenu-gtk/Makefile
 libdbusmenu-gtk/dbusmenu-gtk.pc
+libdbusmenu-gtk/dbusmenu-gtk3.pc
 tools/Makefile
 tools/testapp/Makefile
 tests/Makefile

=== modified file 'libdbusmenu-gtk/Makefile.am'
--- libdbusmenu-gtk/Makefile.am	2010-05-20 16:09:29 +0000
+++ libdbusmenu-gtk/Makefile.am	2010-06-19 13:40:54 +0000
@@ -2,17 +2,21 @@
 CLEANFILES = 
 
 EXTRA_DIST = \
-	dbusmenu-gtk.pc.in
+	dbusmenu-gtk.pc.in \
+	dbusmenu-gtk3.pc.in
 
 lib_LTLIBRARIES = \
-	libdbusmenu-gtk.la
+	libdbusmenu-gtk.la \
+	libdbusmenu-gtk3.la
 
 libdbusmenu_gtkincludedir=$(includedir)/libdbusmenu-0.1/libdbusmenu-gtk/
+libdbusmenu_gtk3includedir=$(includedir)/libdbusmenu3-0.1/libdbusmenu-gtk/
 
 libdbusmenu_gtkinclude_HEADERS = \
 	client.h \
 	menu.h \
 	menuitem.h
+libdbusmenu_gtk3include_HEADERS = $(libdbusmenu_gtkinclude_HEADERS)
 
 libdbusmenu_gtk_la_SOURCES = \
 	client.h \
@@ -23,20 +27,27 @@
 	menu.c \
 	menuitem.h \
 	menuitem.c
+libdbusmenu_gtk3_la_SOURCES = $(libdbusmenu_gtk_la_SOURCES)
 
 libdbusmenu_gtk_la_LDFLAGS = \
 	-version-info $(LIBDBUSMENU_CURRENT):$(LIBDBUSMENU_REVISION):$(LIBDBUSMENU_AGE) \
 	-no-undefined \
 	-export-symbols-regex "^[^_].*"
+libdbusmenu_gtk3_la_LDFLAGS = $(libdbusmenu_gtk_la_LDFLAGS)
 
 libdbusmenu_gtk_la_CFLAGS = \
 	$(DBUSMENUGTK_CFLAGS) -I$(top_srcdir) -Wall -Werror -DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN="\"LIBDBUSMENU-GTK\""
+libdbusmenu_gtk3_la_CFLAGS = \
+	$(DBUSMENUGTK3_CFLAGS) -I$(top_srcdir) -Wall -Werror -DG_DISABLE_DEPRECATED -DG_LOG_DOMAIN="\"LIBDBUSMENU-GTK\""
 
 libdbusmenu_gtk_la_LIBADD = \
 	../libdbusmenu-glib/libdbusmenu-glib.la \
 	$(DBUSMENUGTK_LIBS)
+libdbusmenu_gtk3_la_LIBADD = \
+	../libdbusmenu-glib/libdbusmenu-glib.la \
+	$(DBUSMENUGTK3_LIBS)
 
-pkgconfig_DATA = dbusmenu-gtk.pc
+pkgconfig_DATA = dbusmenu-gtk.pc dbusmenu-gtk3.pc
 pkgconfigdir = $(libdir)/pkgconfig
 
 #########################
@@ -64,7 +75,16 @@
 DbusmenuGtk_0_2_gir_LIBS = libdbusmenu-gtk.la
 DbusmenuGtk_0_2_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources))
 
-INTROSPECTION_GIRS += DbusmenuGtk-0.2.gir
+DbusmenuGtk3-0.2.gir: libdbusmenu-gtk3.la
+DbusmenuGtk3_0_2_gir_INCLUDES = \
+	GObject-2.0 \
+	Gtk-3.0 \
+	Dbusmenu-Glib-0.2
+DbusmenuGtk3_0_2_gir_CFLAGS = $(DBUSMENUGTK3_CFLAGS) -I$(top_srcdir)
+DbusmenuGtk3_0_2_gir_LIBS = libdbusmenu-gtk3.la
+DbusmenuGtk3_0_2_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources))
+
+INTROSPECTION_GIRS += DbusmenuGtk-0.2.gir DbusmenuGtk3-0.2.gir
 
 girdir = $(datadir)/gir-1.0
 gir_DATA = $(INTROSPECTION_GIRS)
@@ -83,7 +103,7 @@
 if HAVE_INTROSPECTION
 
 vapidir = $(datadir)/vala/vapi
-vapi_DATA = DbusmenuGtk-0.2.vapi
+vapi_DATA = DbusmenuGtk-0.2.vapi DbusmenuGtk3-0.2.vapi
 
 DbusmenuGtk-0.2.vapi: DbusmenuGtk-0.2.tmp.gir Makefile.am
 	$(VALA_API_GEN) --library=DbusmenuGtk-0.2 \
@@ -94,13 +114,28 @@
 		--vapidir=$(top_builddir)/libdbusmenu-glib \
 		$<
 
+DbusmenuGtk3-0.2.vapi: DbusmenuGtk3-0.2.tmp.gir Makefile.am
+	$(VALA_API_GEN) --library=DbusmenuGtk3-0.2 \
+		--pkg gdk-pixbuf-3.0 \
+		--pkg gtk+-3.0 \
+		--pkg atk \
+		--pkg Dbusmenu-Glib-0.2 \
+		--vapidir=$(top_builddir)/libdbusmenu-glib \
+		$<
+
 DbusmenuGtk-0.2.tmp.gir: DbusmenuGtk-0.2.gir
 	$(SED) \
 		-e "s|GdkPixbuf.Pixbuf|Gdk.Pixbuf|g" \
 		-e "s|Atk.ImplementorIface|Atk.Implementor|g" \
 		$< > $@
 
-CLEANFILES += $(vapi_DATA) DbusmenuGtk-0.2.tmp.gir
+DbusmenuGtk3-0.2.tmp.gir: DbusmenuGtk3-0.2.gir
+	$(SED) \
+		-e "s|GdkPixbuf.Pixbuf|Gdk.Pixbuf|g" \
+		-e "s|Atk.ImplementorIface|Atk.Implementor|g" \
+		$< > $@
+
+CLEANFILES += $(vapi_DATA) DbusmenuGtk-0.2.tmp.gir DbusmenuGtk3-0.2.tmp.gir
 
 endif
 

=== added file 'libdbusmenu-gtk/dbusmenu-gtk3.pc.in'
--- libdbusmenu-gtk/dbusmenu-gtk3.pc.in	1970-01-01 00:00:00 +0000
+++ libdbusmenu-gtk/dbusmenu-gtk3.pc.in	2010-06-19 13:40:54 +0000
@@ -0,0 +1,14 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+bindir=@bindir@
+includedir=@includedir@
+
+Cflags: -I${includedir}/libdbusmenu-3.1
+Requires: dbus-glib-1 dbusmenu-glib
+Libs: -L${libdir} -ldbusmenu-gtk3
+
+Name: libdbusmenu-gtk3
+Description: libdbusmenu-gtk3.
+Version: @VERSION@
+

=== modified file 'libdbusmenu-gtk/menu.c'
--- libdbusmenu-gtk/menu.c	2010-04-15 05:54:44 +0000
+++ libdbusmenu-gtk/menu.c	2010-06-19 13:40:54 +0000
@@ -237,7 +237,7 @@
 	GtkMenuItem * mi = dbusmenu_gtkclient_menuitem_get(priv->client, child);
 	if (mi != NULL) {
 		GtkWidget * item = GTK_WIDGET(mi);
-		gtk_menu_insert(GTK_MENU(menu), item, dbusmenu_menuitem_get_position_realized(child, root));
+		gtk_menu_shell_insert(GTK_MENU_SHELL(menu), item, dbusmenu_menuitem_get_position_realized(child, root));
 		#ifdef MASSIVEDEBUGGING
 		menu_pos_t menu_pos;
 		menu_pos.mi = mi;
@@ -299,7 +299,7 @@
 	GtkWidget * child_widget = GTK_WIDGET(dbusmenu_gtkclient_menuitem_get(priv->client, child));
 
 	if (child_widget != NULL) {
-		gtk_menu_append(menu, child_widget);
+		gtk_menu_shell_append(GTK_MENU_SHELL(menu), child_widget);
 		gtk_menu_reorder_child(GTK_MENU(menu), child_widget, dbusmenu_menuitem_get_position_realized(child, dbusmenu_client_get_root(DBUSMENU_CLIENT(priv->client))));
 	} else {
 		g_warning("Child is realized, but doesn't have a GTK Widget!");


Follow ups