From 3cf118604d0ed973ac4cad4499ac8bed8d000360 Mon Sep 17 00:00:00 2001 From: Luke Yelavich Date: Tue, 22 Feb 2011 11:32:51 +1100 Subject: Add accessible description support --- src/indicator-sound.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/indicator-sound.c') diff --git a/src/indicator-sound.c b/src/indicator-sound.c index 2466550..4980ab8 100644 --- a/src/indicator-sound.c +++ b/src/indicator-sound.c @@ -20,6 +20,7 @@ with this program. If not, see . #include #include #include +#include #include #include #include @@ -66,6 +67,7 @@ G_DEFINE_TYPE (IndicatorSound, indicator_sound, INDICATOR_OBJECT_TYPE); static GtkLabel * get_label (IndicatorObject * io); static GtkImage * get_icon (IndicatorObject * io); static GtkMenu * get_menu (IndicatorObject * io); +static const gchar * get_accessible_desc (IndicatorObject * io); static void indicator_sound_scroll (IndicatorObject* io, gint delta, IndicatorScrollDirection direction); @@ -121,6 +123,7 @@ indicator_sound_class_init (IndicatorSoundClass *klass) io_class->get_label = get_label; io_class->get_image = get_icon; io_class->get_menu = get_menu; + io_class->get_accessible_desc = get_accessible_desc; io_class->scroll = indicator_sound_scroll; } @@ -214,6 +217,19 @@ get_menu (IndicatorObject * io) return GTK_MENU(menu); } +static const gchar * +get_accessible_desc (IndicatorObject * io) +{ + IndicatorSoundPrivate* priv = INDICATOR_SOUND_GET_PRIVATE(io); + + if (priv->volume_widget != NULL){ + return g_strdup_printf(_("Volume (%'.0f%%)"), volume_widget_get_current_volume(priv->volume_widget)); + } + + return NULL; +} + + static void connection_changed (IndicatorServiceManager * sm, gboolean connected, @@ -389,8 +405,8 @@ new_volume_slider_widget(DbusmenuMenuitem * newitem, g_return_val_if_fail(DBUSMENU_IS_MENUITEM(newitem), FALSE); g_return_val_if_fail(DBUSMENU_IS_GTKCLIENT(client), FALSE); - volume_widget = volume_widget_new (newitem); io = g_object_get_data (G_OBJECT (client), "indicator"); + volume_widget = volume_widget_new (newitem, io); IndicatorSoundPrivate* priv = INDICATOR_SOUND_GET_PRIVATE(INDICATOR_SOUND (io)); priv->volume_widget = volume_widget; -- cgit v1.2.3