Urwidtrees¶
This is a Widget Container API for the urwid toolkit.
It uses a MVC approach and allows to build trees of widgets.
Its design goals are
- clear separation classes that define, decorate and display trees of widgets
- representation of trees by local operations on node positions
- easy to use default implementation for simple trees
- Collapses are considered decoration
Generally, tree structures are defined by subclassing Tree and
overwriting local position movements. For most purposes however, using a
SimpleTree will do.
The choice to define trees by overwriting local position movements allows to
easily define potentially infinite tree structures. See example4 for how to
walk local file systems.
Trees of widgets are rendered by TreeBox widgets.
These are based on urwids ListBox widget and
display trees such that siblings grow vertically and children horizontally.
TreeBoxes handle key presses to move in the tree and collapse/expand subtrees if possible.