summaryrefslogtreecommitdiffstats
path: root/contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-09-11 19:12:15 +0300
committerrobot-piglet <[email protected]>2025-09-11 19:43:09 +0300
commit91708f49a58e3c0a1a3cf0a60c268c2d5b474a3e (patch)
tree9dbcd5cd1811b171ca7636600287d72327ef98ec /contrib/python/prompt-toolkit/py3/prompt_toolkit/layout/containers.py
parentf4413504c29db8e1e7cce3a2103e89ecb4073271 (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.py32
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):