|
|
|
|
@ -14,13 +14,10 @@ from openpilot.system.ui.lib.wifi_manager import WifiManager |
|
|
|
|
from openpilot.system.ui.widgets import Widget |
|
|
|
|
from openpilot.system.ui.widgets.network import NetworkUI |
|
|
|
|
|
|
|
|
|
# Settings close button |
|
|
|
|
SETTINGS_CLOSE_TEXT = "×" |
|
|
|
|
SETTINGS_CLOSE_TEXT_Y_OFFSET = 8 # The '×' character isn't quite vertically centered in the font so we need to offset it a bit to fully center it |
|
|
|
|
|
|
|
|
|
# Constants |
|
|
|
|
SIDEBAR_WIDTH = 500 |
|
|
|
|
CLOSE_BTN_SIZE = 200 |
|
|
|
|
CLOSE_ICON_SIZE = 70 |
|
|
|
|
NAV_BTN_HEIGHT = 110 |
|
|
|
|
PANEL_MARGIN = 50 |
|
|
|
|
|
|
|
|
|
@ -68,6 +65,7 @@ class SettingsLayout(Widget): |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
self._font_medium = gui_app.font(FontWeight.MEDIUM) |
|
|
|
|
self._close_icon = gui_app.texture("icons/close2.png", CLOSE_ICON_SIZE, CLOSE_ICON_SIZE) |
|
|
|
|
|
|
|
|
|
# Callbacks |
|
|
|
|
self._close_callback: Callable | None = None |
|
|
|
|
@ -97,12 +95,21 @@ class SettingsLayout(Widget): |
|
|
|
|
close_color = CLOSE_BTN_PRESSED if pressed else CLOSE_BTN_COLOR |
|
|
|
|
rl.draw_rectangle_rounded(close_btn_rect, 1.0, 20, close_color) |
|
|
|
|
|
|
|
|
|
close_text_size = measure_text_cached(self._font_medium, SETTINGS_CLOSE_TEXT, 140) |
|
|
|
|
close_text_pos = rl.Vector2( |
|
|
|
|
close_btn_rect.x + (close_btn_rect.width - close_text_size.x) / 2, |
|
|
|
|
close_btn_rect.y + (close_btn_rect.height - close_text_size.y) / 2 - SETTINGS_CLOSE_TEXT_Y_OFFSET, |
|
|
|
|
icon_color = rl.Color(255, 255, 255, 255) if not pressed else rl.Color(220, 220, 220, 255) |
|
|
|
|
icon_dest = rl.Rectangle( |
|
|
|
|
close_btn_rect.x + (close_btn_rect.width - self._close_icon.width) / 2, |
|
|
|
|
close_btn_rect.y + (close_btn_rect.height - self._close_icon.height) / 2, |
|
|
|
|
self._close_icon.width, |
|
|
|
|
self._close_icon.height, |
|
|
|
|
) |
|
|
|
|
rl.draw_texture_pro( |
|
|
|
|
self._close_icon, |
|
|
|
|
rl.Rectangle(0, 0, self._close_icon.width, self._close_icon.height), |
|
|
|
|
icon_dest, |
|
|
|
|
rl.Vector2(0, 0), |
|
|
|
|
0, |
|
|
|
|
icon_color, |
|
|
|
|
) |
|
|
|
|
rl.draw_text_ex(self._font_medium, SETTINGS_CLOSE_TEXT, close_text_pos, 140, 0, TEXT_SELECTED) |
|
|
|
|
|
|
|
|
|
# Store close button rect for click detection |
|
|
|
|
self._close_btn_rect = close_btn_rect |
|
|
|
|
|