aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib
diff options
context:
space:
mode:
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r--libdbusmenu-glib/Makefile.am2
-rw-r--r--libdbusmenu-glib/Makefile.in2
-rw-r--r--libdbusmenu-glib/clean-namespaces.xslt2
-rw-r--r--libdbusmenu-glib/client.c2
-rw-r--r--libdbusmenu-glib/dbus-menu-clean.xml.c132
-rw-r--r--libdbusmenu-glib/dbus-menu-clean.xml.h1
-rw-r--r--libdbusmenu-glib/dbus-menu.xml6
-rw-r--r--libdbusmenu-glib/dbusmenu-client.h292
-rw-r--r--libdbusmenu-glib/dbusmenu-server.h386
-rw-r--r--libdbusmenu-glib/menuitem.c19
-rw-r--r--libdbusmenu-glib/menuitem.h3
-rw-r--r--libdbusmenu-glib/server.c10
12 files changed, 167 insertions, 690 deletions
diff --git a/libdbusmenu-glib/Makefile.am b/libdbusmenu-glib/Makefile.am
index e45f700..4a65ac0 100644
--- a/libdbusmenu-glib/Makefile.am
+++ b/libdbusmenu-glib/Makefile.am
@@ -143,7 +143,7 @@ Dbusmenu_Glib_0_4_gir_LIBS = libdbusmenu-glib.la
Dbusmenu_Glib_0_4_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources))
Dbusmenu_Glib_0_4_gir_NAMESPACE = Dbusmenu
Dbusmenu_Glib_0_4_gir_VERSION = Glib-0.4
-Dbusmenu_Glib_0_4_gir_PACKAGES = dbusmenu-glib
+Dbusmenu_Glib_0_4_gir_PACKAGES = dbusmenu-glib-0.4
Dbusmenu_Glib_0_4_gir_SCANNER_FLAGS = $(INTROSPECTION_SCANNER_ARGS)
INTROSPECTION_GIRS += Dbusmenu-Glib-0.4.gir
diff --git a/libdbusmenu-glib/Makefile.in b/libdbusmenu-glib/Makefile.in
index 86c95f4..1d15f32 100644
--- a/libdbusmenu-glib/Makefile.in
+++ b/libdbusmenu-glib/Makefile.in
@@ -386,7 +386,7 @@ INTROSPECTION_COMPILER_ARGS = --includedir=$(builddir)
@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_FILES = $(addprefix $(srcdir)/, $(introspection_sources))
@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_NAMESPACE = Dbusmenu
@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_VERSION = Glib-0.4
-@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_PACKAGES = dbusmenu-glib
+@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_PACKAGES = dbusmenu-glib-0.4
@HAVE_INTROSPECTION_TRUE@Dbusmenu_Glib_0_4_gir_SCANNER_FLAGS = $(INTROSPECTION_SCANNER_ARGS)
@HAVE_INTROSPECTION_TRUE@girdir = $(datadir)/gir-1.0
@HAVE_INTROSPECTION_TRUE@gir_DATA = $(INTROSPECTION_GIRS)
diff --git a/libdbusmenu-glib/clean-namespaces.xslt b/libdbusmenu-glib/clean-namespaces.xslt
index 8344a71..8c0c521 100644
--- a/libdbusmenu-glib/clean-namespaces.xslt
+++ b/libdbusmenu-glib/clean-namespaces.xslt
@@ -1,4 +1,4 @@
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dox="http://www.canonical.com/dbus/dox.dtd">
<xsl:template match="*|@*">
<xsl:copy>
<xsl:apply-templates select="*|@*" />
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index a15469b..58d6360 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -122,7 +122,7 @@ struct _event_data_t {
#define DBUSMENU_CLIENT_GET_PRIVATE(o) (DBUSMENU_CLIENT(o)->priv)
-#define DBUSMENU_INTERFACE "org.ayatana.dbusmenu"
+#define DBUSMENU_INTERFACE "com.canonical.dbusmenu"
/* GObject Stuff */
static void dbusmenu_client_class_init (DbusmenuClientClass *klass);
diff --git a/libdbusmenu-glib/dbus-menu-clean.xml.c b/libdbusmenu-glib/dbus-menu-clean.xml.c
new file mode 100644
index 0000000..28f502d
--- /dev/null
+++ b/libdbusmenu-glib/dbus-menu-clean.xml.c
@@ -0,0 +1,132 @@
+const char * dbus_menu_clean_xml =
+"<?xml version=\"1.0\"?>\n"
+"<node name=\"/\">\n"
+" \n"
+" <interface name=\"com.canonical.dbusmenu\">\n"
+" \n"
+"\n"
+"\n"
+" <property name=\"version\" type=\"u\" access=\"read\">\n"
+" \n"
+" </property>\n"
+"\n"
+"\n"
+"\n"
+" <method name=\"GetLayout\">\n"
+" \n"
+" <arg type=\"i\" name=\"parentId\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"u\" name=\"revision\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"s\" name=\"layout\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
+" <method name=\"GetGroupProperties\">\n"
+" <annotation name=\"com.trolltech.QtDBus.QtTypeName.In0\" value=\"QVariantList\"/>\n"
+" <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"DBusMenuItemList\"/>\n"
+" \n"
+" <arg type=\"ai\" name=\"ids\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"as\" name=\"propertyNames\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"a(ia{sv})\" name=\"properties\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
+" <method name=\"GetChildren\">\n"
+" <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"DBusMenuItemList\"/>\n"
+" <arg type=\"i\" name=\"id\" direction=\"in\"/>\n"
+" <arg type=\"as\" name=\"propertyNames\" direction=\"in\"/>\n"
+" <arg type=\"a(ia{sv})\" name=\"properties\" direction=\"out\"/>\n"
+" </method>\n"
+"\n"
+" <method name=\"GetProperty\">\n"
+" <arg type=\"i\" name=\"id\" direction=\"in\"/>\n"
+" <arg type=\"s\" name=\"name\" direction=\"in\"/>\n"
+" <arg type=\"v\" name=\"value\" direction=\"out\"/>\n"
+" </method>\n"
+"\n"
+" <method name=\"GetProperties\">\n"
+" \n"
+" <annotation name=\"com.trolltech.QtDBus.QtTypeName.Out0\" value=\"QVariantMap\"/>\n"
+" <arg type=\"i\" name=\"id\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"as\" name=\"propertyNames\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"a{sv}\" name=\"properties\" direction=\"out\"/>\n"
+" </method>\n"
+"\n"
+" <method name=\"Event\">\n"
+" \n"
+" <arg type=\"i\" name=\"id\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"s\" name=\"eventId\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"v\" name=\"data\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"u\" name=\"timestamp\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
+" <method name=\"AboutToShow\">\n"
+" \n"
+" <arg type=\"i\" name=\"id\" direction=\"in\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"b\" name=\"needUpdate\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </method>\n"
+"\n"
+"\n"
+" <signal name=\"ItemPropertyUpdated\">\n"
+" \n"
+" <arg type=\"i\" name=\"id\" direction=\"out\"/>\n"
+" <arg type=\"s\" name=\"prop\" direction=\"out\"/>\n"
+" <arg type=\"v\" name=\"value\" direction=\"out\"/>\n"
+" </signal>\n"
+"\n"
+" <signal name=\"ItemUpdated\">\n"
+" \n"
+" <arg type=\"i\" name=\"id\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </signal>\n"
+"\n"
+" <signal name=\"LayoutUpdated\">\n"
+" \n"
+" <arg type=\"u\" name=\"revision\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"i\" name=\"parent\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </signal>\n"
+" <signal name=\"ItemActivationRequested\">\n"
+" \n"
+" <arg type=\"i\" name=\"id\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" <arg type=\"u\" name=\"timestamp\" direction=\"out\">\n"
+" \n"
+" </arg>\n"
+" </signal>\n"
+"\n"
+"\n"
+"\n"
+" </interface>\n"
+"</node>\n"
+;
diff --git a/libdbusmenu-glib/dbus-menu-clean.xml.h b/libdbusmenu-glib/dbus-menu-clean.xml.h
new file mode 100644
index 0000000..0d930d4
--- /dev/null
+++ b/libdbusmenu-glib/dbus-menu-clean.xml.h
@@ -0,0 +1 @@
+extern const char * dbus_menu_clean_xml;
diff --git a/libdbusmenu-glib/dbus-menu.xml b/libdbusmenu-glib/dbus-menu.xml
index 9e8013c..042a24c 100644
--- a/libdbusmenu-glib/dbus-menu.xml
+++ b/libdbusmenu-glib/dbus-menu.xml
@@ -28,15 +28,15 @@ You should have received a copy of both the GNU Lesser General Public
License version 3 and version 2.1 along with this program. If not, see
<http://www.gnu.org/licenses/>
-->
-<node name="/" xmlns:dox="http://www.ayatana.org/dbus/dox.dtd">
+<node name="/" xmlns:dox="http://www.canonical.com/dbus/dox.dtd">
<dox:d><![CDATA[
@mainpage
The goal of DBusMenu is to expose menus on DBus.
- Main interface is documented here: @ref org::ayatana::dbusmenu
+ Main interface is documented here: @ref com::canonical::dbusmenu
]]></dox:d>
- <interface name="org.ayatana.dbusmenu">
+ <interface name="com.canonical.dbusmenu">
<dox:d><![CDATA[
A DBus interface to expose menus on DBus.
diff --git a/libdbusmenu-glib/dbusmenu-client.h b/libdbusmenu-glib/dbusmenu-client.h
deleted file mode 100644
index ddcc271..0000000
--- a/libdbusmenu-glib/dbusmenu-client.h
+++ /dev/null
@@ -1,292 +0,0 @@
-/* Generated by dbus-binding-tool; do not edit! */
-
-#include <glib.h>
-#include <dbus/dbus-glib.h>
-
-G_BEGIN_DECLS
-
-#ifndef _DBUS_GLIB_ASYNC_DATA_FREE
-#define _DBUS_GLIB_ASYNC_DATA_FREE
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-void
-_dbus_glib_async_data_free (gpointer stuff)
-{
- g_slice_free (DBusGAsyncData, stuff);
-}
-#endif
-
-#ifndef DBUS_GLIB_CLIENT_WRAPPERS_org_ayatana_dbusmenu
-#define DBUS_GLIB_CLIENT_WRAPPERS_org_ayatana_dbusmenu
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_get_layout (DBusGProxy *proxy, const gint IN_parentId, guint* OUT_revision, char ** OUT_layout, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "GetLayout", error, G_TYPE_INT, IN_parentId, G_TYPE_INVALID, G_TYPE_UINT, OUT_revision, G_TYPE_STRING, OUT_layout, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_get_layout_reply) (DBusGProxy *proxy, guint OUT_revision, char * OUT_layout, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_get_layout_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- guint OUT_revision;
- char * OUT_layout;
- dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_UINT, &OUT_revision, G_TYPE_STRING, &OUT_layout, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_get_layout_reply)data->cb) (proxy, OUT_revision, OUT_layout, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_get_layout_async (DBusGProxy *proxy, const gint IN_parentId, org_ayatana_dbusmenu_get_layout_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "GetLayout", org_ayatana_dbusmenu_get_layout_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_parentId, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_get_group_properties (DBusGProxy *proxy, const GArray* IN_ids, const char ** IN_propertyNames, GPtrArray** OUT_properties, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "GetGroupProperties", error, dbus_g_type_get_collection ("GArray", G_TYPE_INT), IN_ids, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_INVALID)), OUT_properties, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_get_group_properties_reply) (DBusGProxy *proxy, GPtrArray *OUT_properties, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_get_group_properties_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- GPtrArray* OUT_properties;
- dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_INVALID)), &OUT_properties, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_get_group_properties_reply)data->cb) (proxy, OUT_properties, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_get_group_properties_async (DBusGProxy *proxy, const GArray* IN_ids, const char ** IN_propertyNames, org_ayatana_dbusmenu_get_group_properties_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "GetGroupProperties", org_ayatana_dbusmenu_get_group_properties_async_callback, stuff, _dbus_glib_async_data_free, dbus_g_type_get_collection ("GArray", G_TYPE_INT), IN_ids, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_get_children (DBusGProxy *proxy, const gint IN_id, const char ** IN_propertyNames, GPtrArray** OUT_properties, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "GetChildren", error, G_TYPE_INT, IN_id, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_INVALID)), OUT_properties, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_get_children_reply) (DBusGProxy *proxy, GPtrArray *OUT_properties, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_get_children_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- GPtrArray* OUT_properties;
- dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), G_TYPE_INVALID)), &OUT_properties, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_get_children_reply)data->cb) (proxy, OUT_properties, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_get_children_async (DBusGProxy *proxy, const gint IN_id, const char ** IN_propertyNames, org_ayatana_dbusmenu_get_children_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "GetChildren", org_ayatana_dbusmenu_get_children_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_id, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_get_property (DBusGProxy *proxy, const gint IN_id, const char * IN_name, GValue* OUT_value, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "GetProperty", error, G_TYPE_INT, IN_id, G_TYPE_STRING, IN_name, G_TYPE_INVALID, G_TYPE_VALUE, OUT_value, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_get_property_reply) (DBusGProxy *proxy, GValue OUT_value, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_get_property_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- GValue OUT_value = { 0, };
- dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_VALUE, &OUT_value, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_get_property_reply)data->cb) (proxy, OUT_value, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_get_property_async (DBusGProxy *proxy, const gint IN_id, const char * IN_name, org_ayatana_dbusmenu_get_property_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "GetProperty", org_ayatana_dbusmenu_get_property_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_id, G_TYPE_STRING, IN_name, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_get_properties (DBusGProxy *proxy, const gint IN_id, const char ** IN_propertyNames, GHashTable** OUT_properties, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "GetProperties", error, G_TYPE_INT, IN_id, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), OUT_properties, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_get_properties_reply) (DBusGProxy *proxy, GHashTable *OUT_properties, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_get_properties_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- GHashTable* OUT_properties;
- dbus_g_proxy_end_call (proxy, call, &error, dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE), &OUT_properties, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_get_properties_reply)data->cb) (proxy, OUT_properties, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_get_properties_async (DBusGProxy *proxy, const gint IN_id, const char ** IN_propertyNames, org_ayatana_dbusmenu_get_properties_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "GetProperties", org_ayatana_dbusmenu_get_properties_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_id, G_TYPE_STRV, IN_propertyNames, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_event (DBusGProxy *proxy, const gint IN_id, const char * IN_eventId, const GValue* IN_data, const guint IN_timestamp, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "Event", error, G_TYPE_INT, IN_id, G_TYPE_STRING, IN_eventId, G_TYPE_VALUE, IN_data, G_TYPE_UINT, IN_timestamp, G_TYPE_INVALID, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_event_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_event_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_event_reply)data->cb) (proxy, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_event_async (DBusGProxy *proxy, const gint IN_id, const char * IN_eventId, const GValue* IN_data, const guint IN_timestamp, org_ayatana_dbusmenu_event_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "Event", org_ayatana_dbusmenu_event_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_id, G_TYPE_STRING, IN_eventId, G_TYPE_VALUE, IN_data, G_TYPE_UINT, IN_timestamp, G_TYPE_INVALID);
-}
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-gboolean
-org_ayatana_dbusmenu_about_to_show (DBusGProxy *proxy, const gint IN_id, gboolean* OUT_needUpdate, GError **error)
-
-{
- return dbus_g_proxy_call (proxy, "AboutToShow", error, G_TYPE_INT, IN_id, G_TYPE_INVALID, G_TYPE_BOOLEAN, OUT_needUpdate, G_TYPE_INVALID);
-}
-
-typedef void (*org_ayatana_dbusmenu_about_to_show_reply) (DBusGProxy *proxy, gboolean OUT_needUpdate, GError *error, gpointer userdata);
-
-static void
-org_ayatana_dbusmenu_about_to_show_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
-{
- DBusGAsyncData *data = (DBusGAsyncData*) user_data;
- GError *error = NULL;
- gboolean OUT_needUpdate;
- dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_BOOLEAN, &OUT_needUpdate, G_TYPE_INVALID);
- (*(org_ayatana_dbusmenu_about_to_show_reply)data->cb) (proxy, OUT_needUpdate, error, data->userdata);
- return;
-}
-
-static
-#ifdef G_HAVE_INLINE
-inline
-#endif
-DBusGProxyCall*
-org_ayatana_dbusmenu_about_to_show_async (DBusGProxy *proxy, const gint IN_id, org_ayatana_dbusmenu_about_to_show_reply callback, gpointer userdata)
-
-{
- DBusGAsyncData *stuff;
- stuff = g_slice_new (DBusGAsyncData);
- stuff->cb = G_CALLBACK (callback);
- stuff->userdata = userdata;
- return dbus_g_proxy_begin_call (proxy, "AboutToShow", org_ayatana_dbusmenu_about_to_show_async_callback, stuff, _dbus_glib_async_data_free, G_TYPE_INT, IN_id, G_TYPE_INVALID);
-}
-#endif /* defined DBUS_GLIB_CLIENT_WRAPPERS_org_ayatana_dbusmenu */
-
-G_END_DECLS
diff --git a/libdbusmenu-glib/dbusmenu-server.h b/libdbusmenu-glib/dbusmenu-server.h
deleted file mode 100644
index 1f0995d..0000000
--- a/libdbusmenu-glib/dbusmenu-server.h
+++ /dev/null
@@ -1,386 +0,0 @@
-/* Generated by dbus-binding-tool; do not edit! */
-
-
-#ifndef __dbus_glib_marshal__dbusmenu_server_MARSHAL_H__
-#define __dbus_glib_marshal__dbusmenu_server_MARSHAL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v) g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v) g_value_get_int (v)
-#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
-#define g_marshal_value_peek_long(v) g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
-#define g_marshal_value_peek_float(v) g_value_get_float (v)
-#define g_marshal_value_peek_double(v) g_value_get_double (v)
-#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v) g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v) g_value_get_object (v)
-#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- * Do not access GValues directly in your code. Instead, use the
- * g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
-#define g_marshal_value_peek_char(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v) (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v) (v)->data[0].v_float
-#define g_marshal_value_peek_double(v) (v)->data[0].v_double
-#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* BOOLEAN:INT,STRING,POINTER,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_POINTER_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_POINTER_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__INT_STRING_POINTER_POINTER) (gpointer data1,
- gint arg_1,
- gpointer arg_2,
- gpointer arg_3,
- gpointer arg_4,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__INT_STRING_POINTER_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__INT_STRING_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_string (param_values + 2),
- g_marshal_value_peek_pointer (param_values + 3),
- g_marshal_value_peek_pointer (param_values + 4),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:INT,POINTER,POINTER,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__INT_POINTER_POINTER_POINTER) (gpointer data1,
- gint arg_1,
- gpointer arg_2,
- gpointer arg_3,
- gpointer arg_4,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__INT_POINTER_POINTER_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__INT_POINTER_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_pointer (param_values + 2),
- g_marshal_value_peek_pointer (param_values + 3),
- g_marshal_value_peek_pointer (param_values + 4),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:INT,BOXED,POINTER,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_BOXED_POINTER_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_BOXED_POINTER_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__INT_BOXED_POINTER_POINTER) (gpointer data1,
- gint arg_1,
- gpointer arg_2,
- gpointer arg_3,
- gpointer arg_4,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__INT_BOXED_POINTER_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__INT_BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_boxed (param_values + 2),
- g_marshal_value_peek_pointer (param_values + 3),
- g_marshal_value_peek_pointer (param_values + 4),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:INT,STRING,BOXED,UINT,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_BOXED_UINT_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_BOXED_UINT_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__INT_STRING_BOXED_UINT_POINTER) (gpointer data1,
- gint arg_1,
- gpointer arg_2,
- gpointer arg_3,
- guint arg_4,
- gpointer arg_5,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__INT_STRING_BOXED_UINT_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 6);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__INT_STRING_BOXED_UINT_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_string (param_values + 2),
- g_marshal_value_peek_boxed (param_values + 3),
- g_marshal_value_peek_uint (param_values + 4),
- g_marshal_value_peek_pointer (param_values + 5),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:INT,POINTER,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__INT_POINTER_POINTER) (gpointer data1,
- gint arg_1,
- gpointer arg_2,
- gpointer arg_3,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__INT_POINTER_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 4);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__INT_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_int (param_values + 1),
- g_marshal_value_peek_pointer (param_values + 2),
- g_marshal_value_peek_pointer (param_values + 3),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* BOOLEAN:BOXED,BOXED,POINTER,POINTER */
-extern void dbus_glib_marshal__dbusmenu_server_BOOLEAN__BOXED_BOXED_POINTER_POINTER (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-dbus_glib_marshal__dbusmenu_server_BOOLEAN__BOXED_BOXED_POINTER_POINTER (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER) (gpointer data1,
- gpointer arg_1,
- gpointer arg_2,
- gpointer arg_3,
- gpointer arg_4,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_POINTER_POINTER) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_boxed (param_values + 1),
- g_marshal_value_peek_boxed (param_values + 2),
- g_marshal_value_peek_pointer (param_values + 3),
- g_marshal_value_peek_pointer (param_values + 4),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-G_END_DECLS
-
-#endif /* __dbus_glib_marshal__dbusmenu_server_MARSHAL_H__ */
-
-#include <dbus/dbus-glib.h>
-static const DBusGMethodInfo dbus_glib__dbusmenu_server_methods[] = {
- { (GCallback) _dbusmenu_server_get_layout, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER_POINTER, 0 },
- { (GCallback) _dbusmenu_server_get_group_properties, dbus_glib_marshal__dbusmenu_server_BOOLEAN__BOXED_BOXED_POINTER_POINTER, 79 },
- { (GCallback) _dbusmenu_server_get_children, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_BOXED_POINTER_POINTER, 177 },
- { (GCallback) _dbusmenu_server_get_property, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_POINTER_POINTER, 266 },
- { (GCallback) _dbusmenu_server_get_properties, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_BOXED_POINTER_POINTER, 332 },
- { (GCallback) _dbusmenu_server_event, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_STRING_BOXED_UINT_POINTER, 419 },
- { (GCallback) _dbusmenu_server_about_to_show, dbus_glib_marshal__dbusmenu_server_BOOLEAN__INT_POINTER_POINTER, 491 },
-};
-
-const DBusGObjectInfo dbus_glib__dbusmenu_server_object_info = { 1,
- dbus_glib__dbusmenu_server_methods,
- 7,
-"org.ayatana.dbusmenu\0GetLayout\0S\0parentId\0I\0i\0revision\0O\0F\0N\0u\0layout\0O\0F\0N\0s\0\0org.ayatana.dbusmenu\0GetGroupProperties\0S\0ids\0I\0ai\0propertyNames\0I\0as\0properties\0O\0F\0N\0a(ia{sv})\0\0org.ayatana.dbusmenu\0GetChildren\0S\0id\0I\0i\0propertyNames\0I\0as\0properties\0O\0F\0N\0a(ia{sv})\0\0org.ayatana.dbusmenu\0GetProperty\0S\0id\0I\0i\0name\0I\0s\0value\0O\0F\0N\0v\0\0org.ayatana.dbusmenu\0GetProperties\0S\0id\0I\0i\0propertyNames\0I\0as\0properties\0O\0F\0N\0a{sv}\0\0org.ayatana.dbusmenu\0Event\0S\0id\0I\0i\0eventId\0I\0s\0data\0I\0v\0timestamp\0I\0u\0\0org.ayatana.dbusmenu\0AboutToShow\0S\0id\0I\0i\0needUpdate\0O\0F\0N\0b\0\0\0",
-"org.ayatana.dbusmenu\0ItemPropertyUpdated\0org.ayatana.dbusmenu\0ItemUpdated\0org.ayatana.dbusmenu\0LayoutUpdated\0org.ayatana.dbusmenu\0ItemActivationRequested\0\0",
-"org.ayatana.dbusmenu\0version\0version\0read\0\0"
-};
-
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c
index 1e892c3..827d6c5 100644
--- a/libdbusmenu-glib/menuitem.c
+++ b/libdbusmenu-glib/menuitem.c
@@ -70,6 +70,7 @@ enum {
CHILD_MOVED,
REALIZED,
SHOW_TO_USER,
+ ABOUT_TO_SHOW,
LAST_SIGNAL
};
@@ -229,6 +230,21 @@ dbusmenu_menuitem_class_init (DbusmenuMenuitemClass *klass)
g_cclosure_marshal_VOID__UINT,
G_TYPE_NONE, 1, G_TYPE_UINT, G_TYPE_NONE);
+ /**
+ DbusmenuMenuitem::about-to-show:
+ @arg0: The #DbusmenuMenuitem object.
+
+ Emitted when the submenu for this item
+ is about to be shown
+ */
+ signals[ABOUT_TO_SHOW] = g_signal_new(DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW,
+ G_TYPE_FROM_CLASS(klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(DbusmenuMenuitemClass, about_to_show),
+ NULL, NULL,
+ _dbusmenu_menuitem_marshal_VOID__VOID,
+ G_TYPE_BOOLEAN, 0, G_TYPE_NONE);
+
g_object_class_install_property (object_class, PROP_ID,
g_param_spec_int(PROP_ID_S, "ID for the menu item",
"This is a unique indentifier for the menu item.",
@@ -398,7 +414,8 @@ send_about_to_show (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gp
if (dbusmenu_menuitem_get_children(mi) == NULL) {
g_warning("About to Show called on an item wihtout submenus. We're ignoring it.");
} else {
- g_signal_emit(G_OBJECT(mi), signals[ITEM_ACTIVATED], 0, 0 /* timestamp */, TRUE);
+ gboolean dummy;
+ g_signal_emit(G_OBJECT(mi), signals[ABOUT_TO_SHOW], 0, &dummy);
}
if (cb != NULL) {
diff --git a/libdbusmenu-glib/menuitem.h b/libdbusmenu-glib/menuitem.h
index 9158f3e..a4c7611 100644
--- a/libdbusmenu-glib/menuitem.h
+++ b/libdbusmenu-glib/menuitem.h
@@ -50,6 +50,7 @@ G_BEGIN_DECLS
#define DBUSMENU_MENUITEM_SIGNAL_REALIZED "realized"
#define DBUSMENU_MENUITEM_SIGNAL_REALIZED_ID (g_signal_lookup(DBUSMENU_MENUITEM_SIGNAL_REALIZED, DBUSMENU_TYPE_MENUITEM))
#define DBUSMENU_MENUITEM_SIGNAL_SHOW_TO_USER "show-to-user"
+#define DBUSMENU_MENUITEM_SIGNAL_ABOUT_TO_SHOW "about-to-show"
#define DBUSMENU_MENUITEM_PROP_TYPE "type"
#define DBUSMENU_MENUITEM_PROP_VISIBLE "visible"
@@ -127,6 +128,7 @@ typedef void (*dbusmenu_menuitem_buildxml_slot_t) (DbusmenuMenuitem * mi, GPtrAr
* @child_removed: Slot for #DbusmenuMenuitem::child-removed.
* @child_moved: Slot for #DbusmenuMenuitem::child-moved.
* @realized: Slot for #DbusmenuMenuitem::realized.
+ * @about_to_show: Slot for #DbusmenuMenuitem::about-to-show.
* @buildxml: Virtual function that appends the strings required to represent this menu item in the menu XML file.
* @handle_event: This function is to override how events are handled by subclasses. Look at #dbusmenu_menuitem_handle_event for lots of good information.
* @send_about_to_show: Virtual function that notifies server that the client is about to show a menu.
@@ -158,6 +160,7 @@ struct _DbusmenuMenuitemClass
void (*send_about_to_show) (DbusmenuMenuitem * mi, void (*cb) (DbusmenuMenuitem * mi, gpointer user_data), gpointer cb_data);
void (*show_to_user) (DbusmenuMenuitem * mi, guint timestamp, gpointer cb_data);
+ gboolean (*about_to_show) (void);
/*< Private >*/
void (*reserved1) (void);
diff --git a/libdbusmenu-glib/server.c b/libdbusmenu-glib/server.c
index 8a10715..373cc05 100644
--- a/libdbusmenu-glib/server.c
+++ b/libdbusmenu-glib/server.c
@@ -41,7 +41,7 @@ License version 3 and version 2.1 along with this program. If not, see
static void layout_update_signal (DbusmenuServer * server);
#define DBUSMENU_VERSION_NUMBER 2
-#define DBUSMENU_INTERFACE "org.ayatana.dbusmenu"
+#define DBUSMENU_INTERFACE "com.canonical.dbusmenu"
/* Privates, I'll show you mine... */
struct _DbusmenuServerPrivate
@@ -273,7 +273,7 @@ dbusmenu_server_class_init (DbusmenuServerClass *class)
g_object_class_install_property (object_class, PROP_DBUS_OBJECT,
g_param_spec_string(DBUSMENU_SERVER_PROP_DBUS_OBJECT, "DBus object path",
"The object that represents this set of menus on DBus",
- "/org/ayatana/dbusmenu",
+ "/com/canonical/dbusmenu",
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (object_class, PROP_ROOT_NODE,
g_param_spec_object(DBUSMENU_SERVER_PROP_ROOT_NODE, "Root menu node",
@@ -1079,6 +1079,8 @@ bus_about_to_show (DbusmenuServer * server, GVariant * params, GDBusMethodInvoca
return;
}
+ dbusmenu_menuitem_send_about_to_show(mi, NULL, NULL);
+
/* GTK+ does not support about-to-show concept for now */
g_dbus_method_invocation_return_value(invocation,
g_variant_new("(b)", FALSE));
@@ -1093,7 +1095,7 @@ bus_about_to_show (DbusmenuServer * server, GVariant * params, GDBusMethodInvoca
Creates a new #DbusmenuServer object with a specific object
path on DBus. If @object is set to NULL the default object
- name of "/org/ayatana/dbusmenu" will be used.
+ name of "/com/canonical/dbusmenu" will be used.
Return value: A brand new #DbusmenuServer
*/
@@ -1101,7 +1103,7 @@ DbusmenuServer *
dbusmenu_server_new (const gchar * object)
{
if (object == NULL) {
- object = "/org/ayatana/dbusmenu";
+ object = "/com/canonical/dbusmenu";
}
DbusmenuServer * self = g_object_new(DBUSMENU_TYPE_SERVER,