diff --git a/qwerty.py b/qwerty.py
index 2884f75..5e63e45 100755
--- a/qwerty.py
+++ b/qwerty.py
@@ -24,7 +24,7 @@ KEYS = [ "QWERTYUIOP",
"ZXCVBNM" ]
ALPHABET = KEYS[0] + KEYS[1] + KEYS[2]
-DIGITS = "0123456789"
+DIGITS = "1234567890"
BUTTON_BORDER = (0.7,0.7,0.7)
BUTTON_BORDER_ACTIVE = (0,0,0)
@@ -86,35 +86,38 @@ class SuperButton(gtk.DrawingArea):
cr.paint()
def draw_button(self,cr):
+ if self.running:
+ cr.set_source_rgb(*BUTTON_FILL_RUNNING)
+ else:
+ cr.set_source_rgb(*BUTTON_FILL)
cr.rectangle(PADDING,PADDING,self.width-2*PADDING,self.height-2*PADDING)
cr.fill()
cr.set_source_rgb(*self.fg)
cr.rectangle(PADDING,PADDING,self.width-2*PADDING,self.height-2*PADDING)
cr.stroke()
+ def draw_label(self,cr):
+ if self.active:
+ cr.set_source_rgb(*BUTTON_BORDER_ACTIVE)
+ cr.move_to(20,30)
+ cr.set_font_size(16)
+ cr.show_text(self.label)
+
def on_expose(self,widget,event):
x,y,self.width,self.height,b = widget.window.get_geometry()
cr = widget.window.cairo_create()
- if self.running:
- cr.set_source_rgb(*BUTTON_FILL_RUNNING)
- else:
- cr.set_source_rgb(*BUTTON_FILL)
self.draw_button(cr)
if self.active:
cr.set_source_rgb(*BUTTON_BORDER_ACTIVE)
+ # Draw key
cr.move_to(20, self.height-50)
cr.set_font_size(40)
cr.show_text(self.key)
- if not self.active:
- return
-
- cr.move_to(20,30)
- cr.set_font_size(16)
- cr.show_text(self.label)
+ self.draw_label(cr)
if self.icon:
self.draw_icon(cr)
@@ -143,11 +146,37 @@ class SuperButton(gtk.DrawingArea):
self.queue_draw()
def clear(self):
+ self.icon = None
self.active = False
self.running = False
self.cls = None
self.queue_draw()
+class SectionButton(SuperButton):
+ def draw_button(self,cr):
+ cr.set_source_rgb(*BUTTON_BORDER)
+ cr.move_to(0, self.height-2*PADDING)
+ if self.active:
+ cr.line_to(PADDING,PADDING)
+ cr.line_to(self.width-PADDING, PADDING)
+ cr.line_to(self.width-PADDING, self.height-2*PADDING)
+ cr.line_to(self.width, self.height-2*PADDING)
+ else:
+ cr.line_to(self.width, self.height-2*PADDING)
+ cr.move_to(PADDING, self.height-2*PADDING)
+ cr.line_to(PADDING, PADDING)
+ cr.line_to(self.width-PADDING, PADDING)
+ cr.line_to(self.width-PADDING, self.height-2*PADDING)
+ cr.stroke()
+
+ def draw_label(self,cr):
+ if self.label:
+ cr.set_source_rgb(*BUTTON_BORDER_ACTIVE)
+ cr.move_to(20,30)
+ cr.set_font_size(16)
+ cr.show_text(self.label)
+
+
class Section(object):
def __init__(self,title):
self.title = title
@@ -293,7 +322,7 @@ class GUI(object):
self.buttons[c].show()
for c in DIGITS:
- btn = SuperButton(c)
+ btn = SectionButton(c)
btn.show()
self.sbuttons.append(btn)
@@ -504,6 +533,14 @@ class GUI(object):
id = (int(k)-1)%10
defsection = id
+
+ for b in self.sbuttons:
+ b.active = False
+
+ self.sbuttons[id].active = True
+
+ for b in self.sbuttons:
+ b.queue_draw()
self.S = sections[id]
for b in self.buttons: