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:04.013303378 -0300
+++ sugar-0.88.1/bin/sugar.in 2010-07-16 13:18:11.155046440 -0300
@@ -40,7 +40,21 @@
export SUGAR_SCALING=100
fi
-export GTK2_RC_FILES="@prefix@/share/sugar/data/sugar-$SUGAR_SCALING.gtkrc"
+# Set theme
+gconftool-2 --dir-exists=/desktop/sugar/interface
+EXIST_GCONF_SUGAR_CONFIG=$(echo $?)
+if [[ $EXIST_GCONF_SUGAR_CONFIG == 0 ]]; 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 -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 1969-12-31 21:00:00.000000000 -0300
+++ sugar-0.88.1/data/gtkrc-contrast.em 2010-07-20 16:41:40.709583181 -0300
@@ -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 -u -r -N sugar-0.88.1.original/data/Makefile.am sugar-0.88.1/data/Makefile.am
--- sugar-0.88.1.original/data/Makefile.am 2010-07-16 13:18:02.492051920 -0300
+++ sugar-0.88.1/data/Makefile.am 2010-07-20 16:39:19.075582765 -0300
@@ -8,6 +8,14 @@
$(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 @@
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 @@
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 -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 1969-12-31 21:00:00.000000000 -0300
+++ sugar-0.88.1/data/sugar-100-contrast.gtkrc 2010-07-16 13:18:08.653046556 -0300
@@ -0,0 +1,6 @@
+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-72-contrast.gtkrc sugar-0.88.1/data/sugar-72-contrast.gtkrc
--- sugar-0.88.1.original/data/sugar-72-contrast.gtkrc 1969-12-31 21:00:00.000000000 -0300
+++ sugar-0.88.1/data/sugar-72-contrast.gtkrc 2010-07-20 16:45:49.308583315 -0300
@@ -0,0 +1,6 @@
+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/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:04.307107086 -0300
+++ sugar-0.88.1/extensions/cpsection/accessibility/model.py 2010-07-16 13:18:11.600145984 -0300
@@ -17,15 +17,12 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-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 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 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-16 13:18:04.312046331 -0300
+++ sugar-0.88.1/extensions/cpsection/accessibility/view.py 2010-07-20 16:44:14.613583366 -0300
@@ -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 @@
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()
-
- 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.box_pm = gtk.VBox()
- self.box_pm.set_border_width(style.DEFAULT_SPACING * 2)
- self.box_pm.set_spacing(style.DEFAULT_SPACING)
+ scrollwindow = gtk.ScrolledWindow()
+ scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ self.pack_start(scrollwindow, expand=True)
+ scrollwindow.show()
+
+ self._vbox_section = gtk.VBox()
+ scrollwindow.add_with_viewport(self._vbox_section)
+ self._vbox_section.show()
+
+ 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 @@
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 @@
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 @@
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 -u -r -N sugar-0.88.1.original/src/jarabe/controlpanel/gui.py sugar-0.88.1/src/jarabe/controlpanel/gui.py
--- sugar-0.88.1.original/src/jarabe/controlpanel/gui.py 2010-07-16 13:18:03.606047116 -0300
+++ sugar-0.88.1/src/jarabe/controlpanel/gui.py 2010-07-16 13:18:10.422201719 -0300
@@ -1,4 +1,5 @@
# Copyright (C) 2008 One Laptop Per Child
+# Copyright (C) 2010 Plan Ceibal
#
# 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
@@ -224,7 +225,7 @@
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 -u -r -N sugar-0.88.1.original/src/jarabe/desktop/activitieslist.py sugar-0.88.1/src/jarabe/desktop/activitieslist.py
--- sugar-0.88.1.original/src/jarabe/desktop/activitieslist.py 2010-07-16 13:18:03.809045695 -0300
+++ sugar-0.88.1/src/jarabe/desktop/activitieslist.py 2010-07-16 13:18:10.755297149 -0300
@@ -1,5 +1,6 @@
# Copyright (C) 2008 One Laptop Per Child
# Copyright (C) 2009 Tomeu Vizoso
+# Copyright (C) 2010 Plan Ceibal
#
# 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
@@ -271,7 +272,7 @@
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 -u -r -N sugar-0.88.1.original/src/jarabe/desktop/favoritesview.py sugar-0.88.1/src/jarabe/desktop/favoritesview.py
--- sugar-0.88.1.original/src/jarabe/desktop/favoritesview.py 2010-07-16 13:18:03.899048832 -0300
+++ sugar-0.88.1/src/jarabe/desktop/favoritesview.py 2010-07-16 13:18:10.933046702 -0300
@@ -1,5 +1,6 @@
# Copyright (C) 2006-2007 Red Hat, Inc.
# Copyright (C) 2008 One Laptop Per Child
+# Copyright (C) 2010 Plan Ceibal
#
# 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
@@ -411,7 +412,7 @@
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])
@@ -528,7 +529,7 @@
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 -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:03.679239241 -0300
+++ sugar-0.88.1/src/jarabe/model/accessibility.py 2010-07-16 13:18:10.506046670 -0300
@@ -20,8 +20,6 @@
import subprocess
import gconf
-from gettext import gettext as _
-
class Keyboard:
def get_mouse_keys(self):
@@ -67,6 +65,24 @@
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()