Add core Widget, Container. Add widgets Label.
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