radubulimac's picture
fix import issue
2d876d1
"""Module contains the main message window :class:`~prompt_toolkit.container.Container`."""
from typing import TYPE_CHECKING
from prompt_toolkit.layout.containers import ConditionalContainer, Window
from prompt_toolkit.layout.controls import FormattedTextControl
from prompt_toolkit.layout.dimension import LayoutDimension
if TYPE_CHECKING:
from prompt_toolkit.filters.base import FilterOrBool
from prompt_toolkit.formatted_text.base import AnyFormattedText
class MessageWindow(ConditionalContainer):
"""Main window to display question to the user.
Args:
message: The message to display in the terminal.
filter: Condition that this message window should be displayed.
Use a loading condition to only display this window while its not loading.
wrap_lines: Enable line wrapping if the message is too long.
show_cursor: Display cursor.
"""
def __init__(
self,
message: "AnyFormattedText",
filter: "FilterOrBool",
wrap_lines: bool = True,
show_cursor: bool = True,
**kwargs
) -> None:
super().__init__(
content=Window(
height=LayoutDimension.exact(1) if not wrap_lines else None,
content=FormattedTextControl(message, show_cursor=show_cursor),
wrap_lines=wrap_lines,
dont_extend_height=True,
**kwargs
),
filter=filter,
)