Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import cProfile, pstats
import locale
import os
from tuikit.application import Application
from tuikit.window import Window
from tuikit.button import Button
class MyApplication(Application):
def __init__(self):
Application.__init__(self)
self.top.add_handler('keypress', self.on_top_keypress)
#edit = EditField(50, 'DlouhyTest12')
#self.top.add(edit)
win = Window()
self.top.add(win)
button = Button('click!')
win.add(button)
button.x = 10
button.y = 7
button.add_handler('click', self.on_button_click)
self.button = button
subwin = Window(8,8)
win.add(subwin)
def on_button_click(self, ev):
self.button.label = 'YES'
return True
def on_top_keypress(self, ev):
if ev.keyname == 'escape':
self.terminate()
return True
if __name__ == '__main__':
locale.setlocale(locale.LC_ALL, '')
os.environ['ESCDELAY'] = '25' # do not wait 1 second after pressing Escape key
app = MyApplication()
#app.start()
cProfile.run('app.start()', 'demo_window.appstats')
p = pstats.Stats('demo_window.appstats')
p.sort_stats('time', 'cumulative').print_stats(20)