aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem-proxy.c
diff options
context:
space:
mode:
authorTed Gould <ted@gould.cx>2010-02-09 12:00:14 -0600
committerTed Gould <ted@gould.cx>2010-02-09 12:00:14 -0600
commit106cfac3df317f1244d7d779ed2cb640eb359a6c (patch)
tree9897a4a788861b1129c74733533711ed83130c70 /libdbusmenu-glib/menuitem-proxy.c
parent89fb85dd78c224893ff80498fdf9a57210604a79 (diff)
downloadlibdbusmenu-106cfac3df317f1244d7d779ed2cb640eb359a6c.tar.gz
libdbusmenu-106cfac3df317f1244d7d779ed2cb640eb359a6c.tar.bz2
libdbusmenu-106cfac3df317f1244d7d779ed2cb640eb359a6c.zip
Moving the menuitem association into a set of functions to make a complex operation more clear.
Diffstat (limited to 'libdbusmenu-glib/menuitem-proxy.c')
-rw-r--r--libdbusmenu-glib/menuitem-proxy.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/libdbusmenu-glib/menuitem-proxy.c b/libdbusmenu-glib/menuitem-proxy.c
index 836056e..b50d8a5 100644
--- a/libdbusmenu-glib/menuitem-proxy.c
+++ b/libdbusmenu-glib/menuitem-proxy.c
@@ -45,6 +45,8 @@ static void dbusmenu_menuitem_proxy_init (DbusmenuMenuitemProxy *self);
static void dbusmenu_menuitem_proxy_dispose (GObject *object);
static void dbusmenu_menuitem_proxy_finalize (GObject *object);
static void handle_event (DbusmenuMenuitem * mi, const gchar * name, const GValue * value, guint timestamp);
+static void add_menuitem (DbusmenuMenuitemProxy * pmi, DbusmenuMenuitem * mi);
+static void remove_menuitem (DbusmenuMenuitemProxy * pmi);
G_DEFINE_TYPE (DbusmenuMenuitemProxy, dbusmenu_menuitem_proxy, DBUSMENU_TYPE_MENUITEM);
@@ -79,12 +81,7 @@ dbusmenu_menuitem_proxy_init (DbusmenuMenuitemProxy *self)
static void
dbusmenu_menuitem_proxy_dispose (GObject *object)
{
- DbusmenuMenuitemProxyPrivate * priv = DBUSMENU_MENUITEM_PROXY_GET_PRIVATE(object);
-
- if (priv->mi != NULL) {
- g_object_unref(G_OBJECT(priv->mi));
- priv->mi = NULL;
- }
+ remove_menuitem(DBUSMENU_MENUITEM_PROXY(object));
G_OBJECT_CLASS (dbusmenu_menuitem_proxy_parent_class)->dispose (object);
return;
@@ -109,3 +106,32 @@ handle_event (DbusmenuMenuitem * mi, const gchar * name, const GValue * value, g
g_return_if_fail(priv->mi != NULL);
return dbusmenu_menuitem_handle_event(priv->mi, name, value, timestamp);
}
+
+/* References all of the things we need for talking to this menuitem
+ including signals and other data. If the menuitem already has
+ properties we need to signal that they've changed for us. */
+static void
+add_menuitem (DbusmenuMenuitemProxy * pmi, DbusmenuMenuitem * mi)
+{
+
+ return;
+}
+
+/* Removes the menuitem from being our proxy. Typically this isn't
+ done until this object is destroyed, but who knows?!? */
+static void
+remove_menuitem (DbusmenuMenuitemProxy * pmi)
+{
+ DbusmenuMenuitemProxyPrivate * priv = DBUSMENU_MENUITEM_PROXY_GET_PRIVATE(pmi);
+ if (priv->mi == NULL) {
+ return;
+ }
+
+ /* Remove signals */
+
+ /* Unref */
+ g_object_unref(G_OBJECT(priv->mi));
+ priv->mi = NULL;
+
+ return;
+}