aboutsummaryrefslogtreecommitdiff
path: root/src/indicator-sound.c
diff options
context:
space:
mode:
authorLuke Yelavich <luke.yelavich@canonical.com>2011-02-22 11:32:51 +1100
committerLuke Yelavich <luke.yelavich@canonical.com>2011-02-22 11:32:51 +1100
commit3cf118604d0ed973ac4cad4499ac8bed8d000360 (patch)
tree4e1e31d13c1ac538beff9c0f46059dc8fb2955a1 /src/indicator-sound.c
parentfec38bea8091cc778bdbb236ed4c854b9cdcb34d (diff)
downloadayatana-indicator-sound-3cf118604d0ed973ac4cad4499ac8bed8d000360.tar.gz
ayatana-indicator-sound-3cf118604d0ed973ac4cad4499ac8bed8d000360.tar.bz2
ayatana-indicator-sound-3cf118604d0ed973ac4cad4499ac8bed8d000360.zip
Add accessible description support
Diffstat (limited to 'src/indicator-sound.c')
-rw-r--r--src/indicator-sound.c18
1 files changed, 17 insertions, 1 deletions
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 <http://www.gnu.org/licenses/>.
#include <math.h>
#include <glib.h>
#include <glib-object.h>
+#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
#include <libdbusmenu-gtk/menu.h>
@@ -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;