diff options
author | Unknown <unknown@unknown.org> | 2010-11-01 16:59:06 (GMT) |
---|---|---|
committer | Sascha Silbe <sascha-pgp@silbe.org> | 2010-11-01 16:59:06 (GMT) |
commit | 09fd6911b65ab1d63cbfa9ae3b0de28bcd3cf0f1 (patch) | |
tree | e9e56d616d9023904b594d0d709632d63a425c07 | |
parent | 2d032906ab8086082ab98449d9099945c0847f3e (diff) |
accessibility_0002_magnifier_extension.patch
-rw-r--r-- | extensions/globalkey/Makefile.am | 1 | ||||
-rw-r--r-- | extensions/globalkey/magnifier.py | 96 |
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 |