tuikit/core/container.py
author Radek Brich <radek.brich@devl.cz>
Mon, 17 Mar 2014 23:44:18 +0100
changeset 87 ee5ea9671f28
parent 77 tuikit/container.py@fc1989059e19
child 89 94f5baef19ac
permissions -rw-r--r--
Add core Widget, Container. Add widgets Label.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
     1
class Container:
0
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     2
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
     3
    """Container for widgets."""
32
088b92ffb119 Clean up, refactoring. Rename EventSource to Emitter, begin merging emit() method with handle().
Radek Brich <radek.brich@devl.cz>
parents: 23
diff changeset
     4
62
2f61931520c9 Rework layouts: Layout is now normal Container which places its children upon resize event.
Radek Brich <radek.brich@devl.cz>
parents: 46
diff changeset
     5
    def __init__(self):
13
19ebde2fd594 Add more generated documentation.
Radek Brich <radek.brich@devl.cz>
parents: 9
diff changeset
     6
        #: List of child widgets.
0
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     7
        self.children = []
9
7175ed629a76 Added ComboBox, HorizontalLayout, TreeNode, TreeModel, TreeView. Widget is now descendant of EventSource. Improved color management (color prefixes).
Radek Brich <radek.brich@devl.cz>
parents: 5
diff changeset
     8
40
5faa38c10b67 Add ScrollView widget. Update Emitter, rename "on_event" methods to "_handle_event". Update VScrollbar, Layout.
Radek Brich <radek.brich@devl.cz>
parents: 38
diff changeset
     9
    def add(self, widget, **kwargs):
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    10
        """Add widget into container."""
0
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    11
        self.children.append(widget)
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    12
        widget.parent = self
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    13
        widget.window = self.window if hasattr(self, 'window') else self
0
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    14
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    15
    def draw(self, buffer, x=0, y=0):
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    16
        """Draw child widgets."""
42
0224ce40792f Make Container.layout a property.
Radek Brich <radek.brich@devl.cz>
parents: 41
diff changeset
    17
        for child in self.children:
87
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    18
            child.draw(buffer,
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    19
                       x + child.x,
ee5ea9671f28 Add core Widget, Container. Add widgets Label.
Radek Brich <radek.brich@devl.cz>
parents: 77
diff changeset
    20
                       y + child.y)