[Sugar-devel] #1669 UNSP: Accessibility - keyboard
Walter Bender
walter.bender at gmail.com
Wed Jun 23 14:18:13 EDT 2010
Please consider exporting your SVG from Inkscape as simple SVG so that
the Inkscape-specific fields don't clutter your code. They are ignored
by the SVG renderer.
-walter
On Wed, Jun 23, 2010 at 1:24 PM, Esteban Arias
<earias at plan.ceibal.edu.uy> wrote:
> diff -u -r -N sugar-0.88.1.original.con.parches/bin/sugar-session
> sugar-0.88.1/bin/sugar-session
> --- sugar-0.88.1.original.con.parches/bin/sugar-session 2010-06-02
> 09:33:43.000000000 -0300
> +++ sugar-0.88.1/bin/sugar-session 2010-06-21 11:48:06.837182011 -0300
> @@ -1,6 +1,7 @@
> #!/usr/bin/env python
> # Copyright (C) 2006, Red Hat, Inc.
> # Copyright (C) 2009, One Laptop Per Child Association Inc
> +# Copyright (C) 2010, Plan Ceibal <comunidad at 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
> @@ -190,6 +191,7 @@
> gobject.idle_add(setup_notification_service_cb)
> gobject.idle_add(setup_file_transfer_cb)
> gobject.idle_add(show_software_updates_cb)
> + gobject.idle_add(setup_accessibility_cb)
>
> if sys.modules.has_key('xklavier'):
> gobject.idle_add(setup_keyboard_cb)
> @@ -201,6 +203,11 @@
> settings = gtk.settings_get_default()
> settings.set_property("gtk-font-name", "%s %f" % (face, size))
>
> +def setup_accessibility_cb():
> + from jarabe.model import accessibility
> + accessibility_manager = accessibility.AccessibilityManager()
> + accessibility_manager.setup_accessibility()
> +
> def main():
> try:
> from sugar import env
> diff -u -r -N sugar-0.88.1.original.con.parches/configure.ac
> sugar-0.88.1/configure.ac
> --- sugar-0.88.1.original.con.parches/configure.ac 2010-06-21
> 11:39:19.902054000 -0300
> +++ sugar-0.88.1/configure.ac 2010-06-21 11:44:16.697208930 -0300
> @@ -50,6 +50,7 @@
> data/Makefile
> data/sugar-emulator.desktop
> extensions/cpsection/aboutcomputer/Makefile
> +extensions/cpsection/accessibility/Makefile
> extensions/cpsection/aboutme/Makefile
> extensions/cpsection/datetime/Makefile
> extensions/cpsection/frame/Makefile
> diff -u -r -N sugar-0.88.1.original.con.parches/data/icons/Makefile.am
> sugar-0.88.1/data/icons/Makefile.am
> --- sugar-0.88.1.original.con.parches/data/icons/Makefile.am 2010-06-21
> 11:39:19.902054000 -0300
> +++ sugar-0.88.1/data/icons/Makefile.am 2010-06-21 11:54:27.040055731
> -0300
> @@ -3,6 +3,7 @@
> sugar_DATA = \
> module-about_me.svg \
> module-about_my_computer.svg \
> + module-accessibility.svg \
> module-date_and_time.svg \
> module-frame.svg \
> module-journalmanagement.svg \
> diff -u -r -N
> sugar-0.88.1.original.con.parches/data/icons/module-accessibility.svg
> sugar-0.88.1/data/icons/module-accessibility.svg
> --- sugar-0.88.1.original.con.parches/data/icons/module-accessibility.svg
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/data/icons/module-accessibility.svg 2010-06-02
> 14:57:19.214840000 -0300
> @@ -0,0 +1,279 @@
> +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
> +<!-- Created with Inkscape (http://www.inkscape.org/) -->
> +
> +<svg
> + xmlns:dc="http://purl.org/dc/elements/1.1/"
> + xmlns:cc="http://creativecommons.org/ns#"
> + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> + xmlns:svg="http://www.w3.org/2000/svg"
> + xmlns="http://www.w3.org/2000/svg"
> + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
> + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
> + width="55"
> + height="55"
> + id="svg795"
> + sodipodi:version="0.32"
> + inkscape:version="0.46+devel"
> + version="1.0"
> + sodipodi:docname="acc79.svg"
> + inkscape:output_extension="org.inkscape.output.svg.inkscape">
> + <defs
> + id="defs797">
> + <inkscape:perspective
> + sodipodi:type="inkscape:persp3d"
> + inkscape:vp_x="0 : 526.18109 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_z="744.09448 : 526.18109 : 1"
> + inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
> + id="perspective803" />
> + <inkscape:perspective
> + id="perspective813"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective813-2"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1380"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1380-3"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1448"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1448-2"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1479"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1501"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1523"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1545"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1567"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1589"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective1617"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective51"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective97"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + <inkscape:perspective
> + id="perspective53"
> + inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
> + inkscape:vp_z="1 : 0.5 : 1"
> + inkscape:vp_y="0 : 1000 : 0"
> + inkscape:vp_x="0 : 0.5 : 1"
> + sodipodi:type="inkscape:persp3d" />
> + </defs>
> + <sodipodi:namedview
> + id="base"
> + pagecolor="#ffffff"
> + bordercolor="#666666"
> + borderopacity="1.0"
> + inkscape:pageopacity="0.0"
> + inkscape:pageshadow="2"
> + inkscape:zoom="7.9195959"
> + inkscape:cx="39.65323"
> + inkscape:cy="29.255214"
> + inkscape:document-units="px"
> + inkscape:current-layer="layer1"
> + showgrid="false"
> + inkscape:object-paths="true"
> + inkscape:snap-nodes="true"
> + inkscape:object-nodes="false"
> + inkscape:snap-bbox="true"
> + inkscape:snap-global="false"
> + showguides="true"
> + inkscape:guide-bbox="true"
> + inkscape:window-width="1440"
> + inkscape:window-height="829"
> + inkscape:window-x="0"
> + inkscape:window-y="25">
> + <sodipodi:guide
> + orientation="0,1"
> + position="27.021581,50.002551"
> + id="guide1605" />
> + <sodipodi:guide
> + orientation="0,1"
> + position="27.021581,6.0609153"
> + id="guide1607" />
> + </sodipodi:namedview>
> + <metadata
> + id="metadata800">
> + <rdf:RDF>
> + <cc:Work
> + rdf:about="">
> + <dc:format>image/svg+xml</dc:format>
> + <dc:type
> + rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
> + <dc:title></dc:title>
> + </cc:Work>
> + </rdf:RDF>
> + </metadata>
> + <g
> + inkscape:label="Capa 1"
> + inkscape:groupmode="layer"
> + id="layer1">
> + <path
> + sodipodi:type="arc"
> + style="fill:none;stroke:#ffffff"
> + id="path12"
> + sodipodi:cx="-32.640553"
> + sodipodi:cy="30.440666"
> + sodipodi:rx="8.901969"
> + sodipodi:ry="11.301082"
> + 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"
> + transform="matrix(1.2765958,0,0,1.0558659,19.192898,-13.127946)" />
> + <path
> +
> style="fill:none;stroke:#ffffff;stroke-width:1.44962609;stroke-opacity:1"
> + 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"
> + id="path1405-0"
> + sodipodi:nodetypes="csssc" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.50547338;stroke-opacity:1"
> + id="rect1438-8"
> + width="2.916333"
> + height="21.188446"
> + x="18.332197"
> + y="13.76814"
> + ry="1.3939767" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.41987956;stroke-opacity:1"
> + id="rect1438-1-87"
> + width="2.8716421"
> + height="19.140917"
> + x="-35.091366"
> + y="-38.207035"
> + ry="1.259271"
> + transform="matrix(0,-1,-1,0,0,0)" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:1.21988189;stroke-opacity:1"
> + id="rect1438-0-4"
> + width="2.5733202"
> + height="15.766372"
> + x="-5.4068875"
> + y="-65.997124"
> + ry="1.0372615"
> +
> transform="matrix(-0.55477829,0.83199823,-0.68762037,-0.72607041,0,0)" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.98759735;stroke-opacity:1"
> + id="rect1438-0-1-8"
> + width="2.0588"
> + height="12.916228"
> + x="6.7647386"
> + y="-38.278324"
> + ry="0.84975183"
> +
> transform="matrix(-0.21998034,0.97550431,-0.88967727,-0.45658992,0,0)" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.69142139;stroke-opacity:1"
> + id="rect1438-1-8-5"
> + width="0.98179615"
> + height="13.275604"
> + x="-30.243309"
> + y="-41.495876"
> + ry="0.87339497"
> + transform="matrix(0,-1,-1,0,0,0)" />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.64177793;stroke-opacity:1"
> + id="rect1438-1-8-0-0"
> + width="0.97070193"
> + height="11.568416"
> + x="50.822704"
> + y="-8.6089849"
> + ry="0.76108003"
> + transform="matrix(0.89791652,0.44016579,0.56230073,-0.82693282,0,0)"
> />
> + <rect
> +
> style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.68172067;stroke-opacity:1"
> + id="rect1438-0-1-7-7"
> + width="1.6299056"
> + height="7.7739253"
> + x="72.759727"
> + y="35.364716"
> + ry="0.51144254"
> + transform="matrix(0.9888174,0.14913131,-0.60877492,0.79334299,0,0)"
> />
> + <path
> + sodipodi:type="arc"
> +
> style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-opacity:1"
> + id="path1603-2"
> + sodipodi:cx="76.392784"
> + sodipodi:cy="18.634508"
> + sodipodi:rx="3.2829957"
> + sodipodi:ry="3.0304577"
> + 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"
> + transform="matrix(1.5397454,0,0,1.4719643,-97.932275,-17.750188)" />
> + </g>
> +</svg>
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/__init__.py
> sugar-0.88.1/extensions/cpsection/accessibility/__init__.py
> ---
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/__init__.py
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/extensions/cpsection/accessibility/__init__.py
> 2010-06-02 15:00:27.328970000 -0300
> @@ -0,0 +1,25 @@
> +# Copyright (C) 2010 Plan Ceibal
> +#
> +# Author: Esteban Arias <earias at plan.ceibal.edu.uy>
> +# Contact information: comunidad at plan.ceibal.edu.uy
> +# Plan Ceibal http://www.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
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# You should have received a copy of the GNU General Public License
> +# along with this program. If not, see <http://www.gnu.org/licenses/>.
> +
> +from gettext import gettext as _
> +
> +CLASS = 'accessibility'
> +ICON = 'module-accessibility'
> +TITLE = _('Accessibility')
> +
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.am
> sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am
> ---
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.am
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.am
> 2010-06-02 15:00:27.329800000 -0300
> @@ -0,0 +1,6 @@
> +sugardir = $(pkgdatadir)/extensions/cpsection/accessibility
> +
> +sugar_PYTHON = \
> + __init__.py \
> + model.py \
> + view.py
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.in
> sugar-0.88.1/extensions/cpsection/accessibility/Makefile.in
> ---
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/Makefile.in
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/extensions/cpsection/accessibility/Makefile.in
> 2010-06-02 15:00:27.306799000 -0300
> @@ -0,0 +1,423 @@
> +# Makefile.in generated by automake 1.11 from Makefile.am.
> +# @configure_input@
> +
> +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
> +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
> +# Inc.
> +# This Makefile.in is free software; the Free Software Foundation
> +# gives unlimited permission to copy and/or distribute it,
> +# with or without modifications, as long as this notice is preserved.
> +
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
> +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
> +# PARTICULAR PURPOSE.
> +
> + at SET_MAKE@
> +VPATH = @srcdir@
> +pkgdatadir = $(datadir)/@PACKAGE@
> +pkgincludedir = $(includedir)/@PACKAGE@
> +pkglibdir = $(libdir)/@PACKAGE@
> +pkglibexecdir = $(libexecdir)/@PACKAGE@
> +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
> +install_sh_DATA = $(install_sh) -c -m 644
> +install_sh_PROGRAM = $(install_sh) -c
> +install_sh_SCRIPT = $(install_sh) -c
> +INSTALL_HEADER = $(INSTALL_DATA)
> +transform = $(program_transform_name)
> +NORMAL_INSTALL = :
> +PRE_INSTALL = :
> +POST_INSTALL = :
> +NORMAL_UNINSTALL = :
> +PRE_UNINSTALL = :
> +POST_UNINSTALL = :
> +subdir = extensions/cpsection/accessibility
> +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
> + $(sugar_PYTHON)
> +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
> +am__aclocal_m4_deps = $(top_srcdir)/configure.ac
> +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
> + $(ACLOCAL_M4)
> +mkinstalldirs = $(install_sh) -d
> +CONFIG_CLEAN_FILES =
> +CONFIG_CLEAN_VPATH_FILES =
> +SOURCES =
> +DIST_SOURCES =
> +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
> +am__vpath_adj = case $$p in \
> + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
> + *) f=$$p;; \
> + esac;
> +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
> +am__install_max = 40
> +am__nobase_strip_setup = \
> + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
> +am__nobase_strip = \
> + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
> +am__nobase_list = $(am__nobase_strip_setup); \
> + for p in $$list; do echo "$$p $$p"; done | \
> + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' |
> \
> + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
> + if (++n[$$2] == $(am__install_max)) \
> + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
> + END { for (dir in files) print dir, files[dir] }'
> +am__base_list = \
> + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
> + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
> +am__installdirs = "$(DESTDIR)$(sugardir)"
> +py_compile = $(top_srcdir)/py-compile
> +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
> +ACLOCAL = @ACLOCAL@
> +ALL_LINGUAS = @ALL_LINGUAS@
> +AMTAR = @AMTAR@
> +AUTOCONF = @AUTOCONF@
> +AUTOHEADER = @AUTOHEADER@
> +AUTOMAKE = @AUTOMAKE@
> +AWK = @AWK@
> +CATALOGS = @CATALOGS@
> +CATOBJEXT = @CATOBJEXT@
> +CC = @CC@
> +CCDEPMODE = @CCDEPMODE@
> +CFLAGS = @CFLAGS@
> +CPP = @CPP@
> +CPPFLAGS = @CPPFLAGS@
> +CYGPATH_W = @CYGPATH_W@
> +DATADIRNAME = @DATADIRNAME@
> +DEFS = @DEFS@
> +DEPDIR = @DEPDIR@
> +ECHO_C = @ECHO_C@
> +ECHO_N = @ECHO_N@
> +ECHO_T = @ECHO_T@
> +EGREP = @EGREP@
> +EXEEXT = @EXEEXT@
> +GCONFTOOL = @GCONFTOOL@
> +GCONF_SCHEMA_CONFIG_SOURCE = @GCONF_SCHEMA_CONFIG_SOURCE@
> +GCONF_SCHEMA_FILE_DIR = @GCONF_SCHEMA_FILE_DIR@
> +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
> +GMOFILES = @GMOFILES@
> +GMSGFMT = @GMSGFMT@
> +GREP = @GREP@
> +INSTALL = @INSTALL@
> +INSTALL_DATA = @INSTALL_DATA@
> +INSTALL_PROGRAM = @INSTALL_PROGRAM@
> +INSTALL_SCRIPT = @INSTALL_SCRIPT@
> +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
> +INSTOBJEXT = @INSTOBJEXT@
> +INTLLIBS = @INTLLIBS@
> +INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
> +INTLTOOL_MERGE = @INTLTOOL_MERGE@
> +INTLTOOL_PERL = @INTLTOOL_PERL@
> +INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
> +LDFLAGS = @LDFLAGS@
> +LIBOBJS = @LIBOBJS@
> +LIBS = @LIBS@
> +LTLIBOBJS = @LTLIBOBJS@
> +MAINT = @MAINT@
> +MAKEINFO = @MAKEINFO@
> +MKDIR_P = @MKDIR_P@
> +MKINSTALLDIRS = @MKINSTALLDIRS@
> +MSGFMT = @MSGFMT@
> +MSGFMT_OPTS = @MSGFMT_OPTS@
> +MSGMERGE = @MSGMERGE@
> +OBJEXT = @OBJEXT@
> +PACKAGE = @PACKAGE@
> +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
> +PACKAGE_NAME = @PACKAGE_NAME@
> +PACKAGE_STRING = @PACKAGE_STRING@
> +PACKAGE_TARNAME = @PACKAGE_TARNAME@
> +PACKAGE_VERSION = @PACKAGE_VERSION@
> +PATH_SEPARATOR = @PATH_SEPARATOR@
> +PKG_CONFIG = @PKG_CONFIG@
> +POFILES = @POFILES@
> +POSUB = @POSUB@
> +PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
> +PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
> +PYTHON = @PYTHON@
> +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
> +PYTHON_PLATFORM = @PYTHON_PLATFORM@
> +PYTHON_PREFIX = @PYTHON_PREFIX@
> +PYTHON_VERSION = @PYTHON_VERSION@
> +SET_MAKE = @SET_MAKE@
> +SHELL = @SHELL@
> +SHELL_CFLAGS = @SHELL_CFLAGS@
> +SHELL_LIBS = @SHELL_LIBS@
> +STRIP = @STRIP@
> +SUCROSE_VERSION = @SUCROSE_VERSION@
> +USE_NLS = @USE_NLS@
> +VERSION = @VERSION@
> +XGETTEXT = @XGETTEXT@
> +abs_builddir = @abs_builddir@
> +abs_srcdir = @abs_srcdir@
> +abs_top_builddir = @abs_top_builddir@
> +abs_top_srcdir = @abs_top_srcdir@
> +ac_ct_CC = @ac_ct_CC@
> +am__include = @am__include@
> +am__leading_dot = @am__leading_dot@
> +am__quote = @am__quote@
> +am__tar = @am__tar@
> +am__untar = @am__untar@
> +bindir = @bindir@
> +build_alias = @build_alias@
> +builddir = @builddir@
> +datadir = @datadir@
> +datarootdir = @datarootdir@
> +docdir = @docdir@
> +dvidir = @dvidir@
> +exec_prefix = @exec_prefix@
> +host_alias = @host_alias@
> +htmldir = @htmldir@
> +includedir = @includedir@
> +infodir = @infodir@
> +install_sh = @install_sh@
> +libdir = @libdir@
> +libexecdir = @libexecdir@
> +localedir = @localedir@
> +localstatedir = @localstatedir@
> +mandir = @mandir@
> +mkdir_p = @mkdir_p@
> +oldincludedir = @oldincludedir@
> +pdfdir = @pdfdir@
> +pkgpyexecdir = @pkgpyexecdir@
> +pkgpythondir = @pkgpythondir@
> +prefix = @prefix@
> +program_transform_name = @program_transform_name@
> +psdir = @psdir@
> +pyexecdir = @pyexecdir@
> +pythondir = @pythondir@
> +sbindir = @sbindir@
> +sharedstatedir = @sharedstatedir@
> +srcdir = @srcdir@
> +sysconfdir = @sysconfdir@
> +target_alias = @target_alias@
> +top_build_prefix = @top_build_prefix@
> +top_builddir = @top_builddir@
> +top_srcdir = @top_srcdir@
> +sugardir = $(pkgdatadir)/extensions/cpsection/accessibility
> +sugar_PYTHON = \
> + __init__.py \
> + model.py \
> + view.py
> +
> +all: all-am
> +
> +.SUFFIXES:
> +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am
> $(am__configure_deps)
> + @for dep in $?; do \
> + case '$(am__configure_deps)' in \
> + *$$dep*) \
> + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
> + && { if test -f $@; then exit 0; else break; fi; }; \
> + exit 1;; \
> + esac; \
> + done; \
> + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign
> extensions/cpsection/accessibility/Makefile'; \
> + $(am__cd) $(top_srcdir) && \
> + $(AUTOMAKE) --foreign extensions/cpsection/accessibility/Makefile
> +.PRECIOUS: Makefile
> +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
> + @case '$?' in \
> + *config.status*) \
> + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
> + *) \
> + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
> $(am__depfiles_maybe)'; \
> + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
> $(am__depfiles_maybe);; \
> + esac;
> +
> +$(top_builddir)/config.status: $(top_srcdir)/configure
> $(CONFIG_STATUS_DEPENDENCIES)
> + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
> +
> +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
> + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
> +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
> + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
> +$(am__aclocal_m4_deps):
> +install-sugarPYTHON: $(sugar_PYTHON)
> + @$(NORMAL_INSTALL)
> + test -z "$(sugardir)" || $(MKDIR_P) "$(DESTDIR)$(sugardir)"
> + @list='$(sugar_PYTHON)'; dlist=; list2=; test -n "$(sugardir)" ||
> list=; \
> + for p in $$list; do \
> + if test -f "$$p"; then b=; else b="$(srcdir)/"; fi; \
> + if test -f $$b$$p; then \
> + $(am__strip_dir) \
> + dlist="$$dlist $$f"; \
> + list2="$$list2 $$b$$p"; \
> + else :; fi; \
> + done; \
> + for file in $$list2; do echo $$file; done | $(am__base_list) | \
> + while read files; do \
> + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sugardir)'"; \
> + $(INSTALL_DATA) $$files "$(DESTDIR)$(sugardir)" || exit $$?; \
> + done || exit $$?; \
> + if test -n "$$dlist"; then \
> + if test -z "$(DESTDIR)"; then \
> + PYTHON=$(PYTHON) $(py_compile) --basedir "$(sugardir)" $$dlist; \
> + else \
> + PYTHON=$(PYTHON) $(py_compile) --destdir "$(DESTDIR)" --basedir
> "$(sugardir)" $$dlist; \
> + fi; \
> + else :; fi
> +
> +uninstall-sugarPYTHON:
> + @$(NORMAL_UNINSTALL)
> + @list='$(sugar_PYTHON)'; test -n "$(sugardir)" || list=; \
> + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
> + test -n "$$files" || exit 0; \
> + filesc=`echo "$$files" | sed 's|$$|c|'`; \
> + fileso=`echo "$$files" | sed 's|$$|o|'`; \
> + echo " ( cd '$(DESTDIR)$(sugardir)' && rm -f" $$files ")"; \
> + cd "$(DESTDIR)$(sugardir)" && rm -f $$files || exit $$?; \
> + echo " ( cd '$(DESTDIR)$(sugardir)' && rm -f" $$filesc ")"; \
> + cd "$(DESTDIR)$(sugardir)" && rm -f $$filesc || exit $$?; \
> + echo " ( cd '$(DESTDIR)$(sugardir)' && rm -f" $$fileso ")"; \
> + cd "$(DESTDIR)$(sugardir)" && rm -f $$fileso
> +tags: TAGS
> +TAGS:
> +
> +ctags: CTAGS
> +CTAGS:
> +
> +
> +distdir: $(DISTFILES)
> + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
> + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
> + list='$(DISTFILES)'; \
> + dist_files=`for file in $$list; do echo $$file; done | \
> + sed -e "s|^$$srcdirstrip/||;t" \
> + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
> + case $$dist_files in \
> + */*) $(MKDIR_P) `echo "$$dist_files" | \
> + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
> + sort -u` ;; \
> + esac; \
> + for file in $$dist_files; do \
> + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi;
> \
> + if test -d $$d/$$file; then \
> + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
> + if test -d "$(distdir)/$$file"; then \
> + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx
> {} \;; \
> + fi; \
> + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
> + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
> + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx
> {} \;; \
> + fi; \
> + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
> + else \
> + test -f "$(distdir)/$$file" \
> + || cp -p $$d/$$file "$(distdir)/$$file" \
> + || exit 1; \
> + fi; \
> + done
> +check-am: all-am
> +check: check-am
> +all-am: Makefile
> +installdirs:
> + for dir in "$(DESTDIR)$(sugardir)"; do \
> + test -z "$$dir" || $(MKDIR_P) "$$dir"; \
> + done
> +install: install-am
> +install-exec: install-exec-am
> +install-data: install-data-am
> +uninstall: uninstall-am
> +
> +install-am: all-am
> + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
> +
> +installcheck: installcheck-am
> +install-strip:
> + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
> + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
> + `test -z '$(STRIP)' || \
> + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
> +mostlyclean-generic:
> +
> +clean-generic:
> +
> +distclean-generic:
> + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
> + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f
> $(CONFIG_CLEAN_VPATH_FILES)
> +
> +maintainer-clean-generic:
> + @echo "This command is intended for maintainers to use"
> + @echo "it deletes files that may require special tools to rebuild."
> +clean: clean-am
> +
> +clean-am: clean-generic mostlyclean-am
> +
> +distclean: distclean-am
> + -rm -f Makefile
> +distclean-am: clean-am distclean-generic
> +
> +dvi: dvi-am
> +
> +dvi-am:
> +
> +html: html-am
> +
> +html-am:
> +
> +info: info-am
> +
> +info-am:
> +
> +install-data-am: install-sugarPYTHON
> +
> +install-dvi: install-dvi-am
> +
> +install-dvi-am:
> +
> +install-exec-am:
> +
> +install-html: install-html-am
> +
> +install-html-am:
> +
> +install-info: install-info-am
> +
> +install-info-am:
> +
> +install-man:
> +
> +install-pdf: install-pdf-am
> +
> +install-pdf-am:
> +
> +install-ps: install-ps-am
> +
> +install-ps-am:
> +
> +installcheck-am:
> +
> +maintainer-clean: maintainer-clean-am
> + -rm -f Makefile
> +maintainer-clean-am: distclean-am maintainer-clean-generic
> +
> +mostlyclean: mostlyclean-am
> +
> +mostlyclean-am: mostlyclean-generic
> +
> +pdf: pdf-am
> +
> +pdf-am:
> +
> +ps: ps-am
> +
> +ps-am:
> +
> +uninstall-am: uninstall-sugarPYTHON
> +
> +.MAKE: install-am install-strip
> +
> +.PHONY: all all-am check check-am clean clean-generic distclean \
> + distclean-generic distdir dvi dvi-am html html-am info info-am \
> + install install-am install-data install-data-am install-dvi \
> + install-dvi-am install-exec install-exec-am install-html \
> + install-html-am install-info install-info-am install-man \
> + install-pdf install-pdf-am install-ps install-ps-am \
> + install-strip install-sugarPYTHON installcheck installcheck-am \
> + installdirs maintainer-clean maintainer-clean-generic \
> + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \
> + uninstall-am uninstall-sugarPYTHON
> +
> +
> +# Tell versions [3.59,3.63) of GNU make to not export all variables.
> +# Otherwise a system limit (for SysV at least) may be exceeded.
> +.NOEXPORT:
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/model.py
> sugar-0.88.1/extensions/cpsection/accessibility/model.py
> ---
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/model.py
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/extensions/cpsection/accessibility/model.py 2010-06-03
> 11:12:50.057315000 -0300
> @@ -0,0 +1,55 @@
> +# Copyright (C) 2010 Plan Ceibal
> +#
> +# Author: Esteban Arias <earias at plan.ceibal.edu.uy>
> +# Contact information: comunidad at plan.ceibal.edu.uy
> +# Plan Ceibal http://www.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
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# 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()
> +
> +KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys']
> +
> +def get_mouse_keys():
> + return keyboard.get_mouse_keys()
> +
> +def set_mouse_keys(activar):
> + keyboard.set_mouse_keys(activar)
> +
> +def print_mouse_keys():
> + print str(get_mouse_keys())
> +
> +def get_sticky_keys():
> + return keyboard.get_sticky_keys()
> +
> +def set_sticky_keys(activar):
> + keyboard.set_sticky_keys(activar)
> +
> +def print_sticky_keys():
> + print str(get_sticky_keys())
> +
> +def get_bounce_keys():
> + return keyboard.get_bounce_keys()
> +
> +def set_bounce_keys(activar):
> + keyboard.set_bounce_keys(activar)
> +
> +def print_bounce_keys():
> + print str(get_bounce_keys())
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/view.py
> sugar-0.88.1/extensions/cpsection/accessibility/view.py
> ---
> sugar-0.88.1.original.con.parches/extensions/cpsection/accessibility/view.py
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/extensions/cpsection/accessibility/view.py 2010-06-02
> 15:00:27.316801000 -0300
> @@ -0,0 +1,114 @@
> +# Copyright (C) 2010 Plan Ceibal
> +#
> +# Author: Esteban Arias <earias at plan.ceibal.edu.uy>
> +# Contact information: comunidad at plan.ceibal.edu.uy
> +# Plan Ceibal http://www.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
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# 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 gtk
> +from gettext import gettext as _
> +
> +from sugar.graphics import style
> +
> +from jarabe import config
> +from jarabe.controlpanel.sectionview import SectionView
> +from jarabe.controlpanel.inlinealert import InlineAlert
> +
> +class accessibility(SectionView):
> + def __init__(self, model, alerts=None):
> + SectionView.__init__(self)
> +
> + self._model = model
> + 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)
> +
> + self._view_mouse_keys()
> + self._view_sticky_keys()
> + self._view_bounce_keys()
> +
> + self.pack_start(self.box_pm, expand=False)
> + self.box_pm.show()
> +
> + def _set_mouse_keys(self, widget):
> + state = widget.get_active()
> + self._model.set_mouse_keys(state)
> +
> + def _set_sticky_keys(self, widget):
> + state = widget.get_active()
> + self._model.set_sticky_keys(state)
> +
> + def _set_bounce_keys(self, widget):
> + state = widget.get_active()
> + self._model.set_bounce_keys(state)
> +
> + 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)
> +
> + 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.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)
> + lbl_mouse.show()
> +
> + def _view_sticky_keys(self):
> + self.btn_sticky_keys = gtk.CheckButton(_('Sticky Keys'))
> + 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.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)
> + lbl_sticky.show()
> +
> + def _view_bounce_keys(self):
> + self.btn_bounce_keys = gtk.CheckButton(_('Bounce Keys'))
> + 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.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)
> + lbl_bounce.show()
> diff -u -r -N
> sugar-0.88.1.original.con.parches/extensions/cpsection/Makefile.am
> sugar-0.88.1/extensions/cpsection/Makefile.am
> --- sugar-0.88.1.original.con.parches/extensions/cpsection/Makefile.am
> 2010-06-21 11:39:19.903055000 -0300
> +++ sugar-0.88.1/extensions/cpsection/Makefile.am 2010-06-21
> 13:17:52.794055895 -0300
> @@ -1,6 +1,7 @@
> SUBDIRS = \
> aboutme \
> aboutcomputer \
> + accessibility \
> datetime \
> frame \
> journalmanagement \
> diff -u -r -N sugar-0.88.1.original.con.parches/po/es.po
> sugar-0.88.1/po/es.po
> --- sugar-0.88.1.original.con.parches/po/es.po 2010-06-21
> 11:38:52.234179000 -0300
> +++ sugar-0.88.1/po/es.po 2010-06-21 12:14:22.363180560 -0300
> @@ -1313,6 +1313,33 @@
> "Para aplicar la restauración del Diario, se requiere reiniciar. \n\n"
> "Se restaurará el respado realizado para este equipo "
>
> +#: ../extensions/cpsection/accessibility/__init__.py:24
> +msgid "Accessibility"
> +msgstr "Accesibilidad"
> +
> +#: ../extensions/cpsection/accessibility/view.py:77
> +msgid "Mouse Keys"
> +msgstr "Teclas del ratón"
> +
> +#: ../extensions/cpsection/accessibility/view.py:84
> +msgid "Move the mouse pointer with keyboard number."
> +msgstr "Mover el puntero del ratón con un teclado numérico o con las teclas
> de juego."
> +
> +#: ../extensions/cpsection/accessibility/view.py:90
> +msgid "Sticky Keys"
> +msgstr "Teclas pegajosas"
> +
> +#: ../extensions/cpsection/accessibility/view.py:97
> +msgid "Instead of having to press two keys at once (such as CTRL + Q), you
> can press one key at a time."
> +msgstr "En lugar de tener que pulsar dos teclas a la vez (por ejemplo, CTRL
> + Q), permite pulsar una tecla a la vez."
> +
> +#: ../extensions/cpsection/accessibility/view.py:104
> +msgid "Bounce Keys"
> +msgstr "Teclas de rebote"
> +
> +#: ../extensions/cpsection/accessibility/view.py:111
> +msgid "Ignore rapid, repeated keypresses of the same key."
> +msgstr "Ignora la presión rápida y repetida de una tecla."
>
> #~ msgid "Cannot obtain data needed for registration."
> #~ msgstr "No se puede obtener datos necesarios para el registro"
> diff -u -r -N
> sugar-0.88.1.original.con.parches/src/jarabe/model/accessibility.py
> sugar-0.88.1/src/jarabe/model/accessibility.py
> --- sugar-0.88.1.original.con.parches/src/jarabe/model/accessibility.py
> 1969-12-31 21:00:00.000000000 -0300
> +++ sugar-0.88.1/src/jarabe/model/accessibility.py 2010-06-03
> 11:12:48.819190000 -0300
> @@ -0,0 +1,76 @@
> +# Copyright (C) 2010 Plan Ceibal
> +#
> +# Author: Esteban Arias <earias at plan.ceibal.edu.uy>
> +# Contact information: comunidad at plan.ceibal.edu.uy
> +# Plan Ceibal http://www.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
> +# the Free Software Foundation, either version 3 of the License, or
> +# (at your option) any later version.
> +#
> +# This program is distributed in the hope that it will be useful,
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> +# GNU General Public License for more details.
> +#
> +# 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 _
> +
> +class Keyboard:
> +
> + def get_mouse_keys(self):
> + client = gconf.client_get_default()
> + return
> client.get_bool("/desktop/gnome/accessibility/keyboard/mousekeys_enable")
> +
> + def set_mouse_keys(self, activar):
> + client = gconf.client_get_default()
> +
> client.set_bool("/desktop/gnome/accessibility/keyboard/mousekeys_enable",
> activar)
> + self.run_config_keyboard()
> +
> + def get_sticky_keys(self):
> + client = gconf.client_get_default()
> + return
> client.get_bool("/desktop/gnome/accessibility/keyboard/stickykeys_enable")
> +
> + def set_sticky_keys(self, activar):
> + client = gconf.client_get_default()
> +
> client.set_bool("/desktop/gnome/accessibility/keyboard/stickykeys_enable",
> activar)
> + self.run_config_keyboard()
> +
> + def get_bounce_keys(self):
> + client = gconf.client_get_default()
> + return
> client.get_bool("/desktop/gnome/accessibility/keyboard/bouncekeys_enable")
> +
> + def set_bounce_keys(self, activar):
> + client = gconf.client_get_default()
> +
> client.set_bool("/desktop/gnome/accessibility/keyboard/bouncekeys_enable",
> activar)
> + self.run_config_keyboard()
> +
> + def run_config_keyboard(self):
> + cmd = ['ax']
> + if self.get_sticky_keys():
> + cmd.append('+stickykeys')
> + else:
> + cmd.append('-stickykeys')
> + if self.get_bounce_keys():
> + cmd.append('+bouncekeys')
> + else:
> + cmd.append('-bouncekeys')
> + if self.get_mouse_keys():
> + cmd += ['+mousekeys', 'mousemaxspeed', '3000',
> 'mousetimetomax', '1000', '-timeout', '-repeatkeys']
> + else:
> + cmd += ['-mousekeys', 'mousemaxspeed', '3000',
> 'mousetimetomax', '1000', '+timeout', '+repeatkeys']
> + subprocess.call(cmd)
> +
> +class AccessibilityManager:
> + def setup_accessibility(self):
> + client = gconf.client_get_default()
> + is_accessibility =
> client.dir_exists("/desktop/gnome/accessibility")
> + if is_accessibility:
> + keyboard = Keyboard()
> + keyboard.run_config_keyboard()
> diff -u -r -N sugar-0.88.1.original.con.parches/src/jarabe/model/Makefile.am
> sugar-0.88.1/src/jarabe/model/Makefile.am
> --- sugar-0.88.1.original.con.parches/src/jarabe/model/Makefile.am
> 2010-06-21 11:38:48.943180000 -0300
> +++ sugar-0.88.1/src/jarabe/model/Makefile.am 2010-06-21
> 11:45:58.165181239 -0300
> @@ -1,6 +1,7 @@
> sugardir = $(pythondir)/jarabe/model
> sugar_PYTHON = \
> __init__.py \
> + accessibility.py \
> buddy.py \
> bundleregistry.py \
> filetransfer.py \
>
> ----------------------------------------------
> Dependency: http://koji.fedoraproject.org/koji/taskinfo?taskID=2268468
>
>
>
>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>
>
--
Walter Bender
Sugar Labs
http://www.sugarlabs.org
More information about the Sugar-devel
mailing list