content protocol

This commit is contained in:
Will McGugan
2024-11-09 10:18:28 +00:00
parent 783b085c57
commit 5ae90edb74
2 changed files with 8 additions and 5 deletions

View File

@@ -254,6 +254,7 @@ class RichVisual(Visual):
def __init__(self, widget: Widget, renderable: RenderableType) -> None:
self._widget = widget
self._renderable = renderable
self._post_renderable: RenderableType | None = None
self._measurement: Measurement | None = None
def __rich_repr__(self) -> rich.repr.Result:
@@ -308,12 +309,14 @@ class RichVisual(Visual):
width=width,
height=height,
)
renderable = widget.post_render(self._renderable)
if self._post_renderable is None:
self._post_renderable = widget.post_render(self._renderable)
renderable = self._post_renderable
segments = console.render(renderable, options)
rich_style = style.rich_style
if rich_style:
segments = Segment.apply_style(segments, style=rich_style)
segments = Segment.apply_style(segments, post_style=rich_style)
strips = [
Strip(line)

View File

@@ -85,7 +85,7 @@ from textual.renderables.blank import Blank
from textual.rlock import RLock
from textual.strip import Strip
from textual.visual import Style as VisualStyle
from textual.visual import Visual, is_visual, visualize
from textual.visual import Visual, visualize
if TYPE_CHECKING:
from textual.app import App, ComposeResult
@@ -3969,8 +3969,8 @@ class Widget(DOMNode):
A renderable.
"""
renderable = self.render()
if not is_visual(renderable):
renderable = self.post_render(renderable)
# if not is_visual(renderable):
# renderable = self.post_render(renderable)
visual = visualize(self, renderable)
return visual