author | Radek Brich <radek.brich@devl.cz> |
Wed, 30 Jan 2013 00:38:48 +0100 | |
changeset 71 | cfd3445107b4 |
parent 62 | 2f61931520c9 |
child 74 | 23767a33a781 |
permissions | -rwxr-xr-x |
19 | 1 |
#!/usr/bin/env python3 |
2 |
# -*- coding: utf-8 -*- |
|
3 |
||
28
feee783d4fc5
DriverPygame: output to character buffer, draw whole screen at once.
Radek Brich <radek.brich@devl.cz>
parents:
19
diff
changeset
|
4 |
import cProfile, pstats |
19 | 5 |
import locale |
6 |
import os |
|
7 |
||
8 |
from tuikit.application import Application |
|
9 |
from tuikit.window import Window |
|
10 |
from tuikit.button import Button |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
11 |
from tuikit import AnchorLayout |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
12 |
from tuikit.common import Borders |
19 | 13 |
|
14 |
||
15 |
class MyApplication(Application): |
|
16 |
def __init__(self): |
|
17 |
Application.__init__(self) |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
18 |
self.top = AnchorLayout() |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
19 |
self.top.name = 'top' |
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
20 |
self.top.add_handler('keypress', self.on_top_keypress) |
19 | 21 |
|
22 |
#edit = EditField(50, 'DlouhyTest12') |
|
23 |
#self.top.add(edit) |
|
24 |
||
25 |
win = Window() |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
26 |
win.title = 'demo_window' |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
27 |
win.resize(80, 25) |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
28 |
self.top.add(win, halign='left', valign='top') |
19 | 29 |
|
30 |
button = Button('click!') |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
31 |
# win.add(button, x=10, y=6) |
19 | 32 |
|
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
33 |
button.add_handler('click', self.on_button_click) |
19 | 34 |
self.button = button |
35 |
||
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
36 |
subwin = Window() |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
37 |
subwin.name = 'subwin' |
19 | 38 |
win.add(subwin) |
39 |
||
40 |
||
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
41 |
def on_button_click(self, ev): |
19 | 42 |
self.button.label = 'YES' |
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
43 |
return True |
19 | 44 |
|
45 |
||
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
46 |
def on_top_keypress(self, ev): |
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
47 |
if ev.keyname == 'escape': |
19 | 48 |
self.terminate() |
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
49 |
return True |
19 | 50 |
|
51 |
||
52 |
if __name__ == '__main__': |
|
53 |
locale.setlocale(locale.LC_ALL, '') |
|
54 |
os.environ['ESCDELAY'] = '25' # do not wait 1 second after pressing Escape key |
|
55 |
app = MyApplication() |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
56 |
app.start() |
45
43b2279b06e1
Clean up Emitter class, simplify event handling. Fix Container.focusnext() method. Add events test (handler auto-registration, order).
Radek Brich <radek.brich@devl.cz>
parents:
29
diff
changeset
|
57 |
|
62
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
58 |
#cProfile.run('app.start()', 'demo_window.appstats') |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
59 |
#p = pstats.Stats('demo_window.appstats') |
2f61931520c9
Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents:
45
diff
changeset
|
60 |
#p.sort_stats('time', 'cumulative').print_stats(20) |
19 | 61 |