diff options
author | James <james@mackie.(none)> | 2007-06-27 21:57:34 (GMT) |
---|---|---|
committer | James <james@mackie.(none)> | 2007-06-27 21:57:34 (GMT) |
commit | a8197ba43f2cd8f75307c08d73f89edc777ae264 (patch) | |
tree | b6114b700620e58f6a1e78bd3c95a8ba8bcdc7d5 /Util | |
parent | 18f125431f3e9c652dc89ab455ad7a249445694f (diff) | |
parent | 7ef90d5655514c2c3f1177ba58d90da8451aad36 (diff) |
Merge branch 'master' of git+ssh://jaberg@dev.laptop.org/git/projects/tamtam
Diffstat (limited to 'Util')
-rw-r--r-- | Util/KeyboardWindow.py | 86 |
1 files changed, 61 insertions, 25 deletions
diff --git a/Util/KeyboardWindow.py b/Util/KeyboardWindow.py index e9f00ea..558ecc6 100644 --- a/Util/KeyboardWindow.py +++ b/Util/KeyboardWindow.py @@ -6,23 +6,31 @@ import random from ThemeWidgets import keyButton class KeyboardWindow(gtk.Window): - def __init__(self, size = None): + def __init__(self, size = None, pos = 0): gtk.Window.__init__(self , gtk.WINDOW_TOPLEVEL) self.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) color = gtk.gdk.color_parse("#000000") self.modify_bg(gtk.STATE_NORMAL, color) + self.set_decorated(False) + self.pos = pos + self.set_pos(self.pos) - self.connect("destroy",self.hide) self.connect("key-press-event",self.handle_keypress) self.connect("key-release-event",self.handle_keyrelease) + self.add_events(gtk.gdk.BUTTON_PRESS_MASK | gtk.gdk.ENTER_NOTIFY_MASK) + self.connect("enter-notify-event",self.handle_enter) - if size == None: - self.PIXEL_SPACE = 15 - self.HEIGHT = 45 + self.size = size + if self.size == None: + self.pixel_space = 15 + self.height = 45 else: - self.PIXEL_SPACE = size - self.HEIGHT = 3* size + self.pixel_space = size + self.height = 3* size + self.draw() + + def draw(self): self.rows = {} self.rows[1] = [(49,1), (10,3), (11,3), (12,3), (13,3), (14,3), (15,3), (16,3), (17,3), (18,3), (19,3), (20,3), (21,5)] self.rows[2] = [(23,3), (24,3), (25,3), (26,3), (27,3), (28,3), (29,3), (30,3), (31,3), (32,3), (33,3), (34,3), (35,4)] @@ -40,43 +48,62 @@ class KeyboardWindow(gtk.Window): for row in [1,2,3,4,5]: hbox = gtk.HBox() for key in self.rows[row]: - self.btn_dic[key[0]] = keyButton(self.PIXEL_SPACE * key[1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[key[0]] = keyButton(self.pixel_space * key[1], self.height, [0,0,0], [0.5,0.5,0.5]) self.btn_dic[key[0]].connect("enter",self.handle_mouseEnter) self.btn_dic[key[0]].connect("leave",self.handle_mouseLeave) - hbox.pack_start(self.btn_dic[key[0]], padding = self.PIXEL_SPACE//2) - vbox.pack_start(hbox, padding = self.PIXEL_SPACE//2) + hbox.pack_start(self.btn_dic[key[0]], padding = self.pixel_space//2) + vbox.pack_start(hbox, padding = self.pixel_space//2) mainhbox.pack_start(vbox) right_vbox = gtk.VBox() right_tophbox = gtk.HBox() right_lowhbox = gtk.HBox() - self.btn_dic[self.right_section[0][0]] = keyButton(self.PIXEL_SPACE * self.right_section[0][1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) - self.btn_dic[self.right_section[1][0]] = keyButton(self.PIXEL_SPACE * self.right_section[1][1][0], self.PIXEL_SPACE * self.right_section[1][1][1], [0,0,0], [0.5,0.5,0.5]) - self.btn_dic[self.right_section[2][0]] = keyButton(self.PIXEL_SPACE * self.right_section[2][1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) - self.btn_dic[self.right_section[3][0]] = keyButton(self.PIXEL_SPACE * self.right_section[3][1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) - self.btn_dic[self.right_section[4][0]] = keyButton(self.PIXEL_SPACE * self.right_section[4][1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) - self.btn_dic[self.right_section[5][0]] = keyButton(self.PIXEL_SPACE * self.right_section[5][1], self.HEIGHT, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[0][0]] = keyButton(self.pixel_space * self.right_section[0][1], self.height, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[1][0]] = keyButton(self.pixel_space * self.right_section[1][1][0], self.pixel_space * self.right_section[1][1][1], [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[2][0]] = keyButton(self.pixel_space * self.right_section[2][1], self.height, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[3][0]] = keyButton(self.pixel_space * self.right_section[3][1], self.height, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[4][0]] = keyButton(self.pixel_space * self.right_section[4][1], self.height, [0,0,0], [0.5,0.5,0.5]) + self.btn_dic[self.right_section[5][0]] = keyButton(self.pixel_space * self.right_section[5][1], self.height, [0,0,0], [0.5,0.5,0.5]) for key in self.right_section: self.btn_dic[key[0]].connect("enter",self.handle_mouseEnter) self.btn_dic[key[0]].connect("leave",self.handle_mouseLeave) - right_vbox.pack_start(self.btn_dic[self.right_section[0][0]], padding = self.PIXEL_SPACE//2) - right_vbox.pack_start(self.btn_dic[self.right_section[1][0]], padding = self.PIXEL_SPACE//2) - right_tophbox.pack_start(self.btn_dic[self.right_section[2][0]], padding = self.PIXEL_SPACE//2) - right_tophbox.pack_start(self.btn_dic[self.right_section[3][0]], padding = self.PIXEL_SPACE//2) - right_lowhbox.pack_start(self.btn_dic[self.right_section[4][0]], padding = self.PIXEL_SPACE//2) - right_lowhbox.pack_start(self.btn_dic[self.right_section[5][0]], padding = self.PIXEL_SPACE//2) - right_vbox.pack_start(right_tophbox, padding = self.PIXEL_SPACE//2) - right_vbox.pack_start(right_lowhbox, padding = self.PIXEL_SPACE//2) + right_vbox.pack_start(self.btn_dic[self.right_section[0][0]], padding = self.pixel_space//2) + right_vbox.pack_start(self.btn_dic[self.right_section[1][0]], padding = self.pixel_space//2) + right_tophbox.pack_start(self.btn_dic[self.right_section[2][0]], padding = self.pixel_space//2) + right_tophbox.pack_start(self.btn_dic[self.right_section[3][0]], padding = self.pixel_space//2) + right_lowhbox.pack_start(self.btn_dic[self.right_section[4][0]], padding = self.pixel_space//2) + right_lowhbox.pack_start(self.btn_dic[self.right_section[5][0]], padding = self.pixel_space//2) + right_vbox.pack_start(right_tophbox, padding = self.pixel_space//2) + right_vbox.pack_start(right_lowhbox, padding = self.pixel_space//2) mainhbox.pack_start(right_vbox) self.add(mainhbox) + + def set_pos(self,_pos = 0): + width = self.get_screen().get_width() + height = self.get_screen().get_height() + win_width = self.get_size()[0] + win_height = self.get_size()[1] + + self.pos = _pos + + pos = [0,0,0,0] + pos[0] = (0, 0) + pos[1] = (width - win_width, 0) + pos[2] = (0, height - win_height) + pos[3] = (width - win_width, height - win_height) + + self.move(pos[self.pos][0],pos[self.pos][1]) def handle_keypress(self,widget,event): - self.btn_dic[event.hardware_keycode].set_fillcolor(random.random(),random.random(),random.random()) + if event.hardware_keycode == 9: + self.hide_all() + else: + self.btn_dic[event.hardware_keycode].set_fillcolor(random.random(),random.random(),random.random()) def handle_keyrelease(self,widget,event): self.btn_dic[event.hardware_keycode].set_fillcolor(0,0,0) @@ -86,6 +113,15 @@ class KeyboardWindow(gtk.Window): def handle_mouseLeave(self,widget,event = None): widget.set_strokecolor(0.5,0.5,0.5) + + def handle_enter(self,widget,event): + if self.pos == 0: + self.set_pos(3) + else: + self.set_pos(0) + + def close(self,widget,event = None): + self.hide_all() |