Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Util/KeyboardWindow.py
diff options
context:
space:
mode:
authorNat <natcl@hotmail.com>2007-06-27 19:03:12 (GMT)
committer Nat <natcl@hotmail.com>2007-06-27 19:03:12 (GMT)
commit9700fc744067ac95d8682359ad6413e9fec20af3 (patch)
treeb77d359362addbdf30f80a588dbc2f89a8aa7cad /Util/KeyboardWindow.py
parent1a360aa3235c5b661f8eff0f9b57de4816e73d68 (diff)
Keyboard movement
Diffstat (limited to 'Util/KeyboardWindow.py')
-rw-r--r--Util/KeyboardWindow.py82
1 files changed, 58 insertions, 24 deletions
diff --git a/Util/KeyboardWindow.py b/Util/KeyboardWindow.py
index e9f00ea..b421908 100644
--- a/Util/KeyboardWindow.py
+++ b/Util/KeyboardWindow.py
@@ -6,23 +6,32 @@ 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("button-press-event",self.close)
+ 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,40 +49,56 @@ 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())
@@ -86,6 +111,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()