aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-06-23 15:44:29 -0500
committerTed Gould <ted@canonical.com>2009-06-23 15:44:29 -0500
commit6d57a21249c6089514bdaca9b6fe041296adeec3 (patch)
tree4b593f524893616470adfdc4f68f23b7e3d76671
parentde09b3a907fa4ace875dd2446a9217b940ede6b5 (diff)
downloadlibdbusmenu-6d57a21249c6089514bdaca9b6fe041296adeec3.tar.gz
libdbusmenu-6d57a21249c6089514bdaca9b6fe041296adeec3.tar.bz2
libdbusmenu-6d57a21249c6089514bdaca9b6fe041296adeec3.zip
Adding two new signals to the client. 'root-changed' and 'new-menuitem' to make it so that this can go up the stack easier.
-rw-r--r--libdbusmenu-glib/client.c35
-rw-r--r--libdbusmenu-glib/client.h4
2 files changed, 39 insertions, 0 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index d5e4334..f7de67f 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -47,6 +47,8 @@ enum {
/* Signals */
enum {
LAYOUT_UPDATED,
+ ROOT_CHANGED,
+ NEW_MENUITEM,
LAST_SIGNAL
};
@@ -120,6 +122,39 @@ dbusmenu_client_class_init (DbusmenuClientClass *klass)
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0, G_TYPE_NONE);
+ /**
+ DbusmenuClient::root-changed:
+ @arg0: The #DbusmenuClient object
+ @arg1: The new root #DbusmenuMenuitem
+
+ The layout has changed in a way that can not be
+ represented by the individual items changing as the
+ root of this client has changed.
+ */
+ signals[ROOT_CHANGED] = g_signal_new(DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED,
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (DbusmenuClientClass, root_changed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1, G_TYPE_OBJECT);
+ /**
+ DbusmenuClient::new-menuitem:
+ @arg0: The #DbusmenuClient object
+ @arg1: The new #DbusmenuMenuitem created
+
+ Signaled when the client creates a new menuitem. This
+ doesn't mean that it's placed anywhere. The parent that
+ it's applied to will signal #DbusmenuMenuitem::child-added
+ when it gets parented.
+ */
+ signals[NEW_MENUITEM] = g_signal_new(DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM,
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (DbusmenuClientClass, new_menuitem),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1, G_TYPE_OBJECT);
g_object_class_install_property (object_class, PROP_DBUSOBJECT,
g_param_spec_string(DBUSMENU_CLIENT_PROP_DBUS_OBJECT, "DBus Object we represent",
diff --git a/libdbusmenu-glib/client.h b/libdbusmenu-glib/client.h
index d591ebb..35f7122 100644
--- a/libdbusmenu-glib/client.h
+++ b/libdbusmenu-glib/client.h
@@ -44,6 +44,8 @@ G_BEGIN_DECLS
#define DBUSMENU_CLIENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), DBUSMENU_TYPE_CLIENT, DbusmenuClientClass))
#define DBUSMENU_CLIENT_SIGNAL_LAYOUT_UPDATED "layout-updated"
+#define DBUSMENU_CLIENT_SIGNAL_ROOT_CHANGED "root-changed"
+#define DBUSMENU_CLIENT_SIGNAL_NEW_MENUITEM "new-menuitem"
#define DBUSMENU_CLIENT_PROP_DBUS_NAME "dbus-name"
#define DBUSMENU_CLIENT_PROP_DBUS_OBJECT "dbus-object"
@@ -66,6 +68,8 @@ struct _DbusmenuClientClass {
GObjectClass parent_class;
void (*layout_updated)(void);
+ void (*root_changed) (DbusmenuMenuitem * newroot);
+ void (*new_menuitem) (DbusmenuMenuitem * newitem);
/* Reserved for future use */
void (*reserved1) (void);