Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions
diff options
context:
space:
mode:
authorUnknown <unknown@unknown.org>2010-11-01 17:24:08 (GMT)
committer Anish Mangal <anish@activitycentral.com>2012-04-27 10:02:34 (GMT)
commit5676deefcc4e8202b9672d6eb9bf63405754ceb2 (patch)
tree3809621f89e392c01a5437cdd51faeed78489a09 /extensions
parent82024048dfcb7cbbf9da96fe7200e00dbc3f8077 (diff)
accessibility_0006_virtualkeyboard.patch
Diffstat (limited to 'extensions')
-rw-r--r--extensions/deviceicon/Makefile.am1
-rw-r--r--extensions/deviceicon/virtualkeyboard.py72
-rw-r--r--extensions/globalkey/Makefile.am3
-rw-r--r--extensions/globalkey/virtualkeyboard.py9
4 files changed, 84 insertions, 1 deletions
diff --git a/extensions/deviceicon/Makefile.am b/extensions/deviceicon/Makefile.am
index 0d15c38..3a74053 100644
--- a/extensions/deviceicon/Makefile.am
+++ b/extensions/deviceicon/Makefile.am
@@ -7,4 +7,5 @@ sugar_PYTHON = \
resources.py \
speaker.py \
touchpad.py \
+ virtualkeyboard.py \
volume.py
diff --git a/extensions/deviceicon/virtualkeyboard.py b/extensions/deviceicon/virtualkeyboard.py
new file mode 100644
index 0000000..955f79b
--- /dev/null
+++ b/extensions/deviceicon/virtualkeyboard.py
@@ -0,0 +1,72 @@
+from gettext import gettext as _
+
+import logging
+import gobject
+import gtk
+import gconf
+import os
+
+from sugar.graphics.tray import TrayIcon
+from sugar.graphics.xocolor import XoColor
+from sugar.graphics.palette import Palette
+from sugar.graphics import style
+from jarabe.frame.frameinvoker import FrameWidgetInvoker
+
+import jarabe.view.virtualkeyboard
+
+class DeviceView(TrayIcon):
+
+ FRAME_POSITION_RELATIVE = 500
+
+ def __init__(self):
+ icon_name = 'virtualkeyboard'
+
+ client = gconf.client_get_default()
+ color = XoColor(client.get_string('/desktop/sugar/user/color'))
+ TrayIcon.__init__(self, icon_name=icon_name, xo_color=color)
+ self.set_palette_invoker(FrameWidgetInvoker(self))
+
+ def create_palette(self):
+ palette = VirtualkeyboardPalette(_('Teclado Virtual'))
+ palette.set_group_id('frame')
+ return palette
+
+class VirtualkeyboardPalette(Palette):
+
+ def __init__(self, primary_text):
+ Palette.__init__(self, label=primary_text)
+
+ self.connect('popup', self._popup_cb)
+ self.connect('popdown', self._popdown_cb)
+
+ self._popped_up = False
+
+ self._open_item = gtk.MenuItem(_('Open'))
+ self._open_item.connect('activate', self._open_activate_cb)
+ self.menu.append(self._open_item)
+ self._open_item.show()
+
+ self._close_item = gtk.MenuItem(_('Close'))
+ self._close_item.connect('activate', self._close_activate_cb)
+ self.menu.append(self._close_item)
+ self._close_item.show()
+
+ def _popup_cb(self, gobject_ref):
+ self._popped_up = True
+
+ def _popdown_cb(self, gobject_ref):
+ self._popped_up = False
+
+ def _open_activate_cb(self, gobject_ref):
+ self.v = jarabe.view.virtualkeyboard.Teclado()
+
+ def _close_activate_cb(self, gobject_ref):
+ try:
+ self.v.close()
+ except:
+ pass
+
+
+def setup(tray):
+ tray.add_device(DeviceView())
+
diff --git a/extensions/globalkey/Makefile.am b/extensions/globalkey/Makefile.am
index 49a8dd7..b44626e 100644
--- a/extensions/globalkey/Makefile.am
+++ b/extensions/globalkey/Makefile.am
@@ -4,4 +4,5 @@ sugar_PYTHON = \
__init__.py \
magnifier.py \
screenshot.py \
- viewsource.py
+ viewsource.py \
+ virtualkeyboard.py
diff --git a/extensions/globalkey/virtualkeyboard.py b/extensions/globalkey/virtualkeyboard.py
new file mode 100644
index 0000000..bba0877
--- /dev/null
+++ b/extensions/globalkey/virtualkeyboard.py
@@ -0,0 +1,9 @@
+import logging
+
+import jarabe.view.virtualkeyboard
+
+BOUND_KEYS = ['<alt>k']
+
+def handle_key_press(key):
+ logging.debug('load virtual keyboard')
+ jarabe.view.virtualkeyboard.Teclado()