| | """ |
| | Command line layout definitions |
| | ------------------------------- |
| | |
| | The layout of a command line interface is defined by a Container instance. |
| | There are two main groups of classes here. Containers and controls: |
| | |
| | - A container can contain other containers or controls, it can have multiple |
| | children and it decides about the dimensions. |
| | - A control is responsible for rendering the actual content to a screen. |
| | A control can propose some dimensions, but it's the container who decides |
| | about the dimensions -- or when the control consumes more space -- which part |
| | of the control will be visible. |
| | |
| | |
| | Container classes:: |
| | |
| | - Container (Abstract base class) |
| | |- HSplit (Horizontal split) |
| | |- VSplit (Vertical split) |
| | |- FloatContainer (Container which can also contain menus and other floats) |
| | `- Window (Container which contains one actual control |
| | |
| | Control classes:: |
| | |
| | - UIControl (Abstract base class) |
| | |- FormattedTextControl (Renders formatted text, or a simple list of text fragments) |
| | `- BufferControl (Renders an input buffer.) |
| | |
| | |
| | Usually, you end up wrapping every control inside a `Window` object, because |
| | that's the only way to render it in a layout. |
| | |
| | There are some prepared toolbars which are ready to use:: |
| | |
| | - SystemToolbar (Shows the 'system' input buffer, for entering system commands.) |
| | - ArgToolbar (Shows the input 'arg', for repetition of input commands.) |
| | - SearchToolbar (Shows the 'search' input buffer, for incremental search.) |
| | - CompletionsToolbar (Shows the completions of the current buffer.) |
| | - ValidationToolbar (Shows validation errors of the current buffer.) |
| | |
| | And one prepared menu: |
| | |
| | - CompletionsMenu |
| | |
| | """ |
| |
|
| | from __future__ import annotations |
| |
|
| | from .containers import ( |
| | AnyContainer, |
| | ColorColumn, |
| | ConditionalContainer, |
| | Container, |
| | DynamicContainer, |
| | Float, |
| | FloatContainer, |
| | HorizontalAlign, |
| | HSplit, |
| | ScrollOffsets, |
| | VerticalAlign, |
| | VSplit, |
| | Window, |
| | WindowAlign, |
| | WindowRenderInfo, |
| | is_container, |
| | to_container, |
| | to_window, |
| | ) |
| | from .controls import ( |
| | BufferControl, |
| | DummyControl, |
| | FormattedTextControl, |
| | SearchBufferControl, |
| | UIContent, |
| | UIControl, |
| | ) |
| | from .dimension import ( |
| | AnyDimension, |
| | D, |
| | Dimension, |
| | is_dimension, |
| | max_layout_dimensions, |
| | sum_layout_dimensions, |
| | to_dimension, |
| | ) |
| | from .layout import InvalidLayoutError, Layout, walk |
| | from .margins import ( |
| | ConditionalMargin, |
| | Margin, |
| | NumberedMargin, |
| | PromptMargin, |
| | ScrollbarMargin, |
| | ) |
| | from .menus import CompletionsMenu, MultiColumnCompletionsMenu |
| | from .scrollable_pane import ScrollablePane |
| |
|
| | __all__ = [ |
| | |
| | "Layout", |
| | "InvalidLayoutError", |
| | "walk", |
| | |
| | "AnyDimension", |
| | "Dimension", |
| | "D", |
| | "sum_layout_dimensions", |
| | "max_layout_dimensions", |
| | "to_dimension", |
| | "is_dimension", |
| | |
| | "AnyContainer", |
| | "Container", |
| | "HorizontalAlign", |
| | "VerticalAlign", |
| | "HSplit", |
| | "VSplit", |
| | "FloatContainer", |
| | "Float", |
| | "WindowAlign", |
| | "Window", |
| | "WindowRenderInfo", |
| | "ConditionalContainer", |
| | "ScrollOffsets", |
| | "ColorColumn", |
| | "to_container", |
| | "to_window", |
| | "is_container", |
| | "DynamicContainer", |
| | "ScrollablePane", |
| | |
| | "BufferControl", |
| | "SearchBufferControl", |
| | "DummyControl", |
| | "FormattedTextControl", |
| | "UIControl", |
| | "UIContent", |
| | |
| | "Margin", |
| | "NumberedMargin", |
| | "ScrollbarMargin", |
| | "ConditionalMargin", |
| | "PromptMargin", |
| | |
| | "CompletionsMenu", |
| | "MultiColumnCompletionsMenu", |
| | ] |
| |
|