Files
Jason Wen 58af294ffd [TIZI/TICI] ui: Cruise panel (#1691)
* init cruise panel

* init descriptions

* damn descriptions

* init SLA sub layout

* reorder

* icbm it

* callback for `Custom ACC Speed Increments` toggle to update dependent UI elements dynamically.

* works

* more init

* more

* [TIZI/TICI] ui: individual button states support for MultipleButtonActionSP

* less

* convert

* init properly

---------

Co-authored-by: nayan <nayan8teen@gmail.com>
2026-02-12 22:56:18 -05:00
..
2025-11-18 22:27:45 -08:00
2025-11-18 22:27:45 -08:00
2025-11-18 22:27:45 -08:00
2025-11-18 22:27:45 -08:00
2025-11-18 22:27:45 -08:00
2025-11-18 22:27:45 -08:00

ui

The user interfaces here are built with raylib.

Quick start:

  • set BIG=1 to run the comma 3X UI (comma four UI runs by default)
  • set SHOW_FPS=1 to show the FPS
  • set STRICT_MODE=1 to kill the app if it drops too much below 60fps
  • set SCALE=1.5 to scale the entire UI by 1.5x
  • set BURN_IN=1 to get a burn-in heatmap version of the UI
  • set GRID=50 to show a 50-pixel alignment grid overlay
  • set MAGIC_DEBUG=1 to show every dropped frames (only on device)
  • set RECORD=1 to record the screen, output defaults to output.mp4 but can be set with RECORD_OUTPUT
  • set SUNNYPILOT_UI=0 to run the stock UI instead of the sunnypilot UI
  • https://www.raylib.com/cheatsheet/cheatsheet.html
  • https://electronstudio.github.io/raylib-python-cffi/README.html#quickstart

Style guide:

  • All graphical elements should subclass Widget.
    • Prefer a stateful widget over a function for easy migration from QT
  • All internal class variables and functions should be prefixed with _