--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tuikit/core/widget.py Mon Mar 17 23:44:18 2014 +0100
@@ -0,0 +1,56 @@
+from tuikit.core.coords import Point, Size
+
+
+class Widget:
+
+ """Base class for all widgets."""
+
+ _num_instances = 0
+
+ def __init__(self):
+ #: Widget name is used for logging etc. Not visible anywhere.
+ self._num_instances += 1
+ self.name = '{}{}'.format(
+ self.__class__.__name__,
+ self._num_instances)
+
+ #: Parent Widget
+ self.parent = None
+ #: Window owning this Widget
+ self.window = None
+
+ ### 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.
+ self.sizemin = Size(1, 1)
+ #: Maximum size of widget. Widget will never be sized bigger than this.
+ #: None means no maximum size (infinite).
+ self.sizemax = Size(None, None)
+
+ ## placing and size ##
+
+ @property
+ def x(self):
+ return self.pos.x
+
+ @property
+ def y(self):
+ return self.pos.y
+
+ @property
+ def width(self):
+ return self.size.w
+
+ @property
+ def height(self):
+ return self.size.h
+
+ ## drawing ##
+
+ def draw(self, buffer, x, y):
+ pass