From 4ea9b855934afac206a86fb99dafbbc0e75f58db Mon Sep 17 00:00:00 2001 From: Unknown Date: Mon, 1 Nov 2010 18:22:25 +0100 Subject: [PATCH 27/82] accessibility_0004_cp_accessibility_mouse.patch Organization: Sugar Labs Foundation [fixed shell script syntax] Signed-off-by: Sascha Silbe --- bin/sugar.in | 10 +++- data/gtkrc-contrast.em | 1 - data/gtkrc.em | 1 - extensions/cpsection/accessibility/model.py | 23 +++++++- extensions/cpsection/accessibility/view.py | 80 +++++++++++++++++++++++++++ src/jarabe/model/accessibility.py | 50 ++++++++++++++++- 6 files changed, 159 insertions(+), 6 deletions(-) diff --git a/bin/sugar.in b/bin/sugar.in index ed24561..90fbf8f 100644 --- a/bin/sugar.in +++ b/bin/sugar.in @@ -87,7 +87,15 @@ if [ -f ~/.sugar/debug ]; then . ~/.sugar/debug fi -echo Xcursor.theme: sugar | xrdb -merge + +if gconftool-2 --dir-exists=/desktop/sugar/peripherals/mouse ; then + CURSOR_THEME="$(gconftool-2 --get /desktop/sugar/peripherals/mouse/cursor_theme)" +else + CURSOR_THEME="sugar" +fi + + +echo Xcursor.theme: $CURSOR_THEME | xrdb -merge metacity --no-force-fullscreen -d $DISPLAY & exec sugar-session diff --git a/data/gtkrc-contrast.em b/data/gtkrc-contrast.em index dceb103..3ed4717 100644 --- a/data/gtkrc-contrast.em +++ b/data/gtkrc-contrast.em @@ -6,7 +6,6 @@ else: }@ gtk-theme-name = "sugar-@scaling-contrast" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "@icon_sizes" gtk-cursor-blink-timeout = 3 diff --git a/data/gtkrc.em b/data/gtkrc.em index d4e1a7c..4459c42 100644 --- a/data/gtkrc.em +++ b/data/gtkrc.em @@ -6,7 +6,6 @@ else: }@ gtk-theme-name = "sugar-@scaling" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "@icon_sizes" gtk-cursor-blink-timeout = 3 diff --git a/extensions/cpsection/accessibility/model.py b/extensions/cpsection/accessibility/model.py index 8769d24..6e5b154 100644 --- a/extensions/cpsection/accessibility/model.py +++ b/extensions/cpsection/accessibility/model.py @@ -21,8 +21,9 @@ from jarabe.model import accessibility keyboard = accessibility.Keyboard() screen = accessibility.Screen() +mouse = accessibility.Mouse() -KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys', 'contrast'] +KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys', 'contrast', 'white_mouse', 'accel_mouse'] def get_mouse_keys(): return keyboard.get_mouse_keys() @@ -58,4 +59,22 @@ def set_contrast(activar): screen.set_contrast(activar) def print_contrast(): - print str(get_contrast()) \ No newline at end of file + print str(get_contrast()) + +def get_white_mouse(): + return mouse.get_white_mouse() + +def set_white_mouse(activar): + mouse.set_white_mouse(activar) + +def print_white_mouse(): + print str(get_white_mouse()) + +def get_accel_mouse(): + return mouse.get_accel_mouse() + +def set_accel_mouse(valor): + mouse.set_accel_mouse(valor) + +def print_accel_mouse(): + print str(get_accel_mouse()) \ No newline at end of file diff --git a/extensions/cpsection/accessibility/view.py b/extensions/cpsection/accessibility/view.py index bae14dc..23de47e 100644 --- a/extensions/cpsection/accessibility/view.py +++ b/extensions/cpsection/accessibility/view.py @@ -57,6 +57,7 @@ class accessibility(SectionView): self._view_keyboard_options() self._view_screen_options() + self._view_mouse_options() def _view_keyboard_options(self): @@ -98,6 +99,26 @@ class accessibility(SectionView): self._vbox_section.pack_start(self.box_pm_screen, expand=False) self.box_pm_screen.show() + + def _view_mouse_options(self): + separator_pm_mouse = gtk.HSeparator() + self._vbox_section.pack_start(separator_pm_mouse, expand=False) + separator_pm_mouse.show() + + label_pm_mouse = gtk.Label(_('Mouse')) + label_pm_mouse.set_alignment(0, 0) + self._vbox_section.pack_start(label_pm_mouse, expand=False) + label_pm_mouse.show() + + self.box_pm_mouse = gtk.VBox() + self.box_pm_mouse.set_border_width(style.DEFAULT_SPACING * 2) + self.box_pm_mouse.set_spacing(style.DEFAULT_SPACING) + + self._view_white_mouse() + self._view_acceleration_mouse() + + self._vbox_section.pack_start(self.box_pm_mouse, expand=False) + self.box_pm_mouse.show() def _set_mouse_keys(self, widget): state = widget.get_active() @@ -119,6 +140,17 @@ class accessibility(SectionView): self._zone_alert.props.msg = self.restart_msg self._zone_alert.show() + def _set_white_mouse(self, widget): + state = widget.get_active() + self._model.set_white_mouse(state) + self.restart_alerts.append('zone') + self.needs_restart = True + self._zone_alert.props.msg = self.restart_msg + self._zone_alert.show() + + def cb_digits_scale_accel_mouse(self, adj): + self._model.set_accel_mouse(adj.value) + def undo(self): self._model.set_mouse_keys(self.init_state_mouse_keys) self._model.set_sticky_keys(self.init_state_sticky_keys) @@ -126,6 +158,12 @@ class accessibility(SectionView): self._model.set_contrast(self.init_state_contrast) self.btn_contrast.set_active(self.init_state_contrast) + + self._model.set_white_mouse(self.init_state_white_mouse) + self.btn_white_mouse.set_active(self.init_state_white_mouse) + + self.adj_accel_mouse.set_value(self.init_state_accel_mouse) + self.needs_restart = False self._zone_alert.hide() @@ -186,3 +224,45 @@ class accessibility(SectionView): lbl_contrast.set_alignment(0, 0) self.box_pm_screen.pack_start(lbl_contrast, True, True, 2) lbl_contrast.show() + + def _view_white_mouse(self): + self.btn_white_mouse = gtk.CheckButton(_('White Mouse')) + self._white_mouse_pm_change_handler = self.btn_white_mouse.connect("toggled", self._set_white_mouse) + self.init_state_white_mouse = self._model.get_white_mouse() + if self.init_state_white_mouse: + self.btn_white_mouse.handler_block(self._white_mouse_pm_change_handler) + self.btn_white_mouse.set_active(True) + self.btn_white_mouse.handler_unblock(self._white_mouse_pm_change_handler) + else: + self.btn_white_mouse.set_active(False) + self.box_pm_mouse.pack_start(self.btn_white_mouse, True, True, 2) + self.btn_white_mouse.show() + + lbl_white_mouse = gtk.Label(_('Show the mouse cursor white.')) + lbl_white_mouse.set_alignment(0, 0) + self.box_pm_mouse.pack_start(lbl_white_mouse, True, True, 2) + lbl_white_mouse.show() + + def _view_acceleration_mouse(self): + box_accel_mouse = gtk.HBox(False, 0) + box_accel_mouse.set_border_width(0) + lbl_accel_mouse = gtk.Label(_('Acceleration: ')) + lbl_accel_mouse.show() + box_accel_mouse.pack_start(lbl_accel_mouse, False, False, 0) + + self.init_state_accel_mouse = self._model.get_accel_mouse(); + self.adj_accel_mouse = gtk.Adjustment(self.init_state_accel_mouse, 0.0, 5.0, 1.0, 1.0, 0.0) + self.adj_accel_mouse.connect("value_changed", self.cb_digits_scale_accel_mouse) + self.scale_accel_mouse = gtk.HScale(self.adj_accel_mouse) + self.scale_accel_mouse.set_digits(0) + self.scale_accel_mouse.show() + + box_accel_mouse.pack_start(self.scale_accel_mouse, True, True, 0) + box_accel_mouse.show() + + self.box_pm_mouse.pack_start(box_accel_mouse, True, True, 2) + + desc_accel_mouse = gtk.Label(_('Controller acceleration mouse.')) + desc_accel_mouse.set_alignment(0, 0) + self.box_pm_mouse.pack_start(desc_accel_mouse, True, True, 2) + desc_accel_mouse.show() \ No newline at end of file diff --git a/src/jarabe/model/accessibility.py b/src/jarabe/model/accessibility.py index 0324495..c06f5c0 100644 --- a/src/jarabe/model/accessibility.py +++ b/src/jarabe/model/accessibility.py @@ -17,6 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import gtk import subprocess import gconf @@ -67,8 +68,10 @@ class Keyboard: class Screen: - CONTRAST_THEME="sugar-contrast" DEFAULT_THEME="sugar" + DEFAULT_FONT_SIZE=7 + CONTRAST_THEME="sugar-contrast" + CONTRAST_FONT_SIZE=9.5 def get_contrast(self): client = gconf.client_get_default() @@ -79,9 +82,52 @@ class Screen: client = gconf.client_get_default() if (activar): client.set_string("/desktop/sugar/interface/gtk_theme", self.CONTRAST_THEME) + client.set_float('/desktop/sugar/font/default_size', self.CONTRAST_FONT_SIZE) else: client.set_string("/desktop/sugar/interface/gtk_theme", self.DEFAULT_THEME) + client.set_float('/desktop/sugar/font/default_size', self.DEFAULT_FONT_SIZE) + +class Mouse: + + WHITE_CURSOR_THEME="FlatbedCursors.White.Huge" + DEFAULT_CURSOR_THEME="sugar" + + def get_white_mouse(self): + client = gconf.client_get_default() + value = client.get_string("/desktop/sugar/peripherals/mouse/cursor_theme") + return value==self.WHITE_CURSOR_THEME + + def set_white_mouse(self, activar): + client = gconf.client_get_default() + if (activar): + client.set_string("/desktop/sugar/peripherals/mouse/cursor_theme", self.WHITE_CURSOR_THEME) + else: + client.set_string("/desktop/sugar/peripherals/mouse/cursor_theme", self.DEFAULT_CURSOR_THEME) + + def _set_white_mouse_setting(self): + cursor_theme = self.DEFAULT_CURSOR_THEME + if (self.get_white_mouse()): + cursor_theme = self.WHITE_CURSOR_THEME + settings = gtk.settings_get_default() + settings.set_property("gtk-cursor-theme-name", "%s" % (cursor_theme)) + + def get_accel_mouse(self): + client = gconf.client_get_default() + value = client.get_float("/desktop/sugar/peripherals/mouse/motion_acceleration") + return value + + def set_accel_mouse(self, value): + client = gconf.client_get_default() + client.set_float("/desktop/sugar/peripherals/mouse/motion_acceleration", value) + self.run_config_mouse() + + def _set_accel_mouse_setting(self): + cmd = ['xset', 'm' , str(self.get_accel_mouse())] + subprocess.call(cmd) + def run_config_mouse(self): + self._set_accel_mouse_setting() + self._set_white_mouse_setting() class AccessibilityManager: def setup_accessibility(self): @@ -90,3 +136,5 @@ class AccessibilityManager: if is_accessibility: keyboard = Keyboard() keyboard.run_config_keyboard() + mouse = Mouse() + mouse.run_config_mouse() -- 1.7.4.4