def _option_item_selected(self, widget: urwid.Widget): """Event handler that calls the used defined option_item_selected_callback function passed to the constructor. Args: widget (urwid.Widget): The widget that raised the change event """ if self._option_item_selected_callback != None: self._option_item_selected_callback(self, widget.get_option_name(), widget.get_value(), widget.get_value_index())
def _widget_size(widget: Widget) -> urwid_Size: widget_type, *_ = widget.sizing() if widget_type == "box": return (200, 20) elif widget_type == "flow": return (20, ) else: return ()
def _keypress(w: urwid.Widget, keys: List[str]) -> None: for key in keys: nothandled = w.keypress((60, 40), key) assert nothandled is None
def _render(w: urwid.Widget) -> str: canvas = w.render((60, 40)) contents = [t.decode("utf-8") for t in canvas.text] return "\n".join(contents)
def keypress(self, w: urwid.Widget, keys: list[str]) -> None: for key in keys: nothandled = w.keypress(self._get_size(w), key) assert nothandled is None
def render(self, w: urwid.Widget) -> str: canvas = w.render(self._get_size(w)) contents = [t.decode("utf-8") for t in canvas.text] return "\n".join(contents)
def _get_size(self, w: urwid.Widget) -> tuple[int, ...]: size: tuple[int, ...] = (60, 40) if "flow" in w.sizing(): size = (60, ) return size