Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rpms/sugar/0025-accessibility_0002_magnifier_extension.patch.patch
blob: 9a2a432fddc8b845baf939a90fbdf8b4f3a2670c (plain)
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