#pragma once #include #include "selfdrive/frogpilot/ui/frogpilot_ui_functions.h" #include "selfdrive/ui/qt/offroad/settings.h" #include "selfdrive/ui/ui.h" class FrogPilotVisualsPanel : public FrogPilotListWidget { Q_OBJECT public: explicit FrogPilotVisualsPanel(SettingsWindow *parent); signals: void closeParentToggle(); void closeSubParentToggle(); void openParentToggle(); void openSubParentToggle(); private: void hideEvent(QHideEvent *event); void hideSubToggles(); void hideSubSubToggles(); void parentToggleClicked(); void subParentToggleClicked(); void updateMetric(); void updateState(const UIState &s); void updateToggles(); std::set alertVolumeControlKeys = {"EngageVolume", "DisengageVolume", "RefuseVolume", "PromptVolume", "PromptDistractedVolume", "WarningSoftVolume", "WarningImmediateVolume"}; std::set customAlertsKeys = {"GreenLightAlert", "LeadDepartingAlert", "LoudBlindspotAlert", "SpeedLimitChangedAlert"}; std::set customOnroadUIKeys = {"AccelerationPath", "AdjacentPath", "BlindSpotPath", "FPSCounter", "LeadInfo", "PedalsOnUI", "RoadNameUI"}; std::set customThemeKeys = {"HolidayThemes", "CustomColors", "CustomIcons", "CustomSignals", "CustomSounds"}; std::set modelUIKeys = {"DynamicPathWidth", "HideLeadMarker", "LaneLinesWidth", "PathEdgeWidth", "PathWidth", "RoadEdgesWidth", "UnlimitedLength"}; std::set qolKeys = {"DriveStats", "FullMap", "HideSpeed"}; std::set screenKeys = {"HideUIElements", "ScreenBrightness", "ScreenBrightnessOnroad", "ScreenRecorder", "ScreenTimeout", "ScreenTimeoutOnroad", "StandbyMode"}; std::map toggles; Params params; Params paramsMemory{"/dev/shm/params"}; bool isMetric = params.getBool("IsMetric"); bool started = false; };