From f5adcb4082daf2ae254db464c6521bece1696a1c Mon Sep 17 00:00:00 2001 From: Jason Wen Date: Fri, 21 Nov 2025 23:01:15 -0500 Subject: [PATCH] lint --- system/ui/sunnypilot/lib/styles.py | 28 +++++--- system/ui/sunnypilot/widgets/list_view.py | 12 +++- system/ui/sunnypilot/widgets/toggle.py | 88 ++++++++++++----------- 3 files changed, 77 insertions(+), 51 deletions(-) diff --git a/system/ui/sunnypilot/lib/styles.py b/system/ui/sunnypilot/lib/styles.py index 28d50f48d7..e53aa3eedd 100644 --- a/system/ui/sunnypilot/lib/styles.py +++ b/system/ui/sunnypilot/lib/styles.py @@ -1,6 +1,14 @@ -import pyray as rl +""" +Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors. + +This file is part of sunnypilot and is licensed under the MIT License. +See the LICENSE.md file in the root directory for more details. +""" from dataclasses import dataclass +import pyray as rl + + @dataclass class Base: # Widget/Control Base Dimensions @@ -15,16 +23,17 @@ class Base: TOGGLE_WIDTH = int(TOGGLE_HEIGHT * 1.75) TOGGLE_BG_HEIGHT = TOGGLE_HEIGHT - 20 + @dataclass -class SP_Default(Base): +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 + 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 - ON_HOVER_BG_COLOR = rl.Color(17, 78, 150, 255) # Dark Blue + 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 - DISABLED_OFF_BG_COLOR = rl.Color(39, 39, 39, 255) # Grey + DISABLED_ON_BG_COLOR = rl.Color(37, 70, 107, 255) # Dull Blue + DISABLED_OFF_BG_COLOR = rl.Color(39, 39, 39, 255) # Grey ITEM_TEXT_COLOR = rl.WHITE ITEM_DISABLED_TEXT_COLOR = rl.Color(88, 88, 88, 255) ITEM_DESC_TEXT_COLOR = rl.Color(128, 128, 128, 255) @@ -35,6 +44,7 @@ class SP_Default(Base): TOGGLE_KNOB_COLOR = rl.WHITE TOGGLE_DISABLED_ON_COLOR = DISABLED_ON_BG_COLOR TOGGLE_DISABLED_OFF_COLOR = DISABLED_OFF_BG_COLOR - TOGGLE_DISABLED_KNOB_COLOR = rl.Color(88, 88, 88, 255) # Lighter Grey + TOGGLE_DISABLED_KNOB_COLOR = rl.Color(88, 88, 88, 255) # Lighter Grey -style = SP_Default + +style = DefaultStyleSP diff --git a/system/ui/sunnypilot/widgets/list_view.py b/system/ui/sunnypilot/widgets/list_view.py index 86dbde2797..dcf8f6019d 100644 --- a/system/ui/sunnypilot/widgets/list_view.py +++ b/system/ui/sunnypilot/widgets/list_view.py @@ -1,6 +1,12 @@ -import pyray as rl +""" +Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors. +This file is part of sunnypilot and is licensed under the MIT License. +See the LICENSE.md file in the root directory for more details. +""" from collections.abc import Callable + +import pyray as rl from openpilot.system.ui.lib.text_measure import measure_text_cached from openpilot.system.ui.sunnypilot.widgets.toggle import ToggleSP from openpilot.system.ui.widgets.list_view import ListItem, ToggleAction, ItemAction @@ -13,6 +19,7 @@ class ToggleActionSP(ToggleAction): ToggleAction.__init__(self, initial_state, width, enabled, callback) self.toggle = ToggleSP(initial_state=initial_state, callback=callback, param=param) + class ListItemSP(ListItem): def __init__(self, title: str | Callable[[], str] = "", icon: str | None = None, description: str | Callable[[], str] | None = None, description_visible: bool = False, callback: Callable | None = None, @@ -92,7 +99,8 @@ class ListItemSP(ListItem): ) self._html_renderer.render(description_rect) + def toggle_item_sp(title: str | Callable[[], str], description: str | Callable[[], str] | None = None, initial_state: bool = False, - callback: Callable | None = None, icon: str = "", enabled: bool | Callable[[], bool] = True, param: str | None = None) -> ListItemSP: + callback: Callable | None = None, icon: str = "", enabled: bool | Callable[[], bool] = True, param: str | None = None) -> ListItemSP: action = ToggleActionSP(initial_state=initial_state, enabled=enabled, callback=callback, param=param) return ListItemSP(title=title, description=description, action_item=action, icon=icon, callback=callback) diff --git a/system/ui/sunnypilot/widgets/toggle.py b/system/ui/sunnypilot/widgets/toggle.py index 84e3f9b4f2..22439d1a29 100644 --- a/system/ui/sunnypilot/widgets/toggle.py +++ b/system/ui/sunnypilot/widgets/toggle.py @@ -1,5 +1,12 @@ -import pyray as rl +""" +Copyright (c) 2021-, Haibin Wen, sunnypilot, and a number of other contributors. + +This file is part of sunnypilot and is licensed under the MIT License. +See the LICENSE.md file in the root directory for more details. +""" from collections.abc import Callable + +import pyray as rl from openpilot.common.params import Params from openpilot.system.ui.lib.application import MousePos from openpilot.system.ui.widgets.toggle import Toggle @@ -9,18 +16,19 @@ KNOB_PADDING = 5 KNOB_RADIUS = style.TOGGLE_BG_HEIGHT / 2 - KNOB_PADDING SYMBOL_SIZE = KNOB_RADIUS / 2 + class ToggleSP(Toggle): def __init__(self, initial_state=False, callback: Callable[[bool], None] | None = None, param: str | None = None): self.param_key = param self.params = Params() if self.param_key: - initial_state = self.params.get_bool(self.param_key) + initial_state = self.params.get_bool(self.param_key) Toggle.__init__(self, initial_state, callback) def _handle_mouse_release(self, mouse_pos: MousePos): - super()._handle_mouse_release(mouse_pos) - if self._enabled and self.param_key: - self.params.put_bool(self.param_key, self._state) + super()._handle_mouse_release(mouse_pos) + if self._enabled and self.param_key: + self.params.put_bool(self.param_key, self._state) def _render(self, rect: rl.Rectangle): self.update() @@ -37,8 +45,8 @@ class ToggleSP(Toggle): # 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) + # 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) @@ -58,39 +66,39 @@ class ToggleSP(Toggle): 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 + # 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 - ) + 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 + # 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 - ) + 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 + )