home: remove left/right column layout, single full-area card

This commit is contained in:
mawei
2026-06-28 16:56:06 +08:00
parent d0777550ae
commit 3317c32fea
+2 -31
View File
@@ -4,7 +4,6 @@ from collections.abc import Callable
from enum import IntEnum
from openpilot.common.params import Params
from openpilot.selfdrive.ui.widgets.offroad_alerts import UpdateAlert, OffroadAlert
from openpilot.selfdrive.ui.widgets.exp_mode_button import ExperimentalModeButton
from openpilot.selfdrive.ui.widgets.setup import SetupWidget
from openpilot.system.ui.lib.text_measure import measure_text_cached
from openpilot.system.ui.lib.application import gui_app, FontWeight, MousePos
@@ -17,7 +16,6 @@ HEADER_HEIGHT = 80
HEAD_BUTTON_FONT_SIZE = 40
CONTENT_MARGIN = 40
SPACING = 25
RIGHT_COLUMN_WIDTH = 750
REFRESH_INTERVAL = 10.0
LITE = os.getenv("LITE") is not None
@@ -51,27 +49,22 @@ class HomeLayout(Widget):
self.header_rect = rl.Rectangle(0, 0, 0, 0)
self.content_rect = rl.Rectangle(0, 0, 0, 0)
self.left_column_rect = rl.Rectangle(0, 0, 0, 0)
self.right_column_rect = rl.Rectangle(0, 0, 0, 0)
self.update_notif_rect = rl.Rectangle(0, 0, 200, HEADER_HEIGHT - 10)
self.alert_notif_rect = rl.Rectangle(0, 0, 220, HEADER_HEIGHT - 10)
self._setup_widget = SetupWidget()
self._exp_mode_button = ExperimentalModeButton()
self._setup_callbacks()
def show_event(self):
super().show_event()
self._exp_mode_button.show_event()
self.last_refresh = time.monotonic()
self._refresh()
def _setup_callbacks(self):
self.update_alert.set_dismiss_callback(lambda: self._set_state(HomeLayoutState.HOME))
self.offroad_alert.set_dismiss_callback(lambda: self._set_state(HomeLayoutState.HOME))
self._exp_mode_button.set_click_callback(lambda: self.settings_callback() if self.settings_callback else None)
def set_settings_callback(self, callback: Callable):
self.settings_callback = callback
@@ -80,7 +73,7 @@ class HomeLayout(Widget):
# propagate show/hide events
if state != self.current_state:
if state == HomeLayoutState.HOME:
self._exp_mode_button.show_event()
pass
if state in self._layout_widgets:
self._layout_widgets[state].show_event()
@@ -117,14 +110,6 @@ class HomeLayout(Widget):
self._rect.x + CONTENT_MARGIN, content_y, self._rect.width - 2 * CONTENT_MARGIN, content_height
)
left_width = self.content_rect.width - RIGHT_COLUMN_WIDTH - SPACING
self.left_column_rect = rl.Rectangle(self.content_rect.x, self.content_rect.y, left_width, self.content_rect.height)
self.right_column_rect = rl.Rectangle(
self.content_rect.x + left_width + SPACING, self.content_rect.y, RIGHT_COLUMN_WIDTH, self.content_rect.height
)
self.update_notif_rect.x = self.header_rect.x
self.update_notif_rect.y = self.header_rect.y + (self.header_rect.height - 60) // 2
@@ -182,8 +167,7 @@ class HomeLayout(Widget):
gui_label(version_rect, self._version_text, 48, rl.WHITE, alignment=rl.GuiTextAlignment.TEXT_ALIGN_RIGHT)
def _render_home_content(self):
self._render_left_column()
self._render_right_column()
self._setup_widget.render(self.content_rect)
def _render_update_view(self):
self.update_alert.render(self.content_rect)
@@ -191,19 +175,6 @@ class HomeLayout(Widget):
def _render_alerts_view(self):
self.offroad_alert.render(self.content_rect)
def _render_left_column(self):
# reserved - no content needed
pass
def _render_right_column(self):
setup_rect = rl.Rectangle(
self.right_column_rect.x,
self.right_column_rect.y,
self.right_column_rect.width,
self.right_column_rect.height,
)
self._setup_widget.render(setup_rect)
def _refresh(self):
self._version_text = self._get_version_text()
update_available = self.update_alert.refresh()