diff options
author | Ted Gould <ted@gould.cx> | 2010-11-11 21:07:35 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-11-11 21:07:35 -0600 |
commit | 5a29eceb8e560ce4319924094dcdbc6d157153c8 (patch) | |
tree | bf6500919a106a2eb2b5e1f4144dbfbf9e6f0588 /src | |
parent | 9f0ec1f915156311d8de7a629782252a4bce6e41 (diff) | |
parent | 8b57d12c54ec1befb09711439e40eac7ed93dbcd (diff) | |
download | libayatana-appindicator-5a29eceb8e560ce4319924094dcdbc6d157153c8.tar.gz libayatana-appindicator-5a29eceb8e560ce4319924094dcdbc6d157153c8.tar.bz2 libayatana-appindicator-5a29eceb8e560ce4319924094dcdbc6d157153c8.zip |
Adding a property for getting the dbusmenu server
Diffstat (limited to 'src')
-rw-r--r-- | src/app-indicator.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/app-indicator.c b/src/app-indicator.c index dc88e9b..318a056 100644 --- a/src/app-indicator.c +++ b/src/app-indicator.c @@ -34,6 +34,7 @@ License version 3 and version 2.1 along with this program. If not, see #include <dbus/dbus-glib.h> #include <dbus/dbus-glib-bindings.h> +#include <libdbusmenu-glib/menuitem.h> #include <libdbusmenu-glib/server.h> #include <libdbusmenu-gtk/client.h> @@ -123,7 +124,8 @@ enum { PROP_X_LABEL, PROP_X_LABEL_GUIDE, PROP_ORDERING_INDEX, - PROP_X_ORDERING_INDEX + PROP_X_ORDERING_INDEX, + PROP_DBUS_MENU_SERVER }; /* The strings so that they can be slowly looked up. */ @@ -141,6 +143,7 @@ enum { #define PROP_X_LABEL_GUIDE_S ("x-ayatana-" PROP_LABEL_GUIDE_S) #define PROP_ORDERING_INDEX_S "ordering-index" #define PROP_X_ORDERING_INDEX_S ("x-ayatana-" PROP_ORDERING_INDEX_S) +#define PROP_DBUS_MENU_SERVER_S "dbus-menu-server" /* Private macro, shhhh! */ #define APP_INDICATOR_GET_PRIVATE(o) \ @@ -408,6 +411,19 @@ app_indicator_class_init (AppIndicatorClass *klass) "A wrapper, please don't use.", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + AppIndicator:dbus-menu-server: + + A way to get the internal dbusmenu server if it is available. + This should only be used for testing. + */ + g_object_class_install_property(object_class, + PROP_DBUS_MENU_SERVER, + g_param_spec_object (PROP_DBUS_MENU_SERVER_S, + "The internal DBusmenu Server", + "DBusmenu server which is available for testing the application indicators.", + DBUSMENU_TYPE_SERVER, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /* Signals */ @@ -796,6 +812,14 @@ app_indicator_set_property (GObject * object, guint prop_id, const GValue * valu priv->ordering_index = g_value_get_uint(value); break; + case PROP_DBUS_MENU_SERVER: + if (priv->menuservice != NULL) { + g_object_unref (priv->menuservice); + } + gpointer val = g_value_dup_object(value); + priv->menuservice = DBUSMENU_SERVER(val); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -868,6 +892,10 @@ app_indicator_get_property (GObject * object, guint prop_id, GValue * value, GPa g_value_set_uint(value, priv->ordering_index); break; + case PROP_DBUS_MENU_SERVER: + g_value_set_object(value, priv->menuservice); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; |