Change screens if both left and right are pressed

This commit is contained in:
2023-04-11 21:53:36 +02:00
parent 78c3c38988
commit fe58a68b96
12 changed files with 59 additions and 36 deletions

View File

@ -1,7 +1,6 @@
#include <gui/debugview_screen/DebugViewPresenter.hpp>
#include <gui/debugview_screen/DebugViewView.hpp>
DebugViewPresenter::DebugViewPresenter(DebugViewView &v) : view(v) {}
void DebugViewPresenter::activate() {}
@ -9,3 +8,8 @@ void DebugViewPresenter::activate() {}
void DebugViewPresenter::deactivate() {}
void DebugViewPresenter::vehicleStateUpdated() { view.updateFieldValues(); }
void DebugViewPresenter::nextScreen() {
static_cast<FrontendApplication *>(Application::getInstance())
->gotoDriverViewScreenNoTransition();
}

View File

@ -32,6 +32,11 @@ void DriverViewPresenter::vehicleStateUpdated() {
view.updateFieldValues();
}
void DriverViewPresenter::nextScreen() {
static_cast<FrontendApplication *>(Application::getInstance())
->gotoVehicleConfigScreenNoTransition();
}
void DriverViewPresenter::setFieldType(size_t i, DataFieldType type) {
fields[i] = type;
view.setFieldType(i, type);

View File

@ -13,10 +13,14 @@ Model::Model() : modelListener(0) {}
void Model::tick() {
ULONG events;
if (tx_event_flags_get(&gui_update_events, GUI_UPDATE_VEHICLE_STATE,
if (tx_event_flags_get(&gui_update_events,
GUI_UPDATE_VEHICLE_STATE | GUI_UPDATE_NEXT_SCREEN,
TX_OR_CLEAR, &events, TX_NO_WAIT) != TX_SUCCESS) {
return;
}
if (events & GUI_UPDATE_NEXT_SCREEN) {
modelListener->nextScreen();
}
if (events & GUI_UPDATE_VEHICLE_STATE) {
modelListener->vehicleStateUpdated();
}

View File

@ -1,18 +1,14 @@
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigPresenter.hpp>
#include <gui/vehicleconfig_screen/VehicleConfigView.hpp>
VehicleConfigPresenter::VehicleConfigPresenter(VehicleConfigView& v)
: view(v)
{
}
void VehicleConfigPresenter::activate()
{
}
void VehicleConfigPresenter::deactivate()
{
VehicleConfigPresenter::VehicleConfigPresenter(VehicleConfigView &v)
: view(v) {}
void VehicleConfigPresenter::activate() {}
void VehicleConfigPresenter::deactivate() {}
void VehicleConfigPresenter::nextScreen() {
static_cast<FrontendApplication *>(Application::getInstance())
->gotoDebugViewScreenNoTransition();
}