Vehicle-Anti-Theft-Face-Rec.../venv/Lib/site-packages/prompt_toolkit/layout/__init__.py

142 lines
3.4 KiB
Python

"""
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 .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
__all__ = [
# Layout.
"Layout",
"InvalidLayoutError",
"walk",
# Dimensions.
"AnyDimension",
"Dimension",
"D",
"sum_layout_dimensions",
"max_layout_dimensions",
"to_dimension",
"is_dimension",
# Containers.
"AnyContainer",
"Container",
"HorizontalAlign",
"VerticalAlign",
"HSplit",
"VSplit",
"FloatContainer",
"Float",
"WindowAlign",
"Window",
"WindowRenderInfo",
"ConditionalContainer",
"ScrollOffsets",
"ColorColumn",
"to_container",
"to_window",
"is_container",
"DynamicContainer",
# Controls.
"BufferControl",
"SearchBufferControl",
"DummyControl",
"FormattedTextControl",
"UIControl",
"UIContent",
# Margins.
"Margin",
"NumberedMargin",
"ScrollbarMargin",
"ConditionalMargin",
"PromptMargin",
# Menus.
"CompletionsMenu",
"MultiColumnCompletionsMenu",
]