Rework layouts: Layout is now normal Container which places its children upon resize event.
Drop TopWindow, top is now any subclass of Container.
Add floater concept: floaters are widgets drawn over normal widgets, not clipped by parent.
Add HScrollbar and Scrollbar abstract base class.
#!/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
from tuikit import AnchorLayout
from tuikit.common import Borders
class MyApplication(Application):
def __init__(self):
Application.__init__(self)
self.top = AnchorLayout()
self.top.name = 'top'
self.top.add_handler('keypress', self.on_top_keypress)
#edit = EditField(50, 'DlouhyTest12')
#self.top.add(edit)
win = Window()
win.title = 'demo_window'
win.resize(80, 25)
self.top.add(win, halign='left', valign='top')
button = Button('click!')
# win.add(button, x=10, y=6)
button.add_handler('click', self.on_button_click)
self.button = button
subwin = Window()
subwin.name = 'subwin'
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)