Render the content for a widget. Args: widget: A widget. region: A region of the widget to render. Returns: Rendered lines.
(self, widget: Widget, crop: Region)
| 97 | self._dirty_lines.clear() |
| 98 | |
| 99 | def render_widget(self, widget: Widget, crop: Region) -> list[Strip]: |
| 100 | """Render the content for a widget. |
| 101 | |
| 102 | Args: |
| 103 | widget: A widget. |
| 104 | region: A region of the widget to render. |
| 105 | |
| 106 | Returns: |
| 107 | Rendered lines. |
| 108 | """ |
| 109 | border_title = widget._border_title |
| 110 | border_subtitle = widget._border_subtitle |
| 111 | self._simple_strip = None |
| 112 | |
| 113 | base_background, background = widget.background_colors |
| 114 | styles = widget.styles |
| 115 | app = widget.app |
| 116 | strips = self.render( |
| 117 | styles, |
| 118 | widget.region.size, |
| 119 | base_background, |
| 120 | background, |
| 121 | widget.render_line, |
| 122 | widget.get_line_filters(), |
| 123 | ( |
| 124 | None |
| 125 | if border_title is None |
| 126 | else ( |
| 127 | border_title, |
| 128 | *widget._get_title_style_information(base_background), |
| 129 | ) |
| 130 | ), |
| 131 | ( |
| 132 | None |
| 133 | if border_subtitle is None |
| 134 | else ( |
| 135 | border_subtitle, |
| 136 | *widget._get_subtitle_style_information(base_background), |
| 137 | ) |
| 138 | ), |
| 139 | content_size=widget.content_region.size, |
| 140 | padding=styles.padding, |
| 141 | crop=crop, |
| 142 | opacity=widget.opacity, |
| 143 | ansi_theme=app.ansi_theme, |
| 144 | native_ansi=app.native_ansi_color, |
| 145 | ) |
| 146 | |
| 147 | if widget.auto_links: |
| 148 | hover_style = widget.hover_style |
| 149 | if ( |
| 150 | hover_style._link_id |
| 151 | and hover_style._meta |
| 152 | and "@click" in hover_style.meta |
| 153 | ): |
| 154 | link_style_hover = widget.link_style_hover |
| 155 | if link_style_hover: |
| 156 | strips = [ |
no test coverage detected