Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rpms/sugar/0030-accessibility_0008_cp_show-virtualkeyboard-for-acces.patch
blob: a84d066cd97ab649a28a4d5fa7cb90adc5640694 (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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
From 8c907b5c0c77b1a9adb69976c44e74a5615d127e Mon Sep 17 00:00:00 2001
From: Unknown <unknown@unknown.org>
Date: Mon, 1 Nov 2010 18:24:33 +0100
Subject: [PATCH sugar 30/74] accessibility_0008_cp_show-virtualkeyboard-for-accessibility.patch

---
 extensions/cpsection/accessibility/model.py |   13 +++++++++-
 extensions/cpsection/accessibility/view.py  |   32 ++++++++++++++++++++++++++-
 extensions/deviceicon/virtualkeyboard.py    |   10 ++++++--
 extensions/globalkey/virtualkeyboard.py     |   10 ++++++-
 src/jarabe/model/accessibility.py           |    8 ++++++
 5 files changed, 65 insertions(+), 8 deletions(-)

diff --git a/extensions/cpsection/accessibility/model.py b/extensions/cpsection/accessibility/model.py
index 9afec04..2298ec0 100644
--- a/extensions/cpsection/accessibility/model.py
+++ b/extensions/cpsection/accessibility/model.py
@@ -23,7 +23,7 @@
 screen = accessibility.Screen()
 mouse = accessibility.Mouse()
 
-KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys', 'contrast', 'white_mouse', 'accel_mouse', 'capital_letters']
+KEYWORDS = ['mouse_keys', 'sticky_keys', 'bounce_keys', 'virtualkeyboard', 'contrast', 'white_mouse', 'accel_mouse', 'capital_letters']
 
 def get_mouse_keys():
     return keyboard.get_mouse_keys()
@@ -52,6 +52,15 @@ def set_bounce_keys(activar):
 def print_bounce_keys():
     print str(get_bounce_keys())
 
+def get_virtualkeyboard():
+    return keyboard.get_virtualkeyboard()
+
+def set_virtualkeyboard(activar):
+    keyboard.set_virtualkeyboard(activar)
+
+def print_virtualkeyboard():
+    print str(get_virtualkeyboard())
+
 def get_contrast():
     return screen.get_contrast()
 
@@ -86,4 +95,4 @@ def set_accel_mouse(valor):
 	mouse.set_accel_mouse(valor)
 
 def print_accel_mouse():
-    print str(get_accel_mouse())
\ No newline at end of file
+    print str(get_accel_mouse())
diff --git a/extensions/cpsection/accessibility/view.py b/extensions/cpsection/accessibility/view.py
index f06f7ae..6208466 100644
--- a/extensions/cpsection/accessibility/view.py
+++ b/extensions/cpsection/accessibility/view.py
@@ -77,6 +77,7 @@ def _view_keyboard_options(self):
         self._view_mouse_keys()
         self._view_sticky_keys()
         self._view_bounce_keys()
+        self._view_virtualkeyboard()
 
         self._vbox_section.pack_start(self.box_pm_keyboard, expand=False)
         self.box_pm_keyboard.show()
@@ -133,6 +134,14 @@ def _set_bounce_keys(self, widget):
         state = widget.get_active()
         self._model.set_bounce_keys(state)
 
+    def _set_virtualkeyboard(self, widget):
+        state = widget.get_active()
+        self._model.set_virtualkeyboard(state)
+        self.restart_alerts.append('zone')
+        self.needs_restart = True
+        self._zone_alert.props.msg = self.restart_msg
+        self._zone_alert.show()
+
     def _set_contrast(self, widget):
         state = widget.get_active()
         self._model.set_contrast(state)
@@ -165,6 +174,9 @@ def undo(self):
         self._model.set_sticky_keys(self.init_state_sticky_keys)
         self._model.set_bounce_keys(self.init_state_bounce_keys)
 
+        self._model.set_virtualkeyboard(self.init_state_virtualkeyboard)
+        self.btn_virtualkeyboard.set_active(self.init_state_virtualkeyboard)
+
         self._model.set_contrast(self.init_state_contrast)
         self.btn_contrast.set_active(self.init_state_contrast)
 
@@ -219,6 +231,24 @@ def _view_bounce_keys(self):
         self.box_pm_keyboard.pack_start(lbl_bounce, True, True, 2)
         lbl_bounce.show()
 
+    def _view_virtualkeyboard(self):
+        self.btn_virtualkeyboard = gtk.CheckButton(_('Virtual keyboard'))
+        self._virtualkeyboard_pm_change_handler = self.btn_virtualkeyboard.connect("toggled", self._set_virtualkeyboard)
+        self.init_state_virtualkeyboard = self._model.get_virtualkeyboard()
+        if self.init_state_virtualkeyboard:
+            self.btn_virtualkeyboard.handler_block(self._virtualkeyboard_pm_change_handler)
+            self.btn_virtualkeyboard.set_active(True)
+            self.btn_virtualkeyboard.handler_unblock(self._virtualkeyboard_pm_change_handler)
+        else:
+            self.btn_virtualkeyboard.set_active(False)
+        self.box_pm_keyboard.pack_start(self.btn_virtualkeyboard, True, True, 2)
+        self.btn_virtualkeyboard.show()
+
+        lbl_virtualkeyboard = gtk.Label(_('Show virtual keyboard on frame.'))
+        lbl_virtualkeyboard.set_alignment(0, 0)
+        self.box_pm_keyboard.pack_start(lbl_virtualkeyboard, True, True, 2)
+        lbl_virtualkeyboard.show()
+
     def _view_contrast(self):
         self.btn_contrast = gtk.CheckButton(_('Contrast'))
         self._contrast_pm_change_handler = self.btn_contrast.connect("toggled", self._set_contrast)
@@ -298,4 +328,4 @@ def _view_acceleration_mouse(self):
         desc_accel_mouse.show()
 
     def setup(self):
-        pass
\ No newline at end of file
+        pass
diff --git a/extensions/deviceicon/virtualkeyboard.py b/extensions/deviceicon/virtualkeyboard.py
index 955f79b..fbd0b35 100644
--- a/extensions/deviceicon/virtualkeyboard.py
+++ b/extensions/deviceicon/virtualkeyboard.py
@@ -13,6 +13,7 @@
 from jarabe.frame.frameinvoker import FrameWidgetInvoker
 
 import jarabe.view.virtualkeyboard
+from jarabe.model import accessibility
 
 class DeviceView(TrayIcon):
 
@@ -66,7 +67,10 @@ def _close_activate_cb(self, gobject_ref):
         except:
             pass
 
-
 def setup(tray):
-    tray.add_device(DeviceView())
-
+    try:
+        keyboard = accessibility.Keyboard()
+        if keyboard.get_virtualkeyboard():
+            tray.add_device(DeviceView())
+    except:
+        logging.error('show virtual keyboard device icon')
diff --git a/extensions/globalkey/virtualkeyboard.py b/extensions/globalkey/virtualkeyboard.py
index bba0877..8cf4b0b 100644
--- a/extensions/globalkey/virtualkeyboard.py
+++ b/extensions/globalkey/virtualkeyboard.py
@@ -1,9 +1,15 @@
 import logging
 
 import jarabe.view.virtualkeyboard
+from jarabe.model import accessibility
 
 BOUND_KEYS = ['<alt>k']
 
 def handle_key_press(key):
-    logging.debug('load virtual keyboard')
-    jarabe.view.virtualkeyboard.Teclado()
+    try:
+        keyboard = accessibility.Keyboard()
+        if keyboard.get_virtualkeyboard():
+            logging.debug('load virtual keyboard')
+            jarabe.view.virtualkeyboard.Teclado()
+    except:
+        logging.error('show virtual keyboard globalkey')
diff --git a/src/jarabe/model/accessibility.py b/src/jarabe/model/accessibility.py
index 299f8d4..b1b2b8a 100644
--- a/src/jarabe/model/accessibility.py
+++ b/src/jarabe/model/accessibility.py
@@ -50,6 +50,14 @@ def set_bounce_keys(self, activar):
         client.set_bool("/desktop/sugar/accessibility/keyboard/bouncekeys_enable", activar)
         self.run_config_keyboard()
 
+    def get_virtualkeyboard(self):
+        client = gconf.client_get_default()
+        return client.get_bool("/desktop/sugar/accessibility/keyboard/virtualkeyboard_enable")
+
+    def set_virtualkeyboard(self, activar):
+        client = gconf.client_get_default()
+        client.set_bool("/desktop/sugar/accessibility/keyboard/virtualkeyboard_enable", activar)
+
     def run_config_keyboard(self):
         cmd = ['ax']
         if self.get_sticky_keys():
-- 
1.7.6