diff options
author | Ted Gould <ted@canonical.com> | 2009-05-11 12:12:10 -0500 |
---|---|---|
committer | Ted Gould <ted@canonical.com> | 2009-05-11 12:12:10 -0500 |
commit | 87fea6b9f16b49d3ad1b6801e53fd89f516b2973 (patch) | |
tree | 3f88e6caedc10cb5f0be3ecd386a7ec1c10dbd79 | |
parent | 65e3edf11624283530ba8de1e7c68244b04f9ea6 (diff) | |
download | libdbusmenu-87fea6b9f16b49d3ad1b6801e53fd89f516b2973.tar.gz libdbusmenu-87fea6b9f16b49d3ad1b6801e53fd89f516b2973.tar.bz2 libdbusmenu-87fea6b9f16b49d3ad1b6801e53fd89f516b2973.zip |
Allowing people to take children.
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 21 | ||||
-rw-r--r-- | libdbusmenu-glib/menuitem.h | 1 |
2 files changed, 22 insertions, 0 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c index 2cf4b85..985de95 100644 --- a/libdbusmenu-glib/menuitem.c +++ b/libdbusmenu-glib/menuitem.c @@ -149,6 +149,27 @@ dbusmenu_menuitem_get_children (DbusmenuMenuitem * mi) return priv->children; } +/** + dbusmenu_menuitem_take_children: + @mi: The #DbusmenMenuitem to take the children from. + + While the name sounds devious that's exactly what this function + does. It takes the list of children from the @mi and clears the + internal list. The calling function is no in charge of the ref's + on the children it has taken. A lot of responsibility involved + in taking children. +*/ +GList * +dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi) +{ + g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), NULL); + + DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi); + GList * children = priv->children; + priv->children = NULL; + return children; +} + guint dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent) { diff --git a/libdbusmenu-glib/menuitem.h b/libdbusmenu-glib/menuitem.h index c4057dd..b7d767c 100644 --- a/libdbusmenu-glib/menuitem.h +++ b/libdbusmenu-glib/menuitem.h @@ -48,6 +48,7 @@ DbusmenuMenuitem * dbusmenu_menuitem_new_with_id (guint id); guint dbusmenu_menuitem_get_id (DbusmenuMenuitem * mi); GList * dbusmenu_menuitem_get_children (DbusmenuMenuitem * mi); +GList * dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi); guint dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent); gboolean dbusmenu_menuitem_child_append (DbusmenuMenuitem * mi, DbusmenuMenuitem * child); |