aboutsummaryrefslogtreecommitdiff
path: root/libindicator
diff options
context:
space:
mode:
Diffstat (limited to 'libindicator')
-rw-r--r--libindicator/indicator-object.c10
-rw-r--r--libindicator/indicator-object.h5
2 files changed, 15 insertions, 0 deletions
diff --git a/libindicator/indicator-object.c b/libindicator/indicator-object.c
index 95ab08a..58952d7 100644
--- a/libindicator/indicator-object.c
+++ b/libindicator/indicator-object.c
@@ -91,6 +91,7 @@ indicator_object_class_init (IndicatorObjectClass *klass)
klass->get_label = NULL;
klass->get_menu = NULL;
klass->get_image = NULL;
+ klass->get_accessible_name = NULL;
klass->get_entries = get_entries_default;
klass->get_location = NULL;
@@ -236,6 +237,7 @@ indicator_object_init (IndicatorObject *self)
self->priv->entry.menu = NULL;
self->priv->entry.label = NULL;
self->priv->entry.image = NULL;
+ self->priv->entry.accessible_name = NULL;
self->priv->gotten_entries = FALSE;
@@ -416,6 +418,14 @@ get_entries_default (IndicatorObject * io)
return NULL;
}
+ if (class->get_accessible_name) {
+ priv->entry.accessible_name = class->get_accessible_name(io);
+ }
+
+ if (priv->entry.accessible_name == NULL) {
+ g_warning("IndicatorObject class does not have an accessible name.");
+ }
+
priv->gotten_entries = TRUE;
}
diff --git a/libindicator/indicator-object.h b/libindicator/indicator-object.h
index 4b3ce0b..ea303f8 100644
--- a/libindicator/indicator-object.h
+++ b/libindicator/indicator-object.h
@@ -75,6 +75,7 @@ typedef struct _IndicatorObjectEntry IndicatorObjectEntry;
@get_menu: Gets the image for this object. Should be set
to #NULL if @get_entries is set. Should NOT ref the
object.
+ @get_accessible_name: Gets the accessible name for this 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
@@ -101,6 +102,7 @@ struct _IndicatorObjectClass {
GtkLabel * (*get_label) (IndicatorObject * io);
GtkImage * (*get_image) (IndicatorObject * io);
GtkMenu * (*get_menu) (IndicatorObject * io);
+ gchar * (*get_accessible_name) (IndicatorObject * io);
GList * (*get_entries) (IndicatorObject * io);
guint (*get_location) (IndicatorObject * io, IndicatorObjectEntry * entry);
@@ -142,11 +144,14 @@ struct _IndicatorObject {
@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
+ @accessible_name: The accessible name of the
+ indicator
*/
struct _IndicatorObjectEntry {
GtkLabel * label;
GtkImage * image;
GtkMenu * menu;
+ gchar * accessible_name;
};
GType indicator_object_get_type (void);