Add AMI screen
This commit is contained in:
36
TouchGFX/gui/include/gui/ami_screen/AMIPresenter.hpp
Normal file
36
TouchGFX/gui/include/gui/ami_screen/AMIPresenter.hpp
Normal file
@ -0,0 +1,36 @@
|
||||
#ifndef AMIPRESENTER_HPP
|
||||
#define AMIPRESENTER_HPP
|
||||
|
||||
#include <gui/model/ModelListener.hpp>
|
||||
#include <mvp/Presenter.hpp>
|
||||
|
||||
using namespace touchgfx;
|
||||
|
||||
class AMIView;
|
||||
|
||||
class AMIPresenter : public touchgfx::Presenter, public ModelListener
|
||||
{
|
||||
public:
|
||||
AMIPresenter(AMIView& v);
|
||||
|
||||
/**
|
||||
* The activate function is called automatically when this screen is "switched in"
|
||||
* (ie. made active). Initialization logic can be placed here.
|
||||
*/
|
||||
virtual void activate();
|
||||
|
||||
/**
|
||||
* The deactivate function is called automatically when this screen is "switched out"
|
||||
* (ie. made inactive). Teardown functionality can be placed here.
|
||||
*/
|
||||
virtual void deactivate();
|
||||
|
||||
virtual ~AMIPresenter() {};
|
||||
|
||||
private:
|
||||
AMIPresenter();
|
||||
|
||||
AMIView& view;
|
||||
};
|
||||
|
||||
#endif // AMIPRESENTER_HPP
|
||||
21
TouchGFX/gui/include/gui/ami_screen/AMIView.hpp
Normal file
21
TouchGFX/gui/include/gui/ami_screen/AMIView.hpp
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef AMIVIEW_HPP
|
||||
#define AMIVIEW_HPP
|
||||
|
||||
#include "stw_defines.h"
|
||||
#include <gui/ami_screen/AMIPresenter.hpp>
|
||||
#include <gui_generated/ami_screen/AMIViewBase.hpp>
|
||||
|
||||
|
||||
class AMIView : public AMIViewBase {
|
||||
public:
|
||||
AMIView();
|
||||
virtual ~AMIView() {}
|
||||
virtual void setupScreen();
|
||||
virtual void tearDownScreen();
|
||||
|
||||
void setMission(Mission mission);
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif // AMIVIEW_HPP
|
||||
@ -28,6 +28,8 @@ public:
|
||||
|
||||
virtual ~MissionSelectPresenter(){};
|
||||
|
||||
void confirmMission(Mission mission);
|
||||
|
||||
private:
|
||||
MissionSelectPresenter();
|
||||
|
||||
|
||||
@ -9,13 +9,14 @@ class MissionSelectView : public MissionSelectViewBase {
|
||||
public:
|
||||
MissionSelectView();
|
||||
virtual ~MissionSelectView() {}
|
||||
virtual void setupScreen();
|
||||
virtual void tearDownScreen();
|
||||
virtual void setupScreen() override;
|
||||
virtual void tearDownScreen() override;
|
||||
|
||||
void setSelectedMission(Mission mission);
|
||||
|
||||
virtual void incMission();
|
||||
virtual void decMission();
|
||||
virtual void incMission() override;
|
||||
virtual void decMission() override;
|
||||
virtual void confirmMission() override;
|
||||
|
||||
protected:
|
||||
private:
|
||||
|
||||
@ -12,8 +12,14 @@ public:
|
||||
|
||||
void tick();
|
||||
|
||||
void setMission(Mission mission) { this->mission = mission; }
|
||||
Mission getMission() { return mission; }
|
||||
|
||||
protected:
|
||||
ModelListener *modelListener;
|
||||
|
||||
private:
|
||||
Mission mission;
|
||||
};
|
||||
|
||||
#endif // MODEL_HPP
|
||||
|
||||
10
TouchGFX/gui/src/ami_screen/AMIPresenter.cpp
Normal file
10
TouchGFX/gui/src/ami_screen/AMIPresenter.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include <gui/ami_screen/AMIPresenter.hpp>
|
||||
#include <gui/ami_screen/AMIView.hpp>
|
||||
|
||||
#include "main.h"
|
||||
|
||||
AMIPresenter::AMIPresenter(AMIView &v) : view(v) {}
|
||||
|
||||
void AMIPresenter::activate() { view.setMission(model->getMission()); }
|
||||
|
||||
void AMIPresenter::deactivate() {}
|
||||
40
TouchGFX/gui/src/ami_screen/AMIView.cpp
Normal file
40
TouchGFX/gui/src/ami_screen/AMIView.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include "stw_defines.h"
|
||||
#include "texts/TextKeysAndLanguages.hpp"
|
||||
#include "touchgfx/Color.hpp"
|
||||
#include "touchgfx/TypedText.hpp"
|
||||
#include <gui/ami_screen/AMIView.hpp>
|
||||
|
||||
AMIView::AMIView() {}
|
||||
|
||||
void AMIView::setupScreen() { AMIViewBase::setupScreen(); }
|
||||
|
||||
void AMIView::tearDownScreen() { AMIViewBase::tearDownScreen(); }
|
||||
|
||||
void AMIView::setMission(Mission mission) {
|
||||
switch (mission) {
|
||||
case MISSION_ACCEL:
|
||||
currentMission.setTypedText(TypedText(T_ACCEL_HUGE));
|
||||
break;
|
||||
case MISSION_SKIDPAD:
|
||||
currentMission.setTypedText(TypedText(T_SKIDPAD_HUGE));
|
||||
break;
|
||||
case MISSION_AUTOX:
|
||||
currentMission.setTypedText(TypedText(T_AUTOX_HUGE));
|
||||
break;
|
||||
case MISSION_TRACKDRIVE:
|
||||
currentMission.setTypedText(TypedText(T_TRACKDRIVE_HUGE));
|
||||
break;
|
||||
case MISSION_EBS:
|
||||
currentMission.setTypedText(TypedText(T_EBS_HUGE));
|
||||
break;
|
||||
case MISSION_INSPECTION:
|
||||
currentMission.setTypedText(TypedText(T_INSPECTION_HUGE));
|
||||
break;
|
||||
case MISSION_MANUAL:
|
||||
case MISSION_NONE:
|
||||
default:
|
||||
currentMission.setTypedText(TypedText(T_INVALID_HUGE));
|
||||
currentMission.setColor(touchgfx::Color::getColorFromRGB(0xFF, 0, 0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -7,3 +7,7 @@ MissionSelectPresenter::MissionSelectPresenter(MissionSelectView &v)
|
||||
void MissionSelectPresenter::activate() {}
|
||||
|
||||
void MissionSelectPresenter::deactivate() {}
|
||||
|
||||
void MissionSelectPresenter::confirmMission(Mission mission) {
|
||||
model->setMission(mission);
|
||||
}
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
#include "gui/missionselect_screen/MissionSelectPresenter.hpp"
|
||||
#include "stw_defines.h"
|
||||
#include "texts/TextKeysAndLanguages.hpp"
|
||||
#include <gui/missionselect_screen/MissionSelectView.hpp>
|
||||
@ -44,6 +45,15 @@ void MissionSelectView::decMission() {
|
||||
setSelectedMission(static_cast<Mission>(mission_int));
|
||||
}
|
||||
|
||||
void MissionSelectView::confirmMission() {
|
||||
if (selectedMission == MISSION_NONE) {
|
||||
// Can't confirm if we haven't selected a mission yet
|
||||
return;
|
||||
}
|
||||
presenter->confirmMission(selectedMission);
|
||||
application().gotoAMIScreenNoTransition();
|
||||
}
|
||||
|
||||
void MissionSelectView::setSelectedMission(Mission mission) {
|
||||
if (selected != nullptr) {
|
||||
selected->setSelected(false);
|
||||
|
||||
Reference in New Issue
Block a user