--- a/tuikit/core/widget.py Wed Mar 19 00:32:38 2014 +0100
+++ b/tuikit/core/widget.py Wed Mar 19 20:42:52 2014 +0100
@@ -22,11 +22,11 @@
#: Theme
self.theme = default_theme
- ### placing and size
#: Position inside parent widget. Modified by layout manager.
self.pos = Point()
#: Actual size. Modified by layout manager.
self.size = Size(10, 10)
+
#: Requested size. Layout manager will use this when placing the widget.
self.sizereq = Size(1, 1)
#: Minimal size of widget. Widget will never be sized smaller than this.
@@ -35,7 +35,7 @@
#: None means no maximum size (infinite).
self.sizemax = Size(None, None)
- ## placing and size ##
+ ## position and size ##
@property
def x(self):
@@ -53,10 +53,24 @@
def height(self):
return self.size.h
- ## drawing ##
+ ## appearance ##
- def draw(self, buffer, x, y):
+ def draw(self, buffer, x=0, y=0):
pass
def set_theme(self, theme):
self.theme = theme
+
+ ## timeouts ##
+
+ def add_timeout(self, delay, callback, *args):
+ """Register `callback` to be called after `delay` seconds."""
+ self.parent.add_timeout(self, delay, callback, *args)
+
+ def remove_timeout(self, callback, *args):
+ """Unregister callback previously registered with add_timeout.
+
+ Removes all timeouts with the `callback` and `args`.
+
+ """
+ self.parent.remove_timeout(self, callback, *args)