aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib
diff options
context:
space:
mode:
authorTed Gould <ted@canonical.com>2009-04-27 15:28:29 -0500
committerTed Gould <ted@canonical.com>2009-04-27 15:28:29 -0500
commit65273b8464d57c4792c144b080174ba0e48a41e1 (patch)
tree7cd04eab4b40cf3a17883c9aa8967f208ad4e670 /libdbusmenu-glib
parent60f782f81da8eafc9fed93046a51ba8371a58595 (diff)
downloadlibdbusmenu-65273b8464d57c4792c144b080174ba0e48a41e1.tar.gz
libdbusmenu-65273b8464d57c4792c144b080174ba0e48a41e1.tar.bz2
libdbusmenu-65273b8464d57c4792c144b080174ba0e48a41e1.zip
Addign in the get and set properties.
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r--libdbusmenu-glib/client.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/libdbusmenu-glib/client.c b/libdbusmenu-glib/client.c
index dab07a6..a88d8e8 100644
--- a/libdbusmenu-glib/client.c
+++ b/libdbusmenu-glib/client.c
@@ -29,13 +29,17 @@ struct _DbusmenuClientPrivate
#define DBUSMENU_CLIENT_GET_PRIVATE(o) \
(G_TYPE_INSTANCE_GET_PRIVATE ((o), DBUSMENU_TYPE_CLIENT, DbusmenuClientPrivate))
+/* GObject Stuff */
static void dbusmenu_client_class_init (DbusmenuClientClass *klass);
static void dbusmenu_client_init (DbusmenuClient *self);
static void dbusmenu_client_dispose (GObject *object);
static void dbusmenu_client_finalize (GObject *object);
static void set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec);
static void get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec);
+/* Private Funcs */
+static void build_proxies (DbusmenuClient * client);
+/* Build a type */
G_DEFINE_TYPE (DbusmenuClient, dbusmenu_client, G_TYPE_OBJECT);
static void
@@ -98,6 +102,25 @@ dbusmenu_client_finalize (GObject *object)
static void
set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec)
{
+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(obj);
+
+ switch (id) {
+ case PROP_DBUSNAME:
+ priv->dbus_name = g_value_dup_string(value);
+ if (priv->dbus_name != NULL && priv->dbus_object != NULL) {
+ build_proxies(DBUSMENU_CLIENT(obj));
+ }
+ break;
+ case PROP_DBUSOBJECT:
+ priv->dbus_object = g_value_dup_string(value);
+ if (priv->dbus_name != NULL && priv->dbus_object != NULL) {
+ build_proxies(DBUSMENU_CLIENT(obj));
+ }
+ break;
+ default:
+ g_warning("Unknown property %d.", id);
+ return;
+ }
return;
}
@@ -105,6 +128,19 @@ set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec)
static void
get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec)
{
+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(obj);
+
+ switch (id) {
+ case PROP_DBUSNAME:
+ g_value_set_string(value, priv->dbus_name);
+ break;
+ case PROP_DBUSOBJECT:
+ g_value_set_string(value, priv->dbus_object);
+ break;
+ default:
+ g_warning("Unknown property %d.", id);
+ return;
+ }
return;
}
@@ -133,7 +169,7 @@ update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data)
static void
update_layout (DbusmenuClient * client)
{
-
+ update_layout_cb(NULL, NULL, NULL);
}
@@ -142,6 +178,7 @@ DbusmenuClient *
dbusmenu_client_new (const gchar * name, const gchar * object)
{
DbusmenuClient * self = g_object_new(DBUSMENU_TYPE_CLIENT, "name", name, "object", object, NULL);
+ update_layout(self);
return self;
}