@ -1,11 +1,10 @@
import pyray as rl
from openpilot . selfdrive . ui . lib . prime_state import PrimeType
from openpilot . selfdrive . ui . ui_state import ui_state
from openpilot . selfdrive . ui . widgets . pairing_dialog import PairingDialog
from openpilot . system . ui . lib . application import gui_app , FontWeight
from openpilot . system . ui . lib . wrap_text import wrap_text
from openpilot . system . ui . widgets import Widget
from openpilot . system . ui . widgets . button import gui_b utton, ButtonStyle
from openpilot . system . ui . widgets . button import B utton, ButtonStyle
class SetupWidget ( Widget ) :
@ -13,12 +12,15 @@ class SetupWidget(Widget):
super ( ) . __init__ ( )
self . _open_settings_callback = None
self . _pairing_dialog : PairingDialog | None = None
self . _pair_device_btn = Button ( " Pair device " , self . _show_pairing , button_style = ButtonStyle . PRIMARY )
self . _open_settings_btn = Button ( " Open " , lambda : self . _open_settings_callback ( ) if self . _open_settings_callback else None ,
button_style = ButtonStyle . PRIMARY )
def set_open_settings_callback ( self , callback ) :
self . _open_settings_callback = callback
def _render ( self , rect : rl . Rectangle ) :
if ui_state . prime_state . get_type ( ) == PrimeType . UNPAIRED :
if not ui_state . prime_state . is_paired ( ) :
self . _render_registration ( rect )
else :
self . _render_firehose_prompt ( rect )
@ -46,8 +48,7 @@ class SetupWidget(Widget):
y + = 50
button_rect = rl . Rectangle ( x , y + 50 , w , 128 )
if gui_button ( button_rect , " Pair device " , button_style = ButtonStyle . PRIMARY ) :
self . _show_pairing ( )
self . _pair_device_btn . render ( button_rect )
def _render_firehose_prompt ( self , rect : rl . Rectangle ) :
""" Render firehose prompt widget. """
@ -80,9 +81,7 @@ class SetupWidget(Widget):
# Open button
button_height = 48 + 64 # font size + padding
button_rect = rl . Rectangle ( x , y , w , button_height )
if gui_button ( button_rect , " Open " , button_style = ButtonStyle . PRIMARY ) :
if self . _open_settings_callback :
self . _open_settings_callback ( )
self . _open_settings_btn . render ( button_rect )
def _show_pairing ( self ) :
if not self . _pairing_dialog :