import elementary
import edje
import evas
import ecore
from ecore.x import ECORE_X_VIRTUAL_KEYBOARD_STATE_OFF, ECORE_X_VIRTUAL_KEYBOARD_STATE_ON
class Gui(object):
"""Elementary gui window"""
def __init__(self):
elementary.init()
win = elementary.Window("arcolev", elementary.ELM_WIN_BASIC)
win.title_set("arcolev")
win.callback_destroy_add(self.destroy)
ly = elementary.Layout(win)
ly.file_set("gui.edj", "CreateContact")
win.resize_object_add(ly)
ly.show()
self.cells = ["","","","","","",""]
self._create_entry(win, ly, "0")
self._create_entry(win, ly, "1")
self._create_entry(win, ly, "2")
self._create_entry(win, ly, "3")
self._create_entry(win, ly, "4")
self._create_entry(win, ly, "5")
self._create_entry(win, ly, "6")
win.resize(800, 480) # for Nokia N900
#win.resize(480, 640-272) # with illume keyboard
#win.resize(480, 640-64) # without illume keyboard
win.show()
self.win = win
return
def _create_entry(self, win, ly, name):
scroller = elementary.Scroller(win)
scroller.size_hint_weight_set(1.0, 1.0)
scroller.size_hint_align_set(-1.0, -1.0)
scroller.bounce_set(0, 0)
scroller.show()
textbox = elementary.Entry(win)
textbox.single_line_set(True)
textbox.entry_set("")
textbox.size_hint_weight_set(1.0, 1.0)
textbox.size_hint_align_set(-1.0, -1.0)
textbox.scale_set(1.8)
textbox.show()
textbox.on_key_down_add(getattr(self, 'key_down_'+str(name)), ly)
textbox.on_mouse_down_add(getattr(self, 'mouse_down_'+str(name)), ly)
scroller.content_set(textbox)
scroller.show()
ly.content_set('cell'+name, scroller)
self.cells[int(name)] = textbox
return
def run(self):
""" launch ourself """
elementary.run()
elementary.shutdown()
return
def key_down_handler(self, name, entry, event, layout):
"""this method collects all keyboard events. If not, fix the code"""
#print "yualksdjf", name, entry, event, layout
if event.key == "Tab":
if name == "0":
print "lol", self.cells[1]
self.cells[1].focus()
elif name == "1":
print "lol1"
self.cells[2].focus()
elif name == "2":
print "lol2"
self.cells[3].focus()
elif name == "3":
print "lol3"
self.cells[4].focus()
elif name == "4":
print "lol4"
self.cells[5].focus()
elif name == "5":
print "lol5"
self.cells[6].focus()
elif name == "6":
print "lol6"
self.cells[0].focus()
return True
def mouse_down_handler(self, name, entry, event, layout):
"""this method collects all keyboard events. If not, fix the code"""
print "yualksdjf", name, entry, event, layout
return
def key_down_0(self, *args):
return self.key_down_handler('0', *args)
def key_down_1(self, *args):
return self.key_down_handler('1', *args)
def key_down_2(self, *args):
self.key_down_handler('2', *args)
return
def key_down_3(self, *args):
return self.key_down_handler('3', *args)
def key_down_4(self, *args):
self.key_down_handler('4', *args)
return
def key_down_5(self, *args):
return self.key_down_handler('5', *args)
def key_down_6(self, *args):
return self.key_down_handler('6', *args)
def mouse_down_0(self, *args):
self.mouse_down_handler('0', *args)
return
def mouse_down_1(self, *args):
self.mouse_down_handler('1', *args)
return
def mouse_down_2(self, *args):
self.mouse_down_handler('2', *args)
return
def mouse_down_3(self, *args):
self.mouse_down_handler('3', *args)
return
def mouse_down_4(self, *args):
self.mouse_down_handler('4', *args)
return
def mouse_down_5(self, *args):
self.mouse_down_handler('5', *args)
return
def mouse_down_6(self, *args):
self.mouse_down_handler('6', *args)
return
def destroy(self, obj):
print "DEBUG: window destroy callback called!"
print "DEBUG: obj:"
print obj
self._quit()
return
def _quit(self):
elementary.exit()
return
if __name__ == "__main__":
gui = Gui()
gui.run()