diff -u -r -N sugar-0.88.1.original/bin/sugar.in sugar-0.88.1/bin/sugar.in --- sugar-0.88.1.original/bin/sugar.in 2010-07-16 13:18:11.155046000 -0300 +++ sugar-0.88.1/bin/sugar.in 2010-07-20 16:57:48.086855582 -0300 @@ -76,7 +76,18 @@ . ~/.sugar/debug fi -echo Xcursor.theme: sugar | xrdb -merge + +# Set cursor theme +gconftool-2 --dir-exists=/desktop/sugar/peripherals/mouse +EXIST_SUGAR_CURSOR_THEME=$(echo $?) +if [[ $EXIST_SUGAR_CURSOR_THEME == 0 ]]; 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 -u -r -N sugar-0.88.1.original/data/gtkrc-contrast.em sugar-0.88.1/data/gtkrc-contrast.em --- sugar-0.88.1.original/data/gtkrc-contrast.em 2010-07-20 16:41:40.709583000 -0300 +++ sugar-0.88.1/data/gtkrc-contrast.em 2010-07-20 16:58:37.329583372 -0300 @@ -6,7 +6,6 @@ }@ 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 -u -r -N sugar-0.88.1.original/data/gtkrc.em sugar-0.88.1/data/gtkrc.em --- sugar-0.88.1.original/data/gtkrc.em 2010-07-16 13:18:08.796049000 -0300 +++ sugar-0.88.1/data/gtkrc.em 2010-07-20 16:58:26.474583041 -0300 @@ -6,7 +6,6 @@ }@ 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 -u -r -N sugar-0.88.1.original/data/sugar-100-contrast.gtkrc sugar-0.88.1/data/sugar-100-contrast.gtkrc --- sugar-0.88.1.original/data/sugar-100-contrast.gtkrc 2010-07-16 13:18:08.653046000 -0300 +++ sugar-0.88.1/data/sugar-100-contrast.gtkrc 2010-07-20 16:59:20.943583646 -0300 @@ -1,6 +1,5 @@ gtk-theme-name = "sugar-100-contrast" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "gtk-large-toolbar=55,55" gtk-cursor-blink-timeout = 3 diff -u -r -N sugar-0.88.1.original/data/sugar-100.gtkrc sugar-0.88.1/data/sugar-100.gtkrc --- sugar-0.88.1.original/data/sugar-100.gtkrc 2010-07-16 13:18:08.656046000 -0300 +++ sugar-0.88.1/data/sugar-100.gtkrc 2010-07-20 16:59:11.507583511 -0300 @@ -1,6 +1,5 @@ gtk-theme-name = "sugar-100" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "gtk-large-toolbar=55,55" gtk-cursor-blink-timeout = 3 diff -u -r -N sugar-0.88.1.original/data/sugar-72-contrast.gtkrc sugar-0.88.1/data/sugar-72-contrast.gtkrc --- sugar-0.88.1.original/data/sugar-72-contrast.gtkrc 2010-07-20 16:45:49.308583000 -0300 +++ sugar-0.88.1/data/sugar-72-contrast.gtkrc 2010-07-20 16:59:00.283833495 -0300 @@ -1,6 +1,5 @@ gtk-theme-name = "sugar-72-contrast" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "gtk-large-toolbar=40,40" gtk-cursor-blink-timeout = 3 diff -u -r -N sugar-0.88.1.original/data/sugar-72.gtkrc sugar-0.88.1/data/sugar-72.gtkrc --- sugar-0.88.1.original/data/sugar-72.gtkrc 2010-07-16 13:18:08.786046000 -0300 +++ sugar-0.88.1/data/sugar-72.gtkrc 2010-07-20 16:58:51.018583194 -0300 @@ -1,6 +1,5 @@ gtk-theme-name = "sugar-72" gtk-icon-theme-name = "sugar" -gtk-cursor-theme-name = "sugar" gtk-toolbar-style = GTK_TOOLBAR_ICONS gtk-icon-sizes = "gtk-large-toolbar=40,40" gtk-cursor-blink-timeout = 3 diff -u -r -N sugar-0.88.1.original/extensions/cpsection/accessibility/model.py sugar-0.88.1/extensions/cpsection/accessibility/model.py --- sugar-0.88.1.original/extensions/cpsection/accessibility/model.py 2010-07-16 13:18:11.600145000 -0300 +++ sugar-0.88.1/extensions/cpsection/accessibility/model.py 2010-07-20 16:57:48.086855582 -0300 @@ -21,8 +21,9 @@ 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 @@ screen.set_contrast(activar) def print_contrast(): - print str(get_contrast()) \ No hay ningún carácter de nueva línea al final del fichero + 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 hay ningún carácter de nueva línea al final del fichero diff -u -r -N sugar-0.88.1.original/extensions/cpsection/accessibility/view.py sugar-0.88.1/extensions/cpsection/accessibility/view.py --- sugar-0.88.1.original/extensions/cpsection/accessibility/view.py 2010-07-20 16:44:14.613583000 -0300 +++ sugar-0.88.1/extensions/cpsection/accessibility/view.py 2010-07-20 16:57:48.087855221 -0300 @@ -57,6 +57,7 @@ self._view_keyboard_options() self._view_screen_options() + self._view_mouse_options() def _view_keyboard_options(self): @@ -98,6 +99,26 @@ 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 @@ 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 @@ 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 @@ 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 hay ningún carácter de nueva línea al final del fichero diff -u -r -N sugar-0.88.1.original/src/jarabe/model/accessibility.py sugar-0.88.1/src/jarabe/model/accessibility.py --- sugar-0.88.1.original/src/jarabe/model/accessibility.py 2010-07-16 13:18:10.506046000 -0300 +++ sugar-0.88.1/src/jarabe/model/accessibility.py 2010-07-20 16:57:48.090583431 -0300 @@ -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 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 @@ 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 @@ if is_accessibility: keyboard = Keyboard() keyboard.run_config_keyboard() + mouse = Mouse() + mouse.run_config_mouse()