# pragma once
# include <QWidget>
# include <QTimer>
# include <QOpenGLWidget>
# include <QOpenGLFunctions>
# include <QStackedLayout>
# include "qt/qt_sound.hpp"
# include "ui/ui.hpp"
# include "offroad/settings.hpp"
# include "offroad/onboarding.hpp"
# ifdef QCOM2
const int vwp_w = 2160 ;
# else
const int vwp_w = 1920 ;
# endif
const int vwp_h = 1080 ;
class GLWindow : public QOpenGLWidget , protected QOpenGLFunctions {
Q_OBJECT
public :
using QOpenGLWidget : : QOpenGLWidget ;
explicit GLWindow ( QWidget * parent = 0 ) ;
void wake ( ) ;
~ GLWindow ( ) ;
protected :
void mousePressEvent ( QMouseEvent * e ) override ;
void initializeGL ( ) override ;
void resizeGL ( int w , int h ) override ;
void paintGL ( ) override ;
private :
QTimer * timer ;
QTimer * backlight_timer ;
UIState * ui_state ;
QtSound sound ;
bool onroad = true ;
// TODO: this shouldn't be here
float brightness_b = 0 ;
float brightness_m = 0 ;
float smooth_brightness = 0 ;
public slots :
void timerUpdate ( ) ;
void backlightUpdate ( ) ;
signals :
void openSettings ( ) ;
} ;
class MainWindow : public QWidget {
Q_OBJECT
protected :
bool eventFilter ( QObject * obj , QEvent * event ) override ;
public :
explicit MainWindow ( QWidget * parent = 0 ) ;
private :
QStackedLayout * main_layout ;
GLWindow * glWindow ;
SettingsWindow * settingsWindow ;
OnboardingWindow * onboardingWindow ;
public slots :
void openSettings ( ) ;
void closeSettings ( ) ;
} ;