tuikit/core/widget.py
changeset 90 781774a8d568
parent 89 94f5baef19ac
child 92 b97c4e25ed6d
--- 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)