diff -r 15088f62c4ac -r 2f61931520c9 demo_anchorlayout.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/demo_anchorlayout.py Fri Jan 18 22:36:50 2013 +0100 @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import locale +import os + +from tuikit.application import Application +from tuikit.window import Window +from tuikit.label import Label +from tuikit.button import Button +from tuikit.layout 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) + + win = Window() + win.name = 'window' + win.title = 'AnchorLayout demo' + win.resize(80, 25) + self.top.add(win, halign='left', valign='top') + self.win = win + + button_valign = Button('valign: ' + self.win.hints['valign'].selected) + button_valign.name = 'button_valign' + button_valign.add_handler('click', self.on_button_align_click) + win.add(button_valign, halign='center', margin=Borders(t=2)) + + button_halign = Button('halign: ' + self.win.hints['halign'].selected) + button_halign.name = 'button_halign' + button_halign.add_handler('click', self.on_button_align_click) + win.add(button_halign, halign='center', margin=Borders(t=4)) + + label_margin = Label(str(self.win.hints['margin'])) + label_margin.name = 'label_margin' + label_margin.add_handler('draw', self.on_label_margin_draw) + win.add(label_margin, halign='center', margin=Borders(t=6)) + + def on_button_align_click(self, ev): + align_type = ev.originator.label.split(':', 1)[0] + align = self.win.hints[align_type] + align.select_next() + ev.originator.label = '%s: %s' % (align_type, align.selected) + self.top.emit('resize') + return True + + def on_label_margin_draw(self, ev): + ev.originator.label = str(self.win.hints['margin']) + + 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()