diff --git a/system/ui/sunnypilot/lib/styles.py b/system/ui/sunnypilot/lib/styles.py index e53aa3eedd..a232ac192d 100644 --- a/system/ui/sunnypilot/lib/styles.py +++ b/system/ui/sunnypilot/lib/styles.py @@ -19,7 +19,7 @@ class Base: ITEM_DESC_V_OFFSET = 150 # Toggle Control - TOGGLE_HEIGHT = 100 + TOGGLE_HEIGHT = 120 TOGGLE_WIDTH = int(TOGGLE_HEIGHT * 1.75) TOGGLE_BG_HEIGHT = TOGGLE_HEIGHT - 20 @@ -29,7 +29,7 @@ class DefaultStyleSP(Base): # Base Colors BASE_BG_COLOR = rl.Color(57, 57, 57, 255) # Grey ON_BG_COLOR = rl.Color(28, 101, 186, 255) # Blue - OFF_BG_COLOR = BASE_BG_COLOR + OFF_BG_COLOR = rl.Color(70, 70, 70, 255) # Lighter Grey ON_HOVER_BG_COLOR = rl.Color(17, 78, 150, 255) # Dark Blue OFF_HOVER_BG_COLOR = rl.Color(21, 21, 21, 255) # Dark gray DISABLED_ON_BG_COLOR = rl.Color(37, 70, 107, 255) # Dull Blue diff --git a/system/ui/sunnypilot/widgets/toggle.py b/system/ui/sunnypilot/widgets/toggle.py index 22439d1a29..46b390f773 100644 --- a/system/ui/sunnypilot/widgets/toggle.py +++ b/system/ui/sunnypilot/widgets/toggle.py @@ -14,7 +14,6 @@ from openpilot.system.ui.sunnypilot.lib.styles import style KNOB_PADDING = 5 KNOB_RADIUS = style.TOGGLE_BG_HEIGHT / 2 - KNOB_PADDING -SYMBOL_SIZE = KNOB_RADIUS / 2 class ToggleSP(Toggle): @@ -32,6 +31,7 @@ class ToggleSP(Toggle): def _render(self, rect: rl.Rectangle): self.update() + self._rect.y -= style.ITEM_PADDING / 2 if self._enabled: bg_color = self._blend_color(style.TOGGLE_OFF_COLOR, style.TOGGLE_ON_COLOR, self._progress) knob_color = style.TOGGLE_KNOB_COLOR @@ -42,16 +42,6 @@ class ToggleSP(Toggle): # Draw background bg_rect = rl.Rectangle(self._rect.x, self._rect.y, style.TOGGLE_WIDTH, style.TOGGLE_BG_HEIGHT) - # Draw outline first - outline_color = style.TOGGLE_ON_COLOR - if not self._enabled: - # Use a more subtle color for disabled state - outline_color = rl.Color(outline_color.r // 2, outline_color.g // 2, outline_color.b // 2, 255) - - # Draw outline by drawing a slightly larger rounded rectangle behind the background - outline_rect = rl.Rectangle(bg_rect.x - 2, bg_rect.y - 2, bg_rect.width + 4, bg_rect.height + 4) - rl.draw_rectangle_rounded(outline_rect, 1.0, 10, outline_color) - # Draw actual background rl.draw_rectangle_rounded(bg_rect, 1.0, 10, bg_color) @@ -64,41 +54,3 @@ class ToggleSP(Toggle): knob_y = self._rect.y + style.TOGGLE_BG_HEIGHT / 2 rl.draw_circle(int(knob_x), int(knob_y), KNOB_RADIUS, knob_color) - - if self._state and (self._enabled or self._progress > 0.5): - # Draw checkmark when toggle is ON - start_x = knob_x - SYMBOL_SIZE * 0.8 - start_y = knob_y - mid_x = knob_x - SYMBOL_SIZE * 0.1 - mid_y = knob_y + SYMBOL_SIZE * 0.6 - end_x = knob_x + SYMBOL_SIZE * 0.8 - end_y = knob_y - SYMBOL_SIZE * 0.5 - - rl.draw_line_ex( - rl.Vector2(int(start_x), int(start_y)), - rl.Vector2(int(mid_x), int(mid_y)), - 3, - style.TOGGLE_ON_COLOR - ) - rl.draw_line_ex( - rl.Vector2(int(mid_x), int(mid_y)), - rl.Vector2(int(end_x), int(end_y)), - 3, - style.TOGGLE_ON_COLOR - ) - else: - # Draw X when toggle is OFF - x_offset = SYMBOL_SIZE * 0.65 - - rl.draw_line_ex( - rl.Vector2(int(knob_x - x_offset), int(knob_y - x_offset)), - rl.Vector2(int(knob_x + x_offset), int(knob_y + x_offset)), - 3, - style.TOGGLE_OFF_COLOR - ) - rl.draw_line_ex( - rl.Vector2(int(knob_x + x_offset), int(knob_y - x_offset)), - rl.Vector2(int(knob_x - x_offset), int(knob_y + x_offset)), - 3, - style.TOGGLE_OFF_COLOR - ) diff --git a/system/ui/widgets/network.py b/system/ui/widgets/network.py index f41a04c249..fa47d35536 100644 --- a/system/ui/widgets/network.py +++ b/system/ui/widgets/network.py @@ -15,6 +15,9 @@ from openpilot.system.ui.widgets.label import gui_label from openpilot.system.ui.widgets.scroller_tici import Scroller from openpilot.system.ui.widgets.list_view import ButtonAction, ListItem, MultipleButtonAction, ToggleAction, button_item, text_item +if gui_app.sunnypilot_ui(): + from openpilot.system.ui.sunnypilot.widgets.list_view import ToggleActionSP as ToggleAction + # These are only used for AdvancedNetworkSettings, standalone apps just need WifiManagerUI try: from openpilot.common.params import Params