diff options
Diffstat (limited to 'libdbusmenu-glib')
-rw-r--r-- | libdbusmenu-glib/menuitem.c | 101 |
1 files changed, 94 insertions, 7 deletions
diff --git a/libdbusmenu-glib/menuitem.c b/libdbusmenu-glib/menuitem.c index c57acaa..5d22b32 100644 --- a/libdbusmenu-glib/menuitem.c +++ b/libdbusmenu-glib/menuitem.c @@ -3,46 +3,133 @@ #endif #include "menuitem.h" +/* Private */ typedef struct _DbusmenuMenuitemPrivate DbusmenuMenuitemPrivate; - struct _DbusmenuMenuitemPrivate { + GList * children; }; #define DBUSMENU_MENUITEM_GET_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), DBUSMENU_TYPE_MENUITEM, DbusmenuMenuitemPrivate)) +/* Prototypes */ static void dbusmenu_menuitem_class_init (DbusmenuMenuitemClass *klass); static void dbusmenu_menuitem_init (DbusmenuMenuitem *self); static void dbusmenu_menuitem_dispose (GObject *object); static void dbusmenu_menuitem_finalize (GObject *object); +/* GObject stuff */ G_DEFINE_TYPE (DbusmenuMenuitem, dbusmenu_menuitem, G_TYPE_OBJECT); static void dbusmenu_menuitem_class_init (DbusmenuMenuitemClass *klass) { -GObjectClass *object_class = G_OBJECT_CLASS (klass); + GObjectClass *object_class = G_OBJECT_CLASS (klass); -g_type_class_add_private (klass, sizeof (DbusmenuMenuitemPrivate)); + g_type_class_add_private (klass, sizeof (DbusmenuMenuitemPrivate)); -object_class->dispose = dbusmenu_menuitem_dispose; -object_class->finalize = dbusmenu_menuitem_finalize; + object_class->dispose = dbusmenu_menuitem_dispose; + object_class->finalize = dbusmenu_menuitem_finalize; } static void dbusmenu_menuitem_init (DbusmenuMenuitem *self) { + return; } static void dbusmenu_menuitem_dispose (GObject *object) { -G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->dispose (object); + + G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->dispose (object); + return; } static void dbusmenu_menuitem_finalize (GObject *object) { -G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->finalize (object); + + G_OBJECT_CLASS (dbusmenu_menuitem_parent_class)->finalize (object); + return; +} + +/* Public interface */ +GList * +dbusmenu_menuitem_get_children (DbusmenuMenuitem * mi) +{ + g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), NULL); + + DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi); + return priv->children; +} + +guint +dbusmenu_menuitem_get_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * parent) +{ + /* TODO: I'm not too happy returning zeros here. But that's all I've got */ + g_return_val_if_fail(DBUSMENU_IS_MENUITEM(mi), 0); + g_return_val_if_fail(DBUSMENU_IS_MENUITEM(parent), 0); + + GList * childs = dbusmenu_menuitem_get_children(parent); + guint count = 0; + for ( ; childs != NULL; childs = childs->next) { + if (childs->data == mi) break; + } + + if (childs == NULL) return 0; + + return count; +} + +gboolean +dbusmenu_menuitem_child_append (DbusmenuMenuitem * mi, DbusmenuMenuitem * child) +{ + + return FALSE; } + +gboolean +dbusmenu_menuitem_child_delete (DbusmenuMenuitem * mi, DbusmenuMenuitem * child) +{ + + return FALSE; +} + +gboolean +dbusmenu_menuitem_child_add_position (DbusmenuMenuitem * mi, DbusmenuMenuitem * child, guint position) +{ + + + return FALSE; +} + +gboolean +dbusmenu_menuitem_property_set (DbusmenuMenuitem * mi, const gchar * property, const gchar * value) +{ + + return FALSE; +} + +const gchar * +dbusmenu_menuitem_property_get (DbusmenuMenuitem * mi, const gchar * property) +{ + + return NULL; +} + +gboolean +dbusmenu_menuitem_property_exist (DbusmenuMenuitem * mi, const gchar * property) +{ + + return FALSE; +} + +void +dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray ** array) +{ + + return; +} + |