modification for the svg file icon and remove <a href="http://makefile.in">makefile.in</a><br><br><br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/bin/sugar-session sugar-0.88.1/bin/sugar-session<br>--- sugar-0.88.1.original.con.parches.viejos/bin/sugar-session 2010-06-02 09:33:43.000000000 -0300<br>
+++ sugar-0.88.1/bin/sugar-session 2010-06-21 11:48:06.837182011 -0300<br>@@ -1,6 +1,7 @@<br> #!/usr/bin/env python<br> # Copyright (C) 2006, Red Hat, Inc.<br> # Copyright (C) 2009, One Laptop Per Child Association Inc<br>
+# Copyright (C) 2010, Plan Ceibal <<a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a>><br> #<br> # This program is free software; you can redistribute it and/or modify<br> # it under the terms of the GNU General Public License as published by<br>
@@ -190,6 +191,7 @@<br> gobject.idle_add(setup_notification_service_cb)<br> gobject.idle_add(setup_file_transfer_cb)<br> gobject.idle_add(show_software_updates_cb)<br>+ gobject.idle_add(setup_accessibility_cb)<br>
<br> if sys.modules.has_key('xklavier'):<br> gobject.idle_add(setup_keyboard_cb)<br>@@ -201,6 +203,11 @@<br> settings = gtk.settings_get_default()<br> settings.set_property("gtk-font-name", "%s %f" % (face, size))<br>
<br>+def setup_accessibility_cb():<br>+ from jarabe.model import accessibility<br>+ accessibility_manager = accessibility.AccessibilityManager()<br>+ accessibility_manager.setup_accessibility()<br>+<br> def main():<br>
try:<br> from sugar import env<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/<a href="http://configure.ac">configure.ac</a> sugar-0.88.1/<a href="http://configure.ac">configure.ac</a><br>--- sugar-0.88.1.original.con.parches.viejos/<a href="http://configure.ac">configure.ac</a> 2010-06-21 11:39:19.902054000 -0300<br>
+++ sugar-0.88.1/<a href="http://configure.ac">configure.ac</a> 2010-06-21 11:44:16.697208930 -0300<br>@@ -50,6 +50,7 @@<br> data/Makefile<br> data/sugar-emulator.desktop<br> extensions/cpsection/aboutcomputer/Makefile<br>
+extensions/cpsection/accessibility/Makefile<br> extensions/cpsection/aboutme/Makefile<br> extensions/cpsection/datetime/Makefile<br> extensions/cpsection/frame/Makefile<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/data/icons/Makefile.am sugar-0.88.1/data/icons/Makefile.am<br>
--- sugar-0.88.1.original.con.parches.viejos/data/icons/Makefile.am 2010-06-21 11:39:19.902054000 -0300<br>+++ sugar-0.88.1/data/icons/Makefile.am 2010-06-21 11:54:27.040055731 -0300<br>@@ -3,6 +3,7 @@<br> sugar_DATA = \<br>
module-about_me.svg \<br> module-about_my_computer.svg \<br>+ module-accessibility.svg \<br> module-date_and_time.svg \<br> module-frame.svg \<br> module-journalmanagement.svg \<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/data/icons/module-accessibility.svg sugar-0.88.1/data/icons/module-accessibility.svg<br>--- sugar-0.88.1.original.con.parches.viejos/data/icons/module-accessibility.svg 1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/data/icons/module-accessibility.svg 2010-07-08 09:19:22.288067133 -0300<br>@@ -0,0 +1,92 @@<br>+<?xml version="1.0" encoding="UTF-8" standalone="no"?><br>+<!-- Created with Inkscape (<a href="http://www.inkscape.org/">http://www.inkscape.org/</a>) --><br>
+<br>+<svg<br>+ xmlns:svg="<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>"<br>+ xmlns="<a href="http://www.w3.org/2000/svg">http://www.w3.org/2000/svg</a>"<br>+ version="1.0"<br>
+ width="55"<br>+ height="55"<br>+ id="svg795"><br>+ <defs<br>+ id="defs797" /><br>+ <g<br>+ id="layer1"><br>+ <path<br>+ d="m -23.738584,30.440666 a 8.901969,11.301082 0 1 1 -17.803937,0 8.901969,11.301082 0 1 1 17.803937,0 z"<br>
+ transform="matrix(1.2765958,0,0,1.0558659,19.192898,-13.127946)"<br>+ id="path12"<br>+ style="fill:none;stroke:#ffffff" /><br>+ <path<br>+ d="m 30.145644,37.823484 c -0.583589,6.659344 -6.7511,11.52268 -13.775517,10.862567 C 9.3457054,48.02594 4.1243814,42.092348 4.7079694,35.433004 5.2915594,28.773661 20.67887,20.597949 14.885997,24.011638 -12.777062,40.313232 24.43362,62.068174 30.145644,37.823484 z"<br>
+ id="path1405-0"<br>+ style="fill:none;stroke:#ffffff;stroke-width:1.44962609;stroke-opacity:1" /><br>+ <rect<br>+ width="2.916333"<br>+ height="21.188446"<br>
+ ry="1.3939767"<br>+ x="18.332197"<br>+ y="13.76814"<br>+ id="rect1438-8"<br>+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50547338;stroke-opacity:1" /><br>
+ <rect<br>+ width="2.8716421"<br>+ height="19.140917"<br>+ ry="1.259271"<br>+ x="-35.091366"<br>+ y="-38.207035"<br>+ transform="matrix(0,-1,-1,0,0,0)"<br>
+ id="rect1438-1-87"<br>+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.41987956;stroke-opacity:1" /><br>+ <rect<br>+ width="2.5733202"<br>+ height="15.766372"<br>
+ ry="1.0372615"<br>+ x="-5.4068875"<br>+ y="-65.997124"<br>+ transform="matrix(-0.55477829,0.83199823,-0.68762037,-0.72607041,0,0)"<br>+ id="rect1438-0-4"<br>
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.21988189;stroke-opacity:1" /><br>+ <rect<br>+ width="2.0588"<br>+ height="12.916228"<br>+ ry="0.84975183"<br>
+ x="6.7647386"<br>+ y="-38.278324"<br>+ transform="matrix(-0.21998034,0.97550431,-0.88967727,-0.45658992,0,0)"<br>+ id="rect1438-0-1-8"<br>+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.98759735;stroke-opacity:1" /><br>
+ <rect<br>+ width="0.98179615"<br>+ height="13.275604"<br>+ ry="0.87339497"<br>+ x="-30.243309"<br>+ y="-41.495876"<br>+ transform="matrix(0,-1,-1,0,0,0)"<br>
+ id="rect1438-1-8-5"<br>+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.69142139;stroke-opacity:1" /><br>+ <rect<br>+ width="0.97070193"<br>+ height="11.568416"<br>
+ ry="0.76108003"<br>+ x="50.822704"<br>+ y="-8.6089849"<br>+ transform="matrix(0.89791652,0.44016579,0.56230073,-0.82693282,0,0)"<br>+ id="rect1438-1-8-0-0"<br>
+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.64177793;stroke-opacity:1" /><br>+ <rect<br>+ width="1.6299056"<br>+ height="7.7739253"<br>+ ry="0.51144254"<br>
+ x="72.759727"<br>+ y="35.364716"<br>+ transform="matrix(0.9888174,0.14913131,-0.60877492,0.79334299,0,0)"<br>+ id="rect1438-0-1-7-7"<br>+ style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.68172067;stroke-opacity:1" /><br>
+ <path<br>+ d="m 79.67578,18.634508 a 3.2829957,3.0304577 0 1 1 -6.565992,0 3.2829957,3.0304577 0 1 1 6.565992,0 z"<br>+ transform="matrix(1.5397454,0,0,1.4719643,-97.932275,-17.750188)"<br>
+ id="path1603-2"<br>+ style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-opacity:1" /><br>+ </g><br>+</svg><br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/__init__.py sugar-0.88.1/extensions/cpsection/accessibility/__init__.py<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/__init__.py 1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/__init__.py 2010-06-02 15:00:27.328970000 -0300<br>
@@ -0,0 +1,25 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias <<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>><br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<br>
+<br>+from gettext import gettext as _<br>+<br>+CLASS = 'accessibility'<br>+ICON = 'module-accessibility'<br>+TITLE = _('Accessibility')<br>+<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/Makefile.am sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/Makefile.am 1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am 2010-06-02 15:00:27.329800000 -0300<br>
@@ -0,0 +1,6 @@<br>+sugardir = $(pkgdatadir)/extensions/cpsection/accessibility<br>+<br>+sugar_PYTHON = \<br>+ __init__.py \<br>+ model.py \<br>+ view.py <br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/model.py sugar-0.88.1/extensions/cpsection/accessibility/model.py<br>
--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/model.py 1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/extensions/cpsection/accessibility/model.py 2010-06-03 11:12:50.057315000 -0300<br>
@@ -0,0 +1,55 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias <<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>><br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+from jarabe.model import accessibility<br>+<br>+keyboard = accessibility.Keyboard()<br>+<br>+KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys']<br>
+<br>+def get_mouse_keys():<br>+ return keyboard.get_mouse_keys()<br>+<br>+def set_mouse_keys(activar):<br>+ keyboard.set_mouse_keys(activar)<br>+<br>+def print_mouse_keys():<br>+ print str(get_mouse_keys())<br>+<br>
+def get_sticky_keys(): <br>+ return keyboard.get_sticky_keys()<br>+<br>+def set_sticky_keys(activar):<br>+ keyboard.set_sticky_keys(activar)<br>+<br>+def print_sticky_keys():<br>+ print str(get_sticky_keys())<br>
+<br>+def get_bounce_keys():<br>+ return keyboard.get_bounce_keys()<br>+<br>+def set_bounce_keys(activar):<br>+ keyboard.set_bounce_keys(activar)<br>+<br>+def print_bounce_keys():<br>+ print str(get_bounce_keys())<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/view.py sugar-0.88.1/extensions/cpsection/accessibility/view.py<br>--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/accessibility/view.py 1969-12-31 21:00:00.000000000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/accessibility/view.py 2010-06-02 15:00:27.316801000 -0300<br>@@ -0,0 +1,114 @@<br>+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias <<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>><br>
+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>
+# it under the terms of the GNU General Public License as published by<br>+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>
+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>
+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<br>+<br>+<br>+import gtk<br>+from gettext import gettext as _<br>+<br>+from sugar.graphics import style<br>
+<br>+from jarabe import config<br>+from jarabe.controlpanel.sectionview import SectionView<br>+from jarabe.controlpanel.inlinealert import InlineAlert<br>+<br>+class accessibility(SectionView):<br>+ def __init__(self, model, alerts=None):<br>
+ SectionView.__init__(self)<br>+<br>+ self._model = model<br>+ self.set_border_width(style.DEFAULT_SPACING * 2)<br>+ self.set_spacing(style.DEFAULT_SPACING)<br>+ group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)<br>
+ <br>+ separator_pm = gtk.HSeparator()<br>+ self.pack_start(separator_pm, expand=False)<br>+ separator_pm.show()<br>+<br>+ label_pm_teclado = gtk.Label(_('Keyboard'))<br>+ label_pm_teclado.set_alignment(0, 0)<br>
+ self.pack_start(label_pm_teclado, expand=False)<br>+ label_pm_teclado.show()<br>+<br>+ self.box_pm = gtk.VBox()<br>+ self.box_pm.set_border_width(style.DEFAULT_SPACING * 2)<br>+ self.box_pm.set_spacing(style.DEFAULT_SPACING) <br>
+<br>+ self._view_mouse_keys()<br>+ self._view_sticky_keys()<br>+ self._view_bounce_keys()<br>+<br>+ self.pack_start(self.box_pm, expand=False)<br>+ self.box_pm.show()<br>+ <br>+ def _set_mouse_keys(self, widget):<br>
+ state = widget.get_active()<br>+ self._model.set_mouse_keys(state)<br>+<br>+ def _set_sticky_keys(self, widget):<br>+ state = widget.get_active()<br>+ self._model.set_sticky_keys(state)<br>
+<br>+ def _set_bounce_keys(self, widget):<br>+ state = widget.get_active()<br>+ self._model.set_bounce_keys(state)<br>+<br>+ def undo(self):<br>+ self._model.set_mouse_keys(self.init_state_mouse_keys)<br>
+ self._model.set_sticky_keys(self.init_state_sticky_keys)<br>+ self._model.set_bounce_keys(self.init_state_bounce_keys)<br>+<br>+ def _view_mouse_keys(self):<br>+ self.btn_mouse_keys = gtk.CheckButton(_('Mouse Keys'))<br>
+ self._mouse_pm_change_handler = self.btn_mouse_keys.connect("toggled", self._set_mouse_keys)<br>+ self.init_state_mouse_keys = self._model.get_mouse_keys() <br>+ self.btn_mouse_keys.set_active(self.init_state_mouse_keys) <br>
+ self.box_pm.pack_start(self.btn_mouse_keys, True, True, 2)<br>+ self.btn_mouse_keys.show()<br>+<br>+ lbl_mouse = gtk.Label(_('Move the mouse pointer with keyboard number.'))<br>+ lbl_mouse.set_alignment(0, 0)<br>
+ self.box_pm.pack_start(lbl_mouse, True, True, 2)<br>+ lbl_mouse.show()<br>+<br>+ def _view_sticky_keys(self):<br>+ self.btn_sticky_keys = gtk.CheckButton(_('Sticky Keys'))<br>+ self._sticky_pm_change_handler = self.btn_sticky_keys.connect("toggled", self._set_sticky_keys)<br>
+ self.init_state_sticky_keys = self._model.get_sticky_keys()<br>+ self.btn_sticky_keys.set_active(self.init_state_sticky_keys)<br>+ self.box_pm.pack_start(self.btn_sticky_keys, True, True, 2)<br>+ self.btn_sticky_keys.show()<br>
+<br>+ 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.'))<br>+ lbl_sticky.set_line_wrap(True)<br>+ lbl_sticky.set_alignment(0, 0)<br>
+ self.box_pm.pack_start(lbl_sticky, True, True, 2)<br>+ lbl_sticky.show()<br>+<br>+ def _view_bounce_keys(self):<br>+ self.btn_bounce_keys = gtk.CheckButton(_('Bounce Keys'))<br>+ self._bounce_pm_change_handler = self.btn_bounce_keys.connect("toggled", self._set_bounce_keys)<br>
+ self.init_state_bounce_keys = self._model.get_bounce_keys()<br>+ self.btn_bounce_keys.set_active(self.init_state_bounce_keys)<br>+ self.box_pm.pack_start(self.btn_bounce_keys, True, True, 2)<br>+ self.btn_bounce_keys.show()<br>
+<br>+ lbl_bounce = gtk.Label(_('Ignore rapid, repeated keypresses of the same key.'))<br>+ lbl_bounce.set_alignment(0, 0)<br>+ self.box_pm.pack_start(lbl_bounce, True, True, 2)<br>+ lbl_bounce.show()<br>
diff -u -r -N sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/Makefile.am sugar-0.88.1/extensions/cpsection/Makefile.am<br>--- sugar-0.88.1.original.con.parches.viejos/extensions/cpsection/Makefile.am 2010-06-21 11:39:19.903055000 -0300<br>
+++ sugar-0.88.1/extensions/cpsection/Makefile.am 2010-06-21 13:17:52.794055895 -0300<br>@@ -1,6 +1,7 @@<br> SUBDIRS = \<br> aboutme \<br> aboutcomputer \<br>+ accessibility \<br> datetime \<br> frame \<br>
journalmanagement \<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/po/es.po sugar-0.88.1/po/es.po<br>--- sugar-0.88.1.original.con.parches.viejos/po/es.po 2010-06-21 11:38:52.234179000 -0300<br>+++ sugar-0.88.1/po/es.po 2010-06-21 12:14:22.363180560 -0300<br>
@@ -1313,6 +1313,33 @@<br> "Para aplicar la restauración del Diario, se requiere reiniciar. \n\n"<br> "Se restaurará el respado realizado para este equipo "<br> <br>+#: ../extensions/cpsection/accessibility/__init__.py:24<br>
+msgid "Accessibility"<br>+msgstr "Accesibilidad"<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:77<br>+msgid "Mouse Keys"<br>+msgstr "Teclas del ratón"<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:84<br>
+msgid "Move the mouse pointer with keyboard number."<br>+msgstr "Mover el puntero del ratón con un teclado numérico o con las teclas de juego."<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:90<br>
+msgid "Sticky Keys"<br>+msgstr "Teclas pegajosas"<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:97<br>+msgid "Instead of having to press two keys at once (such as CTRL + Q), you can press one key at a time."<br>
+msgstr "En lugar de tener que pulsar dos teclas a la vez (por ejemplo, CTRL + Q), permite pulsar una tecla a la vez."<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:104<br>+msgid "Bounce Keys"<br>
+msgstr "Teclas de rebote"<br>+<br>+#: ../extensions/cpsection/accessibility/view.py:111<br>+msgid "Ignore rapid, repeated keypresses of the same key."<br>+msgstr "Ignora la presión rápida y repetida de una tecla."<br>
<br> #~ msgid "Cannot obtain data needed for registration."<br> #~ msgstr "No se puede obtener datos necesarios para el registro"<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/accessibility.py sugar-0.88.1/src/jarabe/model/accessibility.py<br>
--- sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/accessibility.py 1969-12-31 21:00:00.000000000 -0300<br>+++ sugar-0.88.1/src/jarabe/model/accessibility.py 2010-07-08 09:21:33.789068870 -0300<br>@@ -0,0 +1,76 @@<br>
+# Copyright (C) 2010 Plan Ceibal<br>+#<br>+# Author: Esteban Arias <<a href="mailto:earias@plan.ceibal.edu.uy">earias@plan.ceibal.edu.uy</a>><br>+# Contact information: <a href="mailto:comunidad@plan.ceibal.edu.uy">comunidad@plan.ceibal.edu.uy</a> <br>
+# Plan Ceibal <a href="http://www.ceibal.edu.uy">http://www.ceibal.edu.uy</a><br>+#<br>+# This program is free software: you can redistribute it and/or modify<br>+# it under the terms of the GNU General Public License as published by<br>
+# the Free Software Foundation, either version 3 of the License, or<br>+# (at your option) any later version.<br>+#<br>+# This program is distributed in the hope that it will be useful,<br>+# but WITHOUT ANY WARRANTY; without even the implied warranty of<br>
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br>+# GNU General Public License for more details.<br>+#<br>+# You should have received a copy of the GNU General Public License<br>+# along with this program. If not, see <<a href="http://www.gnu.org/licenses/">http://www.gnu.org/licenses/</a>>.<br>
+<br>+import subprocess<br>+import gconf<br>+<br>+from gettext import gettext as _<br>+<br>+class Keyboard:<br>+<br>+ def get_mouse_keys(self):<br>+ client = gconf.client_get_default()<br>+ return client.get_bool("/desktop/sugar/accessibility/keyboard/mousekeys_enable")<br>
+<br>+ def set_mouse_keys(self, activar):<br>+ client = gconf.client_get_default()<br>+ client.set_bool("/desktop/sugar/accessibility/keyboard/mousekeys_enable", activar)<br>+ self.run_config_keyboard()<br>
+<br>+ def get_sticky_keys(self): <br>+ client = gconf.client_get_default()<br>+ return client.get_bool("/desktop/sugar/accessibility/keyboard/stickykeys_enable")<br>+<br>+ def set_sticky_keys(self, activar):<br>
+ client = gconf.client_get_default()<br>+ client.set_bool("/desktop/sugar/accessibility/keyboard/stickykeys_enable", activar)<br>+ self.run_config_keyboard()<br>+<br>+ def get_bounce_keys(self):<br>
+ client = gconf.client_get_default()<br>+ return client.get_bool("/desktop/sugar/accessibility/keyboard/bouncekeys_enable")<br>+<br>+ def set_bounce_keys(self, activar):<br>+ client = gconf.client_get_default()<br>
+ client.set_bool("/desktop/sugar/accessibility/keyboard/bouncekeys_enable", activar)<br>+ self.run_config_keyboard()<br>+<br>+ def run_config_keyboard(self):<br>+ cmd = ['ax']<br>
+ if self.get_sticky_keys():<br>+ cmd.append('+stickykeys')<br>+ else:<br>+ cmd.append('-stickykeys')<br>+ if self.get_bounce_keys():<br>+ cmd.append('+bouncekeys')<br>
+ else:<br>+ cmd.append('-bouncekeys')<br>+ if self.get_mouse_keys():<br>+ cmd += ['+mousekeys', 'mousemaxspeed', '3000', 'mousetimetomax', '1000', '-timeout', '-repeatkeys']<br>
+ else:<br>+ cmd += ['-mousekeys', 'mousemaxspeed', '3000', 'mousetimetomax', '1000', '+timeout', '+repeatkeys']<br>+ subprocess.call(cmd)<br>
+<br>+class AccessibilityManager:<br>+ def setup_accessibility(self):<br>+ client = gconf.client_get_default()<br>+ is_accessibility = client.dir_exists("/desktop/sugar/accessibility")<br>+ if is_accessibility:<br>
+ keyboard = Keyboard()<br>+ keyboard.run_config_keyboard()<br>diff -u -r -N sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/Makefile.am sugar-0.88.1/src/jarabe/model/Makefile.am<br>--- sugar-0.88.1.original.con.parches.viejos/src/jarabe/model/Makefile.am 2010-06-21 11:38:48.943180000 -0300<br>
+++ sugar-0.88.1/src/jarabe/model/Makefile.am 2010-06-21 11:45:58.165181239 -0300<br>@@ -1,6 +1,7 @@<br> sugardir = $(pythondir)/jarabe/model<br> sugar_PYTHON = \<br> __init__.py \<br>+ accessibility.py \<br>
buddy.py \<br> bundleregistry.py \<br> filetransfer.py \<br><br><br>- - - <br>Sayamindu Dasgupta's works:<br><a href="http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468" target="_blank">http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468</a><br>