pull/35545/head
Shane Smiskol 1 week ago
parent ed6060e2cd
commit 5f7a4cdc2c
  1. 1
      selfdrive/ui/layouts/home.py
  2. 14
      system/ui/lib/widget.py

@ -84,6 +84,7 @@ class HomeLayout(Widget):
self._render_alerts_view() self._render_alerts_view()
def _update_layout_rects(self): def _update_layout_rects(self):
print('hi2')
self.header_rect = rl.Rectangle( self.header_rect = rl.Rectangle(
self._rect.x + CONTENT_MARGIN, self._rect.y + CONTENT_MARGIN, self._rect.width - 2 * CONTENT_MARGIN, HEADER_HEIGHT self._rect.x + CONTENT_MARGIN, self._rect.y + CONTENT_MARGIN, self._rect.width - 2 * CONTENT_MARGIN, HEADER_HEIGHT
) )

@ -12,7 +12,6 @@ class DialogResult(IntEnum):
class Widget(abc.ABC): class Widget(abc.ABC):
def __init__(self): def __init__(self):
self._prev_rect = rl.Rectangle(0, 0, 0, 0)
self._rect: rl.Rectangle = rl.Rectangle(0, 0, 0, 0) self._rect: rl.Rectangle = rl.Rectangle(0, 0, 0, 0)
self._is_pressed = False self._is_pressed = False
self._is_visible: bool | Callable[[], bool] = True self._is_visible: bool | Callable[[], bool] = True
@ -25,8 +24,11 @@ class Widget(abc.ABC):
self._is_visible = visible self._is_visible = visible
def set_rect(self, rect: rl.Rectangle) -> None: def set_rect(self, rect: rl.Rectangle) -> None:
prev_rect = self._rect
self._rect = rect self._rect = rect
self._update_layout_rects() if (rect.x != prev_rect.x or rect.y != prev_rect.y or
rect.width != prev_rect.width or rect.height != prev_rect.height):
self._update_layout_rects()
def render(self, rect: rl.Rectangle = None) -> bool | int | None: def render(self, rect: rl.Rectangle = None) -> bool | int | None:
if rect is not None: if rect is not None:
@ -54,9 +56,9 @@ class Widget(abc.ABC):
def _render(self, rect: rl.Rectangle) -> bool | int | None: def _render(self, rect: rl.Rectangle) -> bool | int | None:
"""Render the widget within the given rectangle.""" """Render the widget within the given rectangle."""
def _update_layout_rects(self) -> None:
"""Optionally update any layout rects on Widget rect change."""
def _handle_mouse_release(self, mouse_pos: rl.Vector2) -> bool: def _handle_mouse_release(self, mouse_pos: rl.Vector2) -> bool:
"""Handle mouse release events, if applicable.""" """Optionally handle mouse release events."""
return False return False
def _update_layout_rects(self) -> None:
"""Update the layout rectangles on change."""

Loading…
Cancel
Save