Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/extensions/deviceicon/virtualkeyboard.py
blob: fbd0b3571ac488a5d580419f42d42aaacb237091 (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
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
from jarabe.model import accessibility

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):
    try:
        keyboard = accessibility.Keyboard()
        if keyboard.get_virtualkeyboard():
            tray.add_device(DeviceView())
    except:
        logging.error('show virtual keyboard device icon')