aboutsummaryrefslogtreecommitdiff
path: root/libindicator/indicator-object.h
diff options
context:
space:
mode:
Diffstat (limited to 'libindicator/indicator-object.h')
-rw-r--r--libindicator/indicator-object.h76
1 files changed, 69 insertions, 7 deletions
diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h
index 1d2a065..c100d02 100644
--- a/libindicator/indicator-object.h
+++ b/libindicator/indicator-object.h
@@ -36,25 +36,87 @@ G_BEGIN_DECLS
#define INDICATOR_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), INDICATOR_OBJECT_TYPE))
#define INDICATOR_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), INDICATOR_OBJECT_TYPE, IndicatorObjectClass))
-typedef struct _IndicatorObject IndicatorObject;
-typedef struct _IndicatorObjectClass IndicatorObjectClass;
-
+#define INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED "entry-added"
+#define INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED_ID (g_signal_lookup(INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED, INDICATOR_OBJECT_TYPE))
+#define INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED "entry-removed"
+#define INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED_ID (g_signal_lookup(INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED, INDICATOR_OBJECT_TYPE))
+
+typedef struct _IndicatorObject IndicatorObject;
+typedef struct _IndicatorObjectClass IndicatorObjectClass;
+typedef struct _IndicatorObjectPrivate IndicatorObjectPrivate;
+typedef struct _IndicatorObjectEntry IndicatorObjectEntry;
+
+/**
+ IndicatorObjectClass:
+ @parent_class: #GObjectClass
+ @get_label: Gets the label for this object. Should be set
+ to #NULL if @get_entries is set. Should NOT ref the
+ object.
+ @get_image: Gets the image for this object. Should be set
+ to #NULL if @get_entries is set. Should NOT ref the
+ object.
+ @get_menu: Gets the image for this object. Should be set
+ to #NULL if @get_entries is set. Should NOT ref the
+ object.
+ @get_entries: Gets all of the entires for this object returning
+ a #GList of #IndicatorObjectEntries. The list should be
+ under the ownership of the caller but the entires will
+ not be.
+ @entry_added: Slot for #IndicatorObject::entry-added
+ @entry_removed: Slot for #IndicatorObject::entry-removed
+ @indicator_object_reserved_1: Reserved for future use
+ @indicator_object_reserved_2: Reserved for future use
+ @indicator_object_reserved_3: Reserved for future use
+ @indicator_object_reserved_4: Reserved for future use
+*/
struct _IndicatorObjectClass {
GObjectClass parent_class;
-
+
+ /* Virtual Functions */
+ GtkLabel * (*get_label) (IndicatorObject * io);
+ GtkImage * (*get_image) (IndicatorObject * io);
+ GtkMenu * (*get_menu) (IndicatorObject * io);
+
+ GList * (*get_entries) (IndicatorObject * io);
+
+ /* Signals */
+ void (*entry_added) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data);
+ void (*entry_removed) (IndicatorObject * io, IndicatorObjectEntry * entry, gpointer user_data);
+
+ /* Reserved */
+ void (* indicator_object_reserved_1) (void);
+ void (* indicator_object_reserved_2) (void);
+ void (* indicator_object_reserved_3) (void);
+ void (* indicator_object_reserved_4) (void);
};
+/**
+ IndicatorObject:
+ @parent: #GObject
+ @priv: A cached reference to the private data for the
+ instance.
+*/
struct _IndicatorObject {
GObject parent;
+ IndicatorObjectPrivate * priv;
+};
+/**
+ IndicatorObjectEntry:
+ @label: The label to be shown on the panel
+ @image: The image to be shown on the panel
+ @menu: The menu to be added to the menubar
+*/
+struct _IndicatorObjectEntry {
+ GtkLabel * label;
+ GtkImage * image;
+ GtkMenu * menu;
};
GType indicator_object_get_type (void);
IndicatorObject * indicator_object_new_from_file (const gchar * file);
-GtkLabel * indicator_object_get_label (IndicatorObject * io);
-GtkImage * indicator_object_get_icon (IndicatorObject * io);
-GtkMenu * indicator_object_get_menu (IndicatorObject * io);
+GList * indicator_object_get_entries (IndicatorObject * io);
G_END_DECLS