diff options
| author | robot-piglet <[email protected]> | 2025-09-11 19:12:15 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2025-09-11 19:43:09 +0300 |
| commit | 91708f49a58e3c0a1a3cf0a60c268c2d5b474a3e (patch) | |
| tree | 9dbcd5cd1811b171ca7636600287d72327ef98ec /contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py | |
| parent | f4413504c29db8e1e7cce3a2103e89ecb4073271 (diff) | |
Intermediate changes
commit_hash:87ab6d7772f084decaa30c0cb439a3e0c000406e
Diffstat (limited to 'contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py')
| -rw-r--r-- | contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py b/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py index 99b453477c9..f6fe381f5a2 100644 --- a/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py +++ b/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py @@ -2603,8 +2603,18 @@ class ConditionalContainer(Container): :param filter: :class:`.Filter` instance. """ - def __init__(self, content: AnyContainer, filter: FilterOrBool) -> None: + def __init__( + self, + content: AnyContainer, + filter: FilterOrBool, + alternative_content: AnyContainer | None = None, + ) -> None: self.content = to_container(content) + self.alternative_content = ( + to_container(alternative_content) + if alternative_content is not None + else None + ) self.filter = to_filter(filter) def __repr__(self) -> str: @@ -2616,12 +2626,18 @@ class ConditionalContainer(Container): def preferred_width(self, max_available_width: int) -> Dimension: if self.filter(): return self.content.preferred_width(max_available_width) + elif self.alternative_content is not None: + return self.alternative_content.preferred_width(max_available_width) else: return Dimension.zero() def preferred_height(self, width: int, max_available_height: int) -> Dimension: if self.filter(): return self.content.preferred_height(width, max_available_height) + elif self.alternative_content is not None: + return self.alternative_content.preferred_height( + width, max_available_height + ) else: return Dimension.zero() @@ -2638,9 +2654,21 @@ class ConditionalContainer(Container): return self.content.write_to_screen( screen, mouse_handlers, write_position, parent_style, erase_bg, z_index ) + elif self.alternative_content is not None: + return self.alternative_content.write_to_screen( + screen, + mouse_handlers, + write_position, + parent_style, + erase_bg, + z_index, + ) def get_children(self) -> list[Container]: - return [self.content] + result = [self.content] + if self.alternative_content is not None: + result.append(self.alternative_content) + return result class DynamicContainer(Container): |
