demo_input.py
author Radek Brich <radek.brich@devl.cz>
Fri, 18 Jan 2013 22:36:50 +0100
changeset 62 2f61931520c9
parent 55 1ab0edd5d784
child 73 85a282b5e4fc
permissions -rwxr-xr-x
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 locale
locale.setlocale(locale.LC_ALL, '')

from tuikit import Application, TextEdit


class MyApplication(Application):
    def __init__(self):
        Application.__init__(self)

        self.text = ''
        self.textedit = TextEdit(self.text)
        self.top.add(self.textedit, halign='fill', valign='fill')

        editbox = self.textedit.editbox
        editbox.add_handler('keypress', self.on_any_input)
        editbox.add_handler('mousedown', self.on_any_input)
        editbox.add_handler('mouseup', self.on_any_input)
        editbox.add_handler('mousewheel', self.on_any_input)
        editbox.add_handler('mousemove', self.on_any_input)

    def on_any_input(self, ev):
        if ev.event_name == 'keypress' and ev.char == 'q':
            self.terminate()
        self.text += ''.join((ev.event_name.ljust(10), ' : ', repr(ev), '\n'))
        self.textedit.settext(self.text)
        self.textedit.scrolltoend()
        return True


if __name__ == '__main__':
    app = MyApplication()
    app.start()