diff options
Diffstat (limited to 'rpms/sugar/0026-accessibility_0003_cp_accessibility_contrast.patch.patch')
-rw-r--r-- | rpms/sugar/0026-accessibility_0003_cp_accessibility_contrast.patch.patch | 429 |
1 files changed, 429 insertions, 0 deletions
diff --git a/rpms/sugar/0026-accessibility_0003_cp_accessibility_contrast.patch.patch b/rpms/sugar/0026-accessibility_0003_cp_accessibility_contrast.patch.patch new file mode 100644 index 0000000..7659473 --- /dev/null +++ b/rpms/sugar/0026-accessibility_0003_cp_accessibility_contrast.patch.patch @@ -0,0 +1,429 @@ +From 5e5effd135a455a3d18c02dc8c24248497a7cf57 Mon Sep 17 00:00:00 2001 +From: Unknown <unknown@unknown.org> +Date: Mon, 1 Nov 2010 18:20:13 +0100 +Subject: [PATCH sugar 26/74] accessibility_0003_cp_accessibility_contrast.patch + +[fix shell syntax] +Signed-off-by: Sascha Silbe <sascha-pgp@silbe.org> +--- + bin/sugar.in | 13 +++- + data/Makefile.am | 14 +++- + data/gtkrc-contrast.em | 12 +++ + extensions/cpsection/accessibility/model.py | 16 +++- + extensions/cpsection/accessibility/view.py | 116 ++++++++++++++++++++++----- + src/jarabe/controlpanel/gui.py | 3 +- + src/jarabe/desktop/activitieslist.py | 3 +- + src/jarabe/desktop/favoritesview.py | 5 +- + src/jarabe/model/accessibility.py | 20 ++++- + 9 files changed, 167 insertions(+), 35 deletions(-) + create mode 100644 data/gtkrc-contrast.em + +diff --git a/bin/sugar.in b/bin/sugar.in +index d6295bf..ed24561 100644 +--- a/bin/sugar.in ++++ b/bin/sugar.in +@@ -45,7 +45,18 @@ if test -z "$SUGAR_SCALING"; then + export SUGAR_SCALING=100 + fi + +-export GTK2_RC_FILES="@prefix@/share/sugar/data/sugar-$SUGAR_SCALING.gtkrc" ++if gconftool-2 --dir-exists=/desktop/sugar/interface ; then ++ THEME="$(gconftool-2 --get /desktop/sugar/interface/gtk_theme)" ++ if [ "$THEME" = 'sugar-contrast' ]; then ++ GTK2_THEME="sugar-$SUGAR_SCALING-contrast" ++ else ++ GTK2_THEME="sugar-$SUGAR_SCALING" ++ fi ++else ++ GTK2_THEME="sugar-$SUGAR_SCALING" ++fi ++ ++export GTK2_RC_FILES="@prefix@/share/sugar/data/$GTK2_THEME.gtkrc" + + # Needed for executing wpa_passphrase + export PATH="$PATH":/sbin:/usr/sbin +diff --git a/data/Makefile.am b/data/Makefile.am +index 6a62d23..2a92ce1 100644 +--- a/data/Makefile.am ++++ b/data/Makefile.am +@@ -8,6 +8,14 @@ sugar-100.gtkrc: gtkrc.em + $(srcdir)/em.py -D scaling=\'100\' $(srcdir)/gtkrc.em > \ + $(top_builddir)/data/sugar-100.gtkrc + ++sugar-100-contrast.gtkrc: gtkrc-contrast.em ++ $(srcdir)/em.py -D scaling=\'100\' $(srcdir)/gtkrc-contrast.em > \ ++ $(top_builddir)/data/sugar-100-contrast.gtkrc ++ ++sugar-72-contrast.gtkrc: gtkrc-contrast.em ++ $(srcdir)/em.py -D scaling=\'100\' $(srcdir)/gtkrc-contrast.em > \ ++ $(top_builddir)/data/sugar-72-contrast.gtkrc ++ + sugardir = $(pkgdatadir)/data + sugar_DATA = \ + activities.defaults \ +@@ -18,7 +26,9 @@ sugar_DATA = \ + + GTKRC_FILES = \ + sugar-72.gtkrc \ +- sugar-100.gtkrc ++ sugar-100.gtkrc \ ++ sugar-100-contrast.gtkrc \ ++ sugar-72-contrast.gtkrc + + xsessionsdir = $(datadir)/xsessions + xsessions_DATA = sugar.desktop +@@ -64,5 +74,5 @@ endif + icondir = $(datadir)/icons/hicolor/scalable/apps + icon_DATA = sugar-xo.svg + +-EXTRA_DIST = $(sugar_DATA) $(xsessions_DATA) $(nmservice_DATA) $(mime_xml_in_files) em.py gtkrc.em $(schema_in_files) $(icon_DATA) ++EXTRA_DIST = $(sugar_DATA) $(xsessions_DATA) $(nmservice_DATA) $(mime_xml_in_files) em.py gtkrc.em gtkrc-contrast.em $(schema_in_files) $(icon_DATA) + CLEANFILES = $(GTKRC_FILES) $(mime_xml_files) $(schema_DATA) +diff --git a/data/gtkrc-contrast.em b/data/gtkrc-contrast.em +new file mode 100644 +index 0000000..dceb103 +--- /dev/null ++++ b/data/gtkrc-contrast.em +@@ -0,0 +1,12 @@ ++@{ ++if scaling == '72': ++ icon_sizes = 'gtk-large-toolbar=40,40' ++else: ++ icon_sizes = 'gtk-large-toolbar=55,55' ++}@ ++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/extensions/cpsection/accessibility/model.py b/extensions/cpsection/accessibility/model.py +index 5136460..8769d24 100644 +--- a/extensions/cpsection/accessibility/model.py ++++ b/extensions/cpsection/accessibility/model.py +@@ -17,15 +17,12 @@ + # You should have received a copy of the GNU General Public License + # along with this program. If not, see <http://www.gnu.org/licenses/>. + +-import subprocess +-import gconf +- +-from gettext import gettext as _ + from jarabe.model import accessibility + + keyboard = accessibility.Keyboard() ++screen = accessibility.Screen() + +-KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys'] ++KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys', 'contrast'] + + def get_mouse_keys(): + return keyboard.get_mouse_keys() +@@ -53,3 +50,12 @@ def set_bounce_keys(activar): + + def print_bounce_keys(): + print str(get_bounce_keys()) ++ ++def get_contrast(): ++ return screen.get_contrast() ++ ++def set_contrast(activar): ++ screen.set_contrast(activar) ++ ++def print_contrast(): ++ print str(get_contrast()) +\ No newline at end of file +diff --git a/extensions/cpsection/accessibility/view.py b/extensions/cpsection/accessibility/view.py +index 9f291ac..bae14dc 100644 +--- a/extensions/cpsection/accessibility/view.py ++++ b/extensions/cpsection/accessibility/view.py +@@ -23,7 +23,6 @@ + + from sugar.graphics import style + +-from jarabe import config + from jarabe.controlpanel.sectionview import SectionView + from jarabe.controlpanel.inlinealert import InlineAlert + +@@ -32,29 +31,73 @@ def __init__(self, model, alerts=None): + SectionView.__init__(self) + + self._model = model ++ self.restart_alerts = alerts + self.set_border_width(style.DEFAULT_SPACING * 2) + self.set_spacing(style.DEFAULT_SPACING) +- group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL) +- +- separator_pm = gtk.HSeparator() +- self.pack_start(separator_pm, expand=False) +- separator_pm.show() ++ scrollwindow = gtk.ScrolledWindow() ++ scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) ++ self.pack_start(scrollwindow, expand=True) ++ scrollwindow.show() + +- label_pm_teclado = gtk.Label(_('Keyboard')) +- label_pm_teclado.set_alignment(0, 0) +- self.pack_start(label_pm_teclado, expand=False) +- label_pm_teclado.show() ++ self._vbox_section = gtk.VBox() ++ scrollwindow.add_with_viewport(self._vbox_section) ++ self._vbox_section.show() + +- self.box_pm = gtk.VBox() +- self.box_pm.set_border_width(style.DEFAULT_SPACING * 2) +- self.box_pm.set_spacing(style.DEFAULT_SPACING) ++ self._zone_alert_box = gtk.HBox(spacing=style.DEFAULT_SPACING) ++ self.pack_start(self._zone_alert_box, False) ++ ++ self._zone_alert = InlineAlert() ++ self._zone_alert_box.pack_start(self._zone_alert) ++ if 'zone' in self.restart_alerts: ++ self._zone_alert.props.msg = self.restart_msg ++ self._zone_alert.show() ++ self._zone_alert_box.show() ++ ++ self.needs_restart = False ++ ++ self._view_keyboard_options() ++ self._view_screen_options() ++ ++ ++ def _view_keyboard_options(self): ++ separator_pm_keyboard = gtk.HSeparator() ++ self._vbox_section.pack_start(separator_pm_keyboard, expand=False) ++ separator_pm_keyboard.show() ++ ++ label_pm_keyboard = gtk.Label(_('Keyboard')) ++ label_pm_keyboard.set_alignment(0, 0) ++ self._vbox_section.pack_start(label_pm_keyboard, expand=False) ++ label_pm_keyboard.show() ++ ++ self.box_pm_keyboard = gtk.VBox() ++ self.box_pm_keyboard.set_border_width(style.DEFAULT_SPACING * 2) ++ self.box_pm_keyboard.set_spacing(style.DEFAULT_SPACING) + + self._view_mouse_keys() + self._view_sticky_keys() + self._view_bounce_keys() + +- self.pack_start(self.box_pm, expand=False) +- self.box_pm.show() ++ self._vbox_section.pack_start(self.box_pm_keyboard, expand=False) ++ self.box_pm_keyboard.show() ++ ++ def _view_screen_options(self): ++ separator_pm_screen = gtk.HSeparator() ++ self._vbox_section.pack_start(separator_pm_screen, expand=False) ++ separator_pm_screen.show() ++ ++ label_pm_screen = gtk.Label(_('Screen')) ++ label_pm_screen.set_alignment(0, 0) ++ self._vbox_section.pack_start(label_pm_screen, expand=False) ++ label_pm_screen.show() ++ ++ self.box_pm_screen = gtk.VBox() ++ self.box_pm_screen.set_border_width(style.DEFAULT_SPACING * 2) ++ self.box_pm_screen.set_spacing(style.DEFAULT_SPACING) ++ ++ self._view_contrast() ++ ++ self._vbox_section.pack_start(self.box_pm_screen, expand=False) ++ self.box_pm_screen.show() + + def _set_mouse_keys(self, widget): + state = widget.get_active() +@@ -68,22 +111,35 @@ def _set_bounce_keys(self, widget): + state = widget.get_active() + self._model.set_bounce_keys(state) + ++ def _set_contrast(self, widget): ++ state = widget.get_active() ++ self._model.set_contrast(state) ++ self.restart_alerts.append('zone') ++ self.needs_restart = True ++ self._zone_alert.props.msg = self.restart_msg ++ self._zone_alert.show() ++ + def undo(self): + self._model.set_mouse_keys(self.init_state_mouse_keys) + self._model.set_sticky_keys(self.init_state_sticky_keys) + self._model.set_bounce_keys(self.init_state_bounce_keys) + ++ self._model.set_contrast(self.init_state_contrast) ++ self.btn_contrast.set_active(self.init_state_contrast) ++ self.needs_restart = False ++ self._zone_alert.hide() ++ + def _view_mouse_keys(self): + self.btn_mouse_keys = gtk.CheckButton(_('Mouse Keys')) + self._mouse_pm_change_handler = self.btn_mouse_keys.connect("toggled", self._set_mouse_keys) + self.init_state_mouse_keys = self._model.get_mouse_keys() + self.btn_mouse_keys.set_active(self.init_state_mouse_keys) +- self.box_pm.pack_start(self.btn_mouse_keys, True, True, 2) ++ self.box_pm_keyboard.pack_start(self.btn_mouse_keys, True, True, 2) + self.btn_mouse_keys.show() + + lbl_mouse = gtk.Label(_('Move the mouse pointer with keyboard number.')) + lbl_mouse.set_alignment(0, 0) +- self.box_pm.pack_start(lbl_mouse, True, True, 2) ++ self.box_pm_keyboard.pack_start(lbl_mouse, True, True, 2) + lbl_mouse.show() + + def _view_sticky_keys(self): +@@ -91,13 +147,13 @@ def _view_sticky_keys(self): + self._sticky_pm_change_handler = self.btn_sticky_keys.connect("toggled", self._set_sticky_keys) + self.init_state_sticky_keys = self._model.get_sticky_keys() + self.btn_sticky_keys.set_active(self.init_state_sticky_keys) +- self.box_pm.pack_start(self.btn_sticky_keys, True, True, 2) ++ self.box_pm_keyboard.pack_start(self.btn_sticky_keys, True, True, 2) + self.btn_sticky_keys.show() + + lbl_sticky = gtk.Label(_('Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time.')) + lbl_sticky.set_line_wrap(True) + lbl_sticky.set_alignment(0, 0) +- self.box_pm.pack_start(lbl_sticky, True, True, 2) ++ self.box_pm_keyboard.pack_start(lbl_sticky, True, True, 2) + lbl_sticky.show() + + def _view_bounce_keys(self): +@@ -105,10 +161,28 @@ def _view_bounce_keys(self): + self._bounce_pm_change_handler = self.btn_bounce_keys.connect("toggled", self._set_bounce_keys) + self.init_state_bounce_keys = self._model.get_bounce_keys() + self.btn_bounce_keys.set_active(self.init_state_bounce_keys) +- self.box_pm.pack_start(self.btn_bounce_keys, True, True, 2) ++ self.box_pm_keyboard.pack_start(self.btn_bounce_keys, True, True, 2) + self.btn_bounce_keys.show() + + lbl_bounce = gtk.Label(_('Ignore rapid, repeated keypresses of the same key.')) + lbl_bounce.set_alignment(0, 0) +- self.box_pm.pack_start(lbl_bounce, True, True, 2) ++ self.box_pm_keyboard.pack_start(lbl_bounce, True, True, 2) + lbl_bounce.show() ++ ++ def _view_contrast(self): ++ self.btn_contrast = gtk.CheckButton(_('Contrast')) ++ self._contrast_pm_change_handler = self.btn_contrast.connect("toggled", self._set_contrast) ++ self.init_state_contrast = self._model.get_contrast() ++ if self.init_state_contrast: ++ self.btn_contrast.handler_block(self._contrast_pm_change_handler) ++ self.btn_contrast.set_active(True) ++ self.btn_contrast.handler_unblock(self._contrast_pm_change_handler) ++ else: ++ self.btn_contrast.set_active(False) ++ self.box_pm_screen.pack_start(self.btn_contrast, True, True, 2) ++ self.btn_contrast.show() ++ ++ lbl_contrast = gtk.Label(_('Enables the color contrast of the graphic interface.')) ++ lbl_contrast.set_alignment(0, 0) ++ self.box_pm_screen.pack_start(lbl_contrast, True, True, 2) ++ lbl_contrast.show() +diff --git a/src/jarabe/controlpanel/gui.py b/src/jarabe/controlpanel/gui.py +index 46810aa..61520e0 100644 +--- a/src/jarabe/controlpanel/gui.py ++++ b/src/jarabe/controlpanel/gui.py +@@ -1,4 +1,5 @@ + # Copyright (C) 2008 One Laptop Per Child ++# Copyright (C) 2010 Plan Ceibal <comunidad@plan.ceibal.edu.uy> + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -242,7 +243,7 @@ def show_section_view(self, option): + self._section_view.connect('request-close', + self.__close_request_cb) + self._main_view.modify_bg(gtk.STATE_NORMAL, +- style.COLOR_WHITE.get_gdk_color()) ++ style.COLOR_BG_CP.get_gdk_color()) + + def set_section_view_auto_close(self): + """Automatically close the control panel if there is "nothing to do" +diff --git a/src/jarabe/desktop/activitieslist.py b/src/jarabe/desktop/activitieslist.py +index 44b0725..e34abd6 100644 +--- a/src/jarabe/desktop/activitieslist.py ++++ b/src/jarabe/desktop/activitieslist.py +@@ -1,5 +1,6 @@ + # Copyright (C) 2008 One Laptop Per Child + # Copyright (C) 2009 Tomeu Vizoso ++# Copyright (C) 2010 Plan Ceibal <comunidad@plan.ceibal.edu.uy> + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -269,7 +270,7 @@ def __init__(self, tree_view): + self.props.width = style.GRID_CELL_SIZE + self.props.height = style.GRID_CELL_SIZE + self.props.size = style.STANDARD_ICON_SIZE +- self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg() ++ self.props.stroke_color = style.COLOR_DESKTOP_ICON.get_svg() + self.props.fill_color = style.COLOR_TRANSPARENT.get_svg() + self.props.mode = gtk.CELL_RENDERER_MODE_ACTIVATABLE + +diff --git a/src/jarabe/desktop/favoritesview.py b/src/jarabe/desktop/favoritesview.py +index 75795cd..c2ff370 100644 +--- a/src/jarabe/desktop/favoritesview.py ++++ b/src/jarabe/desktop/favoritesview.py +@@ -1,5 +1,6 @@ + # Copyright (C) 2006-2007 Red Hat, Inc. + # Copyright (C) 2008 One Laptop Per Child ++# Copyright (C) 2010 Plan Ceibal <comunidad@plan.ceibal.edu.uy> + # + # This program is free software; you can redistribute it and/or modify + # it under the terms of the GNU General Public License as published by +@@ -427,7 +428,7 @@ def __get_last_activity_error_handler_cb(self, error): + def _update(self): + self.palette = None + if not self._resume_mode or not self._journal_entries: +- xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), ++ xo_color = XoColor('%s,%s' % (style.COLOR_DESKTOP_ICON.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + else: + xo_color = misc.get_icon_color(self._journal_entries[0]) +@@ -536,7 +537,7 @@ def __init__(self, activity_info, journal_entries): + ActivityPalette.__init__(self, activity_info) + + if not journal_entries: +- xo_color = XoColor('%s,%s' % (style.COLOR_BUTTON_GREY.get_svg(), ++ xo_color = XoColor('%s,%s' % (style.COLOR_WHITE.get_svg(), + style.COLOR_TRANSPARENT.get_svg())) + else: + xo_color = misc.get_icon_color(journal_entries[0]) +diff --git a/src/jarabe/model/accessibility.py b/src/jarabe/model/accessibility.py +index b851b3c..0324495 100644 +--- a/src/jarabe/model/accessibility.py ++++ b/src/jarabe/model/accessibility.py +@@ -20,8 +20,6 @@ + import subprocess + import gconf + +-from gettext import gettext as _ +- + class Keyboard: + + def get_mouse_keys(self): +@@ -67,6 +65,24 @@ def run_config_keyboard(self): + cmd += ['-mousekeys', 'mousemaxspeed', '3000', 'mousetimetomax', '1000', '+timeout', '+repeatkeys'] + subprocess.call(cmd) + ++class Screen: ++ ++ CONTRAST_THEME="sugar-contrast" ++ DEFAULT_THEME="sugar" ++ ++ def get_contrast(self): ++ client = gconf.client_get_default() ++ value = client.get_string("/desktop/sugar/interface/gtk_theme") ++ return value==self.CONTRAST_THEME ++ ++ def set_contrast(self, activar): ++ client = gconf.client_get_default() ++ if (activar): ++ client.set_string("/desktop/sugar/interface/gtk_theme", self.CONTRAST_THEME) ++ else: ++ client.set_string("/desktop/sugar/interface/gtk_theme", self.DEFAULT_THEME) ++ ++ + class AccessibilityManager: + def setup_accessibility(self): + client = gconf.client_get_default() +-- +1.7.6 + |