1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
From efd8f0a023902aae41d07bc576908e6b067e67aa Mon Sep 17 00:00:00 2001
From: Unknown <unknown@unknown.org>
Date: Mon, 1 Nov 2010 17:59:06 +0100
Subject: [PATCH sugar 25/74] accessibility_0002_magnifier_extension.patch
---
extensions/globalkey/Makefile.am | 1 +
extensions/globalkey/magnifier.py | 96 +++++++++++++++++++++++++++++++++++++
2 files changed, 97 insertions(+), 0 deletions(-)
create mode 100644 extensions/globalkey/magnifier.py
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
--
1.7.6
|