#pragma once #include #include #include "selfdrive/ui/qt/widgets/cameraview.h" #include "selfdrive/ui/ui.h" // ***** onroad widgets ***** class OnroadAlerts : public QWidget { Q_OBJECT public: OnroadAlerts(QWidget *parent = 0) : QWidget(parent) {}; void updateAlert(const Alert &a, const QColor &color); protected: void paintEvent(QPaintEvent*) override; private: QColor bg; Alert alert = {}; }; // container window for the NVG UI class NvgWindow : public CameraViewWidget { Q_OBJECT public: explicit NvgWindow(VisionStreamType type, QWidget* parent = 0) : CameraViewWidget(type, true, parent) {} void updateState(const UIState &s); protected: void paintGL() override; void initializeGL() override; double prev_draw_t = 0; }; // container for all onroad widgets class OnroadWindow : public QWidget { Q_OBJECT public: OnroadWindow(QWidget* parent = 0); bool isMapVisible() const { return map && map->isVisible(); } private: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent* e) override; OnroadAlerts *alerts; NvgWindow *nvg; QColor bg = bg_colors[STATUS_DISENGAGED]; QWidget *map = nullptr; QHBoxLayout* split; signals: void updateStateSignal(const UIState &s); void offroadTransitionSignal(bool offroad); private slots: void offroadTransition(bool offroad); void updateState(const UIState &s); };