aboutsummaryrefslogtreecommitdiff
path: root/libdbusmenu-glib/menuitem.h
diff options
context:
space:
mode:
Diffstat (limited to 'libdbusmenu-glib/menuitem.h')
-rw-r--r--libdbusmenu-glib/menuitem.h53
1 files changed, 33 insertions, 20 deletions
diff --git a/libdbusmenu-glib/menuitem.h b/libdbusmenu-glib/menuitem.h
index a604e7a..c4fcf73 100644
--- a/libdbusmenu-glib/menuitem.h
+++ b/libdbusmenu-glib/menuitem.h
@@ -44,11 +44,31 @@ G_BEGIN_DECLS
#define DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED "property-changed"
#define DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED "item-activated"
+#define DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED "child-added"
+#define DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED "child-removed"
+
+/**
+ DbusmenuMenuitem:
+
+ This is the #GObject based object that represents a menu
+ item. It gets created the same on both the client and
+ the server side and libdbusmenu-glib does the work of making
+ this object model appear on both sides of DBus. Simple
+ really, though through updates and people coming on and off
+ the bus it can lead to lots of fun complex scenarios.
+*/
+typedef struct _DbusmenuMenuitem DbusmenuMenuitem;
+struct _DbusmenuMenuitem
+{
+ GObject parent;
+};
/**
DbusmenuMenuitemClass:
@property_changed: Slot for #DbusmenuMenuitem::property-changed.
@item_activated: Slot for #DbusmenuMenuitem::item-activated.
+ @child_added: Slot for #DbusmenuMenuitem::child-added.
+ @child_removed: Slot for #DbusmenuMenuitem::child-removed.
@buildxml: Virtual function that appends the strings required
to represent this menu item in the menu XML file.
@reserved1: Reserved for future use.
@@ -62,8 +82,10 @@ struct _DbusmenuMenuitemClass
GObjectClass parent_class;
/* Signals */
- void (*property_changed) (gchar * property);
+ void (*property_changed) (gchar * property, gchar * value);
void (*item_activated) (void);
+ void (*child_added) (DbusmenuMenuitem * child);
+ void (*child_removed) (DbusmenuMenuitem * child);
/* Virtual functions */
void (*buildxml) (GPtrArray * stringarray);
@@ -74,42 +96,33 @@ struct _DbusmenuMenuitemClass
void (*reserved4) (void);
};
-/**
- DbusmenuMenuitem:
-
- This is the #GObject based object that represents a menu
- item. It gets created the same on both the client and
- the server side and libdbusmenu-glib does the work of making
- this object model appear on both sides of DBus. Simple
- really, though through updates and people coming on and off
- the bus it can lead to lots of fun complex scenarios.
-*/
-typedef struct _DbusmenuMenuitem DbusmenuMenuitem;
-struct _DbusmenuMenuitem
-{
- GObject parent;
-};
-
GType dbusmenu_menuitem_get_type (void);
-DbusmenuMenuitem * dbusmenu_menuitem_new (void);
-DbusmenuMenuitem * dbusmenu_menuitem_new_with_id (guint id);
+DbusmenuMenuitem * dbusmenu_menuitem_new (void) G_GNUC_WARN_UNUSED_RESULT;
+DbusmenuMenuitem * dbusmenu_menuitem_new_with_id (guint id) G_GNUC_WARN_UNUSED_RESULT;
guint dbusmenu_menuitem_get_id (DbusmenuMenuitem * mi);
GList * dbusmenu_menuitem_get_children (DbusmenuMenuitem * mi);
-GList * dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi);
+GList * dbusmenu_menuitem_take_children (DbusmenuMenuitem * mi) G_GNUC_WARN_UNUSED_RESULT;
guint dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent);
gboolean dbusmenu_menuitem_child_append (DbusmenuMenuitem * mi, DbusmenuMenuitem * child);
+gboolean dbusmenu_menuitem_child_prepend (DbusmenuMenuitem * mi, DbusmenuMenuitem * child);
gboolean dbusmenu_menuitem_child_delete (DbusmenuMenuitem * mi, DbusmenuMenuitem * child);
gboolean dbusmenu_menuitem_child_add_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * child, guint position);
+gboolean dbusmenu_menuitem_child_reorder (DbusmenuMenuitem * mi, DbusmenuMenuitem * child, guint position);
DbusmenuMenuitem * dbusmenu_menuitem_child_find (DbusmenuMenuitem * mi, guint id);
+DbusmenuMenuitem * dbusmenu_menuitem_find_id (DbusmenuMenuitem * mi, guint id);
gboolean dbusmenu_menuitem_property_set (DbusmenuMenuitem * mi, const gchar * property, const gchar * value);
const gchar * dbusmenu_menuitem_property_get (DbusmenuMenuitem * mi, const gchar * property);
gboolean dbusmenu_menuitem_property_exist (DbusmenuMenuitem * mi, const gchar * property);
+GList * dbusmenu_menuitem_properties_list (DbusmenuMenuitem * mi) G_GNUC_WARN_UNUSED_RESULT;
+GHashTable * dbusmenu_menuitem_properties_copy (DbusmenuMenuitem * mi);
void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array);
+void dbusmenu_menuitem_foreach (DbusmenuMenuitem * mi, void (*func) (DbusmenuMenuitem * mi, gpointer data), gpointer data);
+void dbusmenu_menuitem_activate (DbusmenuMenuitem * mi);
/**
SECTION:menuitem