Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <unknown@unknown.org>2010-11-01 16:59:06 (GMT)
committer Sascha Silbe <sascha-pgp@silbe.org>2010-11-01 16:59:06 (GMT)
commit09fd6911b65ab1d63cbfa9ae3b0de28bcd3cf0f1 (patch)
treee9e56d616d9023904b594d0d709632d63a425c07
parent2d032906ab8086082ab98449d9099945c0847f3e (diff)
accessibility_0002_magnifier_extension.patch
-rw-r--r--extensions/globalkey/Makefile.am1
-rw-r--r--extensions/globalkey/magnifier.py96
2 files changed, 97 insertions, 0 deletions
diff --git a/extensions/globalkey/Makefile.am b/extensions/globalkey/Makefile.am
index 69afac2..49a8dd7 100644
--- a/extensions/globalkey/Makefile.am
+++ b/extensions/globalkey/Makefile.am
@@ -2,5 +2,6 @@ sugardir = $(pkgdatadir)/extensions/globalkey
sugar_PYTHON = \
__init__.py \
+ magnifier.py \
screenshot.py \
viewsource.py
diff --git a/extensions/globalkey/magnifier.py b/extensions/globalkey/magnifier.py
new file mode 100644
index 0000000..c25d9e7
--- /dev/null
+++ b/extensions/globalkey/magnifier.py
@@ -0,0 +1,96 @@
+# Copyright (C) 2010 Plan Ceibal <comunidad@plan.ceibal.edu.uy>
+
+import os
+
+import ConfigParser
+import logging
+import gobject
+
+from jarabe.view.viewsource import setup_view_source
+from sugar import env
+
+
+PATH_VMG_CONFIG = os.environ['HOME'] + '/.magnifier.ini'
+BOUND_KEYS = ['<shift>F13', 'F13', '<control>F13']
+
+def handle_key_press(key):
+ logger = logging.getLogger('magnifier')
+ logger.setLevel(logging.DEBUG)
+ logger.debug("Ejecutando magnifier......" + key)
+ if (key=='<shift>F13'):
+ set_ruta_archivo()
+ set_GraphicsTools()
+ if (key=='<control>F13'):
+ set_ruta_archivo()
+ set_InvertColors()
+ _run_cmd_async('launchVmg')
+
+def get_GraphicsTools():
+ return leer_config('General', 'GraphicsTools')
+
+def set_GraphicsTools():
+ grabar_config_GraphicsTools('General', 'GraphicsTools')
+
+def grabar_config_GraphicsTools(encabezado, etiqueta):
+ parser = ConfigParser.ConfigParser()
+ parser.read(PATH_VMG_CONFIG)
+ val_old = get_GraphicsTools()
+ if val_old == '1':
+ parser.set(encabezado, etiqueta, '0')
+ arch = open(PATH_VMG_CONFIG, 'w')
+ parser.write(arch)
+ arch.close()
+ else:
+ parser.set(encabezado, etiqueta, '1')
+ arch = open(PATH_VMG_CONFIG, 'w')
+ parser.write(arch)
+ arch.close()
+
+def get_InvertColors():
+ return leer_config('General', 'InvertColors')
+
+def set_InvertColors():
+ grabar_config_InvertColors('General', 'InvertColors')
+
+def grabar_config_InvertColors(encabezado, etiqueta):
+ parser = ConfigParser.ConfigParser()
+ parser.read(PATH_VMG_CONFIG)
+ val_old = get_InvertColors()
+ if val_old == '1':
+ parser.set(encabezado, etiqueta, '0')
+ arch = open(PATH_VMG_CONFIG, 'w')
+ parser.write(arch)
+ arch.close()
+ else:
+ parser.set(encabezado, etiqueta, '1')
+ arch = open(PATH_VMG_CONFIG, 'w')
+ parser.write(arch)
+ arch.close()
+
+def leer_config(encabezado, etiqueta):
+ parser = ConfigParser.ConfigParser()
+ parser.read(PATH_VMG_CONFIG)
+ return parser.get(encabezado, etiqueta)
+
+def set_ruta_archivo():
+ try:
+ f = file(PATH_VMG_CONFIG)
+ except:
+ PATH_VMG_CONFIG = "/root/.magnifier.ini"
+
+def _run_cmd_async(cmd):
+ logger = logging.getLogger('magnifier')
+ logger.setLevel(logging.DEBUG)
+ try:
+ gobject.spawn_async([find_and_absolutize('launchVmg')])
+ logger.debug("Ejecuto magnifier")
+ except Exception, e:
+ logger.debug("Error ejecutando magnifier" + str(e))
+
+def find_and_absolutize(script_name):
+ paths = env.os.environ['PATH'].split(':')
+ for path in paths:
+ looking_path = path + '/' + script_name
+ if env.os.path.isfile(looking_path):
+ return looking_path
+ return None