tuikit/core/container.py
author Radek Brich <radek.brich@devl.cz>
Wed, 19 Mar 2014 20:42:52 +0100
changeset 90 781774a8d568
parent 89 94f5baef19ac
child 91 de80e140b0ec
permissions -rw-r--r--
Add timer, adjust inheritance of Widget, Container, Window.

from tuikit.core.widget import Widget


class Container(Widget):

    """Container widget.

    Can contain other widgets to create hierarchical structure.

    """

    def __init__(self):
        Widget.__init__(self)
        #: List of child widgets.
        self.children = []

    def add(self, widget):
        """Add widget into container."""
        self.children.append(widget)
        widget.parent = self
        widget.window = self.window
        widget.set_theme(self.theme)

    def draw(self, buffer, x=0, y=0):
        """Draw child widgets."""
        for child in self.children:
            child.draw(buffer,
                       x + child.x,
                       y + child.y)

    def set_theme(self, theme):
        Widget.set_theme(self, theme)
        for child in self.children:
            child.set_theme(theme)