# pragma once
# include <QImage>
# include <QMouseEvent>
# include <QPushButton>
# include <QStackedWidget>
# include <QWidget>
# include "selfdrive/common/params.h"
class TrainingGuide : public QFrame {
Q_OBJECT
public :
explicit TrainingGuide ( QWidget * parent = 0 ) : QFrame ( parent ) { } ;
private :
void showEvent ( QShowEvent * event ) override ;
void paintEvent ( QPaintEvent * event ) override ;
void mouseReleaseEvent ( QMouseEvent * e ) override ;
QImage image ;
QPoint imageCorner ;
int currentIndex = 0 ;
// Bounding boxes for the a given training guide step
// (minx, maxx, miny, maxy)
QVector < QVector < int > > boundingBox {
{ 650 , 1375 , 700 , 900 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1240 , 1750 , 480 , 1080 } ,
{ 1570 , 1780 , 620 , 750 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1630 , 1740 , 620 , 780 } ,
{ 1200 , 1920 , 0 , 1080 } ,
{ 1455 , 1850 , 400 , 660 } ,
{ 1460 , 1800 , 195 , 520 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1350 , 1920 , 65 , 1080 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1570 , 1900 , 130 , 1000 } ,
{ 1350 , 1770 , 500 , 700 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1600 , 1920 , 0 , 1080 } ,
{ 1000 , 1800 , 760 , 954 } ,
} ;
signals :
void completedTraining ( ) ;
} ;
class TermsPage : public QFrame {
Q_OBJECT
public :
explicit TermsPage ( QWidget * parent = 0 ) : QFrame ( parent ) { } ;
public slots :
void enableAccept ( ) ;
private :
void showEvent ( QShowEvent * event ) override ;
QPushButton * accept_btn ;
signals :
void acceptedTerms ( ) ;
void declinedTerms ( ) ;
} ;
class DeclinePage : public QFrame {
Q_OBJECT
public :
explicit DeclinePage ( QWidget * parent = 0 ) : QFrame ( parent ) { } ;
private :
void showEvent ( QShowEvent * event ) override ;
signals :
void getBack ( ) ;
} ;
class OnboardingWindow : public QStackedWidget {
Q_OBJECT
public :
explicit OnboardingWindow ( QWidget * parent = 0 ) ;
private :
void showEvent ( QShowEvent * event ) override ;
void updateActiveScreen ( ) ;
Params params ;
std : : string current_terms_version ;
std : : string current_training_version ;
signals :
void onboardingDone ( ) ;
} ;