From 84d8d4f622d398bc7378c0b3594492be2cf858ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Pi=C3=B1eiro?= Date: Thu, 22 Aug 2013 23:15:35 +0200 Subject: [PATCH] a11y: using generic accessible at slider Needed in order to fill the AtkValue implementation using signal callbacks (ala ShellGenericContainer). https://bugzilla.gnome.org/show_bug.cgi?id=648623 --- js/ui/slider.js | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/js/ui/slider.js b/js/ui/slider.js index ab90d61d2..e098846c5 100644 --- a/js/ui/slider.js +++ b/js/ui/slider.js @@ -29,6 +29,17 @@ const Slider = new Lang.Class({ this._releaseId = this._motionId = 0; this._dragging = false; + + this._customAccessible = St.GenericAccessible.new_for_actor(this.actor); + this.actor.set_accessible(this._customAccessible); + + this._customAccessible.connect('get-current-value', Lang.bind(this, this._getCurrentValue)); + this._customAccessible.connect('get-minimum-value', Lang.bind(this, this._getMinimumValue)); + this._customAccessible.connect('get-maximum-value', Lang.bind(this, this._getMaximumValue)); + this._customAccessible.connect('get-minimum-increment', Lang.bind(this, this._getMinimumIncrement)); + this._customAccessible.connect('set-current-value', Lang.bind(this, this._setCurrentValue)); + + this.connect('value-changed', Lang.bind(this, this._valueChanged)); }, setValue: function(value) { @@ -204,6 +215,30 @@ const Slider = new Lang.Class({ this.emit('value-changed', this._value); }, + _getCurrentValue: function (actor) { + return this._value; + }, + + _getMinimumValue: function (actor) { + return 0; + }, + + _getMaximumValue: function (actor) { + return 1; + }, + + _getMinimumIncrement: function (actor) { + return 0.1; + }, + + _setCurrentValue: function (actor, value) { + this._value = value; + }, + + _valueChanged: function (slider, value, property) { + this._customAccessible.notify ("accessible-value"); + }, + get value() { return this._value; }