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 988a8ae..c190cd7 100644
--- a/libindicator/indicator-object.c
+++ b/libindicator/indicator-object.c
@@ -90,6 +90,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;
@@ -215,6 +216,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;
@@ -395,6 +397,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 9ad1366..a2736d3 100644
--- a/libindicator/indicator-object.h
+++ b/libindicator/indicator-object.h
@@ -73,6 +73,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
@@ -99,6 +100,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);
@@ -140,11 +142,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);