Allow changing displayed fields in DriverView
This commit is contained in:
		@ -351,6 +351,7 @@ TouchGFX/generated/fonts/src/UnmappedDataFont.cpp \
 | 
				
			|||||||
TouchGFX/generated/gui_generated/src/ami_screen/AMIViewBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/ami_screen/AMIViewBase.cpp \
 | 
				
			||||||
TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/common/FrontendApplicationBase.cpp \
 | 
				
			||||||
TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/containers/DriverViewFieldBase.cpp \
 | 
				
			||||||
 | 
					TouchGFX/generated/gui_generated/src/containers/DriverViewFieldSelectionBase.cpp \
 | 
				
			||||||
TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/containers/MissionSelectElementBase.cpp \
 | 
				
			||||||
TouchGFX/generated/gui_generated/src/containers/TireTempBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/containers/TireTempBase.cpp \
 | 
				
			||||||
TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \
 | 
					TouchGFX/generated/gui_generated/src/driverview_screen/DriverViewViewBase.cpp \
 | 
				
			||||||
@ -372,6 +373,7 @@ TouchGFX/gui/src/ami_screen/AMIView.cpp \
 | 
				
			|||||||
TouchGFX/gui/src/common/DataField.cpp \
 | 
					TouchGFX/gui/src/common/DataField.cpp \
 | 
				
			||||||
TouchGFX/gui/src/common/FrontendApplication.cpp \
 | 
					TouchGFX/gui/src/common/FrontendApplication.cpp \
 | 
				
			||||||
TouchGFX/gui/src/containers/DriverViewField.cpp \
 | 
					TouchGFX/gui/src/containers/DriverViewField.cpp \
 | 
				
			||||||
 | 
					TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp \
 | 
				
			||||||
TouchGFX/gui/src/containers/MissionSelectElement.cpp \
 | 
					TouchGFX/gui/src/containers/MissionSelectElement.cpp \
 | 
				
			||||||
TouchGFX/gui/src/containers/TireTemp.cpp \
 | 
					TouchGFX/gui/src/containers/TireTemp.cpp \
 | 
				
			||||||
TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \
 | 
					TouchGFX/gui/src/driverview_screen/DriverViewPresenter.cpp \
 | 
				
			||||||
 | 
				
			|||||||
@ -32,7 +32,9 @@
 | 
				
			|||||||
#define TOUCHGFX_BYTE_POOL_SIZE      (4096)
 | 
					#define TOUCHGFX_BYTE_POOL_SIZE      (4096)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* USER CODE BEGIN PD */
 | 
					/* USER CODE BEGIN PD */
 | 
				
			||||||
 | 
					// Redefine here so it doesn't get overwritten on code generation
 | 
				
			||||||
 | 
					#define TOUCHGFX_STACK_SIZE (8160)
 | 
				
			||||||
 | 
					#define TOUCHGFX_BYTE_POOL_SIZE (8192)
 | 
				
			||||||
/* USER CODE END PD */
 | 
					/* USER CODE END PD */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Private macro -------------------------------------------------------------*/
 | 
					/* Private macro -------------------------------------------------------------*/
 | 
				
			||||||
 | 
				
			|||||||
@ -128,6 +128,9 @@
 | 
				
			|||||||
      </Text>
 | 
					      </Text>
 | 
				
			||||||
    </TextGroup>
 | 
					    </TextGroup>
 | 
				
			||||||
    <TextGroup Id="Unsorted">
 | 
					    <TextGroup Id="Unsorted">
 | 
				
			||||||
 | 
					      <Text Id="__SingleUse_PNKR" Alignment="Center" TypographyId="Chinat_Small">
 | 
				
			||||||
 | 
					        <Translation Language="GB">????</Translation>
 | 
				
			||||||
 | 
					      </Text>
 | 
				
			||||||
      <Text Id="__SingleUse_0FBJ" Alignment="Center" TypographyId="Chinat_Small">
 | 
					      <Text Id="__SingleUse_0FBJ" Alignment="Center" TypographyId="Chinat_Small">
 | 
				
			||||||
        <Translation Language="GB">FIELD</Translation>
 | 
					        <Translation Language="GB">FIELD</Translation>
 | 
				
			||||||
      </Text>
 | 
					      </Text>
 | 
				
			||||||
 | 
				
			|||||||
@ -17,12 +17,9 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    virtual void changeToStartScreen()
 | 
					    virtual void changeToStartScreen()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        gotoMissionSelectScreenNoTransition();
 | 
					        gotoDriverViewScreenNoTransition();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // MissionSelect
 | 
					 | 
				
			||||||
    void gotoMissionSelectScreenNoTransition();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // AMI
 | 
					    // AMI
 | 
				
			||||||
    void gotoAMIScreenNoTransition();
 | 
					    void gotoAMIScreenNoTransition();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -34,9 +31,6 @@ protected:
 | 
				
			|||||||
    FrontendHeap& frontendHeap;
 | 
					    FrontendHeap& frontendHeap;
 | 
				
			||||||
    Model& model;
 | 
					    Model& model;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // MissionSelect
 | 
					 | 
				
			||||||
    void gotoMissionSelectScreenNoTransitionImpl();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // AMI
 | 
					    // AMI
 | 
				
			||||||
    void gotoAMIScreenNoTransitionImpl();
 | 
					    void gotoAMIScreenNoTransitionImpl();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -81,7 +81,7 @@ public:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    virtual void gotoStartScreen(FrontendApplication& app)
 | 
					    virtual void gotoStartScreen(FrontendApplication& app)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        app.gotoMissionSelectScreenNoTransition();
 | 
					        app.gotoDriverViewScreenNoTransition();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
    FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app)
 | 
					    FrontendHeapBase(touchgfx::AbstractPartition& presenters, touchgfx::AbstractPartition& views, touchgfx::AbstractPartition& transitions, FrontendApplication& app)
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					/*********************************************************************************/
 | 
				
			||||||
 | 
					/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
 | 
				
			||||||
 | 
					/*********************************************************************************/
 | 
				
			||||||
 | 
					#ifndef DRIVERVIEWFIELDSELECTIONBASE_HPP
 | 
				
			||||||
 | 
					#define DRIVERVIEWFIELDSELECTIONBASE_HPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <gui/common/FrontendApplication.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/containers/Container.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/widgets/Box.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/widgets/TextArea.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/widgets/canvas/Line.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/widgets/canvas/PainterRGB565.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class DriverViewFieldSelectionBase : public touchgfx::Container
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					    DriverViewFieldSelectionBase();
 | 
				
			||||||
 | 
					    virtual ~DriverViewFieldSelectionBase();
 | 
				
			||||||
 | 
					    virtual void initialize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					    FrontendApplication& application() {
 | 
				
			||||||
 | 
					        return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * Member Declarations
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    touchgfx::Box bg;
 | 
				
			||||||
 | 
					    touchgfx::TextArea name;
 | 
				
			||||||
 | 
					    touchgfx::Line line1;
 | 
				
			||||||
 | 
					    touchgfx::PainterRGB565 line1Painter;
 | 
				
			||||||
 | 
					    touchgfx::Line line2;
 | 
				
			||||||
 | 
					    touchgfx::PainterRGB565 line2Painter;
 | 
				
			||||||
 | 
					    touchgfx::Line line2_1;
 | 
				
			||||||
 | 
					    touchgfx::PainterRGB565 line2_1Painter;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // DRIVERVIEWFIELDSELECTIONBASE_HPP
 | 
				
			||||||
@ -15,6 +15,8 @@
 | 
				
			|||||||
#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
 | 
					#include <touchgfx/containers/progress_indicators/LineProgress.hpp>
 | 
				
			||||||
#include <touchgfx/widgets/TextArea.hpp>
 | 
					#include <touchgfx/widgets/TextArea.hpp>
 | 
				
			||||||
#include <gui/containers/DriverViewField.hpp>
 | 
					#include <gui/containers/DriverViewField.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/containers/scrollers/ScrollWheel.hpp>
 | 
				
			||||||
 | 
					#include <gui/containers/DriverViewFieldSelection.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DriverViewViewBase : public touchgfx::View<DriverViewPresenter>
 | 
					class DriverViewViewBase : public touchgfx::View<DriverViewPresenter>
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -23,6 +25,36 @@ public:
 | 
				
			|||||||
    virtual ~DriverViewViewBase();
 | 
					    virtual ~DriverViewViewBase();
 | 
				
			||||||
    virtual void setupScreen();
 | 
					    virtual void setupScreen();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    virtual void fieldTypeSelectionUpdateItem(DriverViewFieldSelection& item, int16_t itemIndex)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    virtual void handleKeyEvent(uint8_t key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * Virtual Action Handlers
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    virtual void selectPrevField()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    virtual void selectNextField()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    virtual void selectPrevFieldType()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    virtual void selectNextFieldType()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    virtual void confirmFieldType()
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        // Override and implement this function in DriverView
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
    FrontendApplication& application() {
 | 
					    FrontendApplication& application() {
 | 
				
			||||||
        return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
 | 
					        return *static_cast<FrontendApplication*>(touchgfx::Application::getInstance());
 | 
				
			||||||
@ -51,6 +83,8 @@ protected:
 | 
				
			|||||||
    DriverViewField field1;
 | 
					    DriverViewField field1;
 | 
				
			||||||
    DriverViewField field2;
 | 
					    DriverViewField field2;
 | 
				
			||||||
    DriverViewField field3;
 | 
					    DriverViewField field3;
 | 
				
			||||||
 | 
					    touchgfx::ScrollWheel fieldTypeSelection;
 | 
				
			||||||
 | 
					    touchgfx::DrawableListItems<DriverViewFieldSelection, 11> fieldTypeSelectionListItems;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -60,6 +94,16 @@ private:
 | 
				
			|||||||
    static const uint32_t CANVAS_BUFFER_SIZE = 7200;
 | 
					    static const uint32_t CANVAS_BUFFER_SIZE = 7200;
 | 
				
			||||||
    uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
 | 
					    uint8_t canvasBuffer[CANVAS_BUFFER_SIZE];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * Callback Declarations
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    touchgfx::Callback<DriverViewViewBase, touchgfx::DrawableListItemsInterface*, int16_t, int16_t> updateItemCallback;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * Callback Handler Declarations
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    void updateItemCallbackHandler(touchgfx::DrawableListItemsInterface* items, int16_t containerIndex, int16_t itemIndex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // DRIVERVIEWVIEWBASE_HPP
 | 
					#endif // DRIVERVIEWVIEWBASE_HPP
 | 
				
			||||||
 | 
				
			|||||||
@ -33,19 +33,6 @@ FrontendApplicationBase::FrontendApplicationBase(Model& m, FrontendHeap& heap)
 | 
				
			|||||||
 * Screen Transition Declarations
 | 
					 * Screen Transition Declarations
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// MissionSelect
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void FrontendApplicationBase::gotoMissionSelectScreenNoTransition()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    transitionCallback = touchgfx::Callback<FrontendApplicationBase>(this, &FrontendApplication::gotoMissionSelectScreenNoTransitionImpl);
 | 
					 | 
				
			||||||
    pendingScreenTransitionCallback = &transitionCallback;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void FrontendApplicationBase::gotoMissionSelectScreenNoTransitionImpl()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    touchgfx::makeTransition<MissionSelectView, MissionSelectPresenter, touchgfx::NoTransition, Model >(¤tScreen, ¤tPresenter, frontendHeap, ¤tTransition, &model);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AMI
 | 
					// AMI
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void FrontendApplicationBase::gotoAMIScreenNoTransition()
 | 
					void FrontendApplicationBase::gotoAMIScreenNoTransition()
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					/*********************************************************************************/
 | 
				
			||||||
 | 
					/********** THIS FILE IS GENERATED BY TOUCHGFX DESIGNER, DO NOT MODIFY ***********/
 | 
				
			||||||
 | 
					/*********************************************************************************/
 | 
				
			||||||
 | 
					#include <gui_generated/containers/DriverViewFieldSelectionBase.hpp>
 | 
				
			||||||
 | 
					#include <touchgfx/Color.hpp>
 | 
				
			||||||
 | 
					#include <texts/TextKeysAndLanguages.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DriverViewFieldSelectionBase::DriverViewFieldSelectionBase()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    setWidth(160);
 | 
				
			||||||
 | 
					    setHeight(26);
 | 
				
			||||||
 | 
					    bg.setPosition(0, 0, 160, 25);
 | 
				
			||||||
 | 
					    bg.setColor(touchgfx::Color::getColorFromRGB(34, 34, 34));
 | 
				
			||||||
 | 
					    add(bg);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    name.setPosition(0, 0, 160, 25);
 | 
				
			||||||
 | 
					    name.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
				
			||||||
 | 
					    name.setLinespacing(0);
 | 
				
			||||||
 | 
					    name.setTypedText(touchgfx::TypedText(T___SINGLEUSE_PNKR));
 | 
				
			||||||
 | 
					    add(name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    line1.setPosition(0, 25, 160, 1);
 | 
				
			||||||
 | 
					    line1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
				
			||||||
 | 
					    line1.setPainter(line1Painter);
 | 
				
			||||||
 | 
					    line1.setStart(0, 0);
 | 
				
			||||||
 | 
					    line1.setEnd(160, 0);
 | 
				
			||||||
 | 
					    line1.setLineWidth(10);
 | 
				
			||||||
 | 
					    line1.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
 | 
				
			||||||
 | 
					    add(line1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    line2.setPosition(0, 0, 1, 26);
 | 
				
			||||||
 | 
					    line2Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
				
			||||||
 | 
					    line2.setPainter(line2Painter);
 | 
				
			||||||
 | 
					    line2.setStart(0, 0);
 | 
				
			||||||
 | 
					    line2.setEnd(0, 26);
 | 
				
			||||||
 | 
					    line2.setLineWidth(10);
 | 
				
			||||||
 | 
					    line2.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
 | 
				
			||||||
 | 
					    add(line2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    line2_1.setPosition(159, 0, 1, 26);
 | 
				
			||||||
 | 
					    line2_1Painter.setColor(touchgfx::Color::getColorFromRGB(255, 255, 255));
 | 
				
			||||||
 | 
					    line2_1.setPainter(line2_1Painter);
 | 
				
			||||||
 | 
					    line2_1.setStart(0, 0);
 | 
				
			||||||
 | 
					    line2_1.setEnd(0, 26);
 | 
				
			||||||
 | 
					    line2_1.setLineWidth(10);
 | 
				
			||||||
 | 
					    line2_1.setLineEndingStyle(touchgfx::Line::ROUND_CAP_ENDING);
 | 
				
			||||||
 | 
					    add(line2_1);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DriverViewFieldSelectionBase::~DriverViewFieldSelectionBase()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewFieldSelectionBase::initialize()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -7,7 +7,8 @@
 | 
				
			|||||||
#include <images/BitmapDatabase.hpp>
 | 
					#include <images/BitmapDatabase.hpp>
 | 
				
			||||||
#include <texts/TextKeysAndLanguages.hpp>
 | 
					#include <texts/TextKeysAndLanguages.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DriverViewViewBase::DriverViewViewBase()
 | 
					DriverViewViewBase::DriverViewViewBase() :
 | 
				
			||||||
 | 
					    updateItemCallback(this, &DriverViewViewBase::updateItemCallbackHandler)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
 | 
					    touchgfx::CanvasWidgetRenderer::setupBuffer(canvasBuffer, CANVAS_BUFFER_SIZE);
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
@ -101,6 +102,20 @@ DriverViewViewBase::DriverViewViewBase()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    field3.setXY(320, 0);
 | 
					    field3.setXY(320, 0);
 | 
				
			||||||
    add(field3);
 | 
					    add(field3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fieldTypeSelection.setPosition(0, 80, 160, 240);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setHorizontal(false);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setCircular(true);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setEasingEquation(touchgfx::EasingEquations::backEaseOut);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setSwipeAcceleration(10);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setDragAcceleration(10);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setNumberOfItems(1);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setSelectedItemOffset(94);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setDrawableSize(26, 0);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setDrawables(fieldTypeSelectionListItems, updateItemCallback);
 | 
				
			||||||
 | 
					    fieldTypeSelection.animateToItem(0, 0);
 | 
				
			||||||
 | 
					    fieldTypeSelection.setVisible(false);
 | 
				
			||||||
 | 
					    add(fieldTypeSelection);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DriverViewViewBase::~DriverViewViewBase()
 | 
					DriverViewViewBase::~DriverViewViewBase()
 | 
				
			||||||
@ -117,4 +132,67 @@ void DriverViewViewBase::setupScreen()
 | 
				
			|||||||
    field1.initialize();
 | 
					    field1.initialize();
 | 
				
			||||||
    field2.initialize();
 | 
					    field2.initialize();
 | 
				
			||||||
    field3.initialize();
 | 
					    field3.initialize();
 | 
				
			||||||
 | 
					    fieldTypeSelection.initialize();
 | 
				
			||||||
 | 
					    for (int i = 0; i < fieldTypeSelectionListItems.getNumberOfDrawables(); i++)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        fieldTypeSelectionListItems[i].initialize();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewViewBase::handleKeyEvent(uint8_t key)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if(22 == key)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //SelectPreviousField
 | 
				
			||||||
 | 
					        //When hardware button 22 clicked call virtual function
 | 
				
			||||||
 | 
					        //Call selectPrevField
 | 
				
			||||||
 | 
					        selectPrevField();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(21 == key)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //SelectNextField
 | 
				
			||||||
 | 
					        //When hardware button 21 clicked call virtual function
 | 
				
			||||||
 | 
					        //Call selectNextField
 | 
				
			||||||
 | 
					        selectNextField();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(24 == key)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //SelectPreviousFieldType
 | 
				
			||||||
 | 
					        //When hardware button 24 clicked call virtual function
 | 
				
			||||||
 | 
					        //Call selectPrevFieldType
 | 
				
			||||||
 | 
					        selectPrevFieldType();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(23 == key)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //SelectNextFieldType
 | 
				
			||||||
 | 
					        //When hardware button 23 clicked call virtual function
 | 
				
			||||||
 | 
					        //Call selectNextFieldType
 | 
				
			||||||
 | 
					        selectNextFieldType();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(6 == key)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        //ConfirmFieldType
 | 
				
			||||||
 | 
					        //When hardware button 6 clicked call virtual function
 | 
				
			||||||
 | 
					        //Call confirmFieldType
 | 
				
			||||||
 | 
					        confirmFieldType();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewViewBase::updateItemCallbackHandler(touchgfx::DrawableListItemsInterface* items, int16_t containerIndex, int16_t itemIndex)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    if (items == &fieldTypeSelectionListItems)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        touchgfx::Drawable* d = items->getDrawable(containerIndex);
 | 
				
			||||||
 | 
					        DriverViewFieldSelection* cc = (DriverViewFieldSelection*)d;
 | 
				
			||||||
 | 
					        fieldTypeSelectionUpdateItem(*cc, itemIndex);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1 +1 @@
 | 
				
			|||||||
{"remap":"yes","language":"GB","language_index":0,"indices":[["252","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["228","T_FIELD_LVSOC"],["246","T_FIELD_TSSOC"],["262","T_FIELD_MAXCELLTEMP"],["267","T_FIELD_TIREFL"],["272","T_FIELD_TIREFR"],["277","T_FIELD_TIRERL"],["282","T_FIELD_TIRERR"],["257","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["296","T_FIELD_SDC"],["162","T_FIELD_INVRREADY"],["154","T_FIELD_INVLREADY"],["178","T_FIELD_R2DPROGRESS"],["170","T_FIELD_ACTIVEMISSION"],["138","T_FIELD_ASSTATE"],["194","T_FIELD_TSSTATE"],["136","T_NUMBERWILDCARD"],["136","T_DEFAULTWILDCARD"],["292","T_FIELD_TSCURRENT"],["287","T_FIELD_MINCELLVOLT"],["234","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["186","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["186","T_SKIDPAD"],["82","T_ACCEL"],["222","T___SINGLEUSE_0FBJ"],["300","T___SINGLEUSE_4OBM"],["293","T___SINGLEUSE_PHFD"],["240","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
 | 
					{"remap":"yes","language":"GB","language_index":0,"indices":[["257","T_FIELD_BBAL"],["209","T_FIELD_TSVOLTVEH"],["202","T_FIELD_TSVOLTBAT"],["228","T_FIELD_LVSOC"],["246","T_FIELD_TSSOC"],["267","T_FIELD_MAXCELLTEMP"],["272","T_FIELD_TIREFL"],["277","T_FIELD_TIREFR"],["282","T_FIELD_TIRERL"],["287","T_FIELD_TIRERR"],["262","T_FIELD_LAPCOUNT"],["146","T_FIELD_INICHKSTATE"],["216","T_FIELD_ERR"],["301","T_FIELD_SDC"],["162","T_FIELD_INVRREADY"],["154","T_FIELD_INVLREADY"],["178","T_FIELD_R2DPROGRESS"],["170","T_FIELD_ACTIVEMISSION"],["138","T_FIELD_ASSTATE"],["194","T_FIELD_TSSTATE"],["136","T_NUMBERWILDCARD"],["136","T_DEFAULTWILDCARD"],["297","T_FIELD_TSCURRENT"],["292","T_FIELD_MINCELLVOLT"],["234","T_FIELD_SPEED"],["95","T_INSPECTION_HUGE"],["127","T_EBS_HUGE"],["106","T_TRACKDRIVE_HUGE"],["117","T_AUTOX_HUGE"],["186","T_SKIDPAD_HUGE"],["82","T_ACCEL_HUGE"],["34","T_INVALID_HUGE"],["67","T_MANUAL"],["95","T_INSPECTION"],["127","T_EBS"],["106","T_TRACKDRIVE"],["117","T_AUTOX"],["186","T_SKIDPAD"],["82","T_ACCEL"],["252","T___SINGLEUSE_PNKR"],["222","T___SINGLEUSE_0FBJ"],["305","T___SINGLEUSE_4OBM"],["298","T___SINGLEUSE_PHFD"],["240","T___SINGLEUSE_H6UX"],["136","T___SINGLEUSE_20H3"],["17","T___SINGLEUSE_SDGP"],["51","T___SINGLEUSE_M5X7"],["0","T___SINGLEUSE_6GPV"]]}
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
{"languages":["GB"],"textids":["T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
 | 
					{"languages":["GB"],"textids":["T_FIELD_BBAL","T_FIELD_TSVOLTVEH","T_FIELD_TSVOLTBAT","T_FIELD_LVSOC","T_FIELD_TSSOC","T_FIELD_MAXCELLTEMP","T_FIELD_TIREFL","T_FIELD_TIREFR","T_FIELD_TIRERL","T_FIELD_TIRERR","T_FIELD_LAPCOUNT","T_FIELD_INICHKSTATE","T_FIELD_ERR","T_FIELD_SDC","T_FIELD_INVRREADY","T_FIELD_INVLREADY","T_FIELD_R2DPROGRESS","T_FIELD_ACTIVEMISSION","T_FIELD_ASSTATE","T_FIELD_TSSTATE","T_NUMBERWILDCARD","T_DEFAULTWILDCARD","T_FIELD_TSCURRENT","T_FIELD_MINCELLVOLT","T_FIELD_SPEED","T_INSPECTION_HUGE","T_EBS_HUGE","T_TRACKDRIVE_HUGE","T_AUTOX_HUGE","T_SKIDPAD_HUGE","T_ACCEL_HUGE","T_INVALID_HUGE","T_MANUAL","T_INSPECTION","T_EBS","T_TRACKDRIVE","T_AUTOX","T_SKIDPAD","T_ACCEL","T___SINGLEUSE_PNKR","T___SINGLEUSE_0FBJ","T___SINGLEUSE_4OBM","T___SINGLEUSE_PHFD","T___SINGLEUSE_H6UX","T___SINGLEUSE_20H3","T___SINGLEUSE_SDGP","T___SINGLEUSE_M5X7","T___SINGLEUSE_6GPV"]}
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,70,73,69,76,68,0,76,86,83,79,67,0,83,80,69,69,68,0,84,73,82,69,83,0,84,83,83,79,67,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,83,68,67,0,76,86,0]}
 | 
					{"remap":"yes","languages":["Gb"],"characters":[67,104,111,111,115,101,32,97,32,109,105,115,115,105,111,110,0,67,117,114,114,101,110,116,32,77,105,115,115,105,111,110,58,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,33,0,73,110,118,97,108,105,100,32,77,105,115,115,105,111,110,0,77,97,110,117,97,108,32,68,114,105,118,105,110,103,0,65,99,99,101,108,101,114,97,116,105,111,110,0,73,110,115,112,101,99,116,105,111,110,0,84,114,97,99,107,100,114,105,118,101,0,65,117,116,111,99,114,111,115,115,0,69,66,83,32,84,101,115,116,0,2,0,65,83,83,84,65,84,69,0,73,67,83,84,65,84,69,0,73,78,86,76,82,68,89,0,73,78,86,82,82,68,89,0,77,73,83,83,73,79,78,0,82,50,68,80,82,79,71,0,83,107,105,100,112,97,100,0,84,83,83,84,65,84,69,0,84,83,86,66,65,84,0,84,83,86,86,69,72,0,69,82,82,79,82,0,70,73,69,76,68,0,76,86,83,79,67,0,83,80,69,69,68,0,84,73,82,69,83,0,84,83,83,79,67,0,63,63,63,63,0,66,66,65,76,0,76,65,80,83,0,84,77,65,88,0,84,84,70,76,0,84,84,70,82,0,84,84,82,76,0,84,84,82,82,0,86,77,73,78,0,73,84,83,0,83,68,67,0,76,86,0]}
 | 
				
			||||||
@ -1 +1 @@
 | 
				
			|||||||
{"databases":{"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4},"generate_font_format":"0"}
 | 
					{"databases":{"DEFAULT":[[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[0,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[3,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[2,"CENTER","LTR"],[4,"CENTER","LTR"],[1,"LEFT","LTR"],[2,"CENTER","LTR"],[1,"LEFT","LTR"]]},"database_list":["DEFAULT"],"fonts":{"getFont_verdana_20_4bpp":0,"getFont_CHINN____30_4bpp":1,"getFont_CHINN____20_4bpp":2,"getFont_CHINN____40_4bpp":3,"getFont_lucon_TTF_50_4bpp":4},"generate_font_format":"0"}
 | 
				
			||||||
@ -51,6 +51,7 @@ enum TEXTS
 | 
				
			|||||||
    T_AUTOX,
 | 
					    T_AUTOX,
 | 
				
			||||||
    T_SKIDPAD,
 | 
					    T_SKIDPAD,
 | 
				
			||||||
    T_ACCEL,
 | 
					    T_ACCEL,
 | 
				
			||||||
 | 
					    T___SINGLEUSE_PNKR,
 | 
				
			||||||
    T___SINGLEUSE_0FBJ,
 | 
					    T___SINGLEUSE_0FBJ,
 | 
				
			||||||
    T___SINGLEUSE_4OBM,
 | 
					    T___SINGLEUSE_4OBM,
 | 
				
			||||||
    T___SINGLEUSE_PHFD,
 | 
					    T___SINGLEUSE_PHFD,
 | 
				
			||||||
 | 
				
			|||||||
@ -10,20 +10,20 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE;
 | 
				
			|||||||
// Remap all strings
 | 
					// Remap all strings
 | 
				
			||||||
TEXT_LOCATION_FLASH_PRAGMA
 | 
					TEXT_LOCATION_FLASH_PRAGMA
 | 
				
			||||||
KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
 | 
					KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
 | 
				
			||||||
    252, // T_FIELD_BBAL: "BBAL"
 | 
					    257, // T_FIELD_BBAL: "BBAL"
 | 
				
			||||||
    209, // T_FIELD_TSVOLTVEH: "TSVVEH"
 | 
					    209, // T_FIELD_TSVOLTVEH: "TSVVEH"
 | 
				
			||||||
    202, // T_FIELD_TSVOLTBAT: "TSVBAT"
 | 
					    202, // T_FIELD_TSVOLTBAT: "TSVBAT"
 | 
				
			||||||
    228, // T_FIELD_LVSOC: "LVSOC"
 | 
					    228, // T_FIELD_LVSOC: "LVSOC"
 | 
				
			||||||
    246, // T_FIELD_TSSOC: "TSSOC"
 | 
					    246, // T_FIELD_TSSOC: "TSSOC"
 | 
				
			||||||
    262, // T_FIELD_MAXCELLTEMP: "TMAX"
 | 
					    267, // T_FIELD_MAXCELLTEMP: "TMAX"
 | 
				
			||||||
    267, // T_FIELD_TIREFL: "TTFL"
 | 
					    272, // T_FIELD_TIREFL: "TTFL"
 | 
				
			||||||
    272, // T_FIELD_TIREFR: "TTFR"
 | 
					    277, // T_FIELD_TIREFR: "TTFR"
 | 
				
			||||||
    277, // T_FIELD_TIRERL: "TTRL"
 | 
					    282, // T_FIELD_TIRERL: "TTRL"
 | 
				
			||||||
    282, // T_FIELD_TIRERR: "TTRR"
 | 
					    287, // T_FIELD_TIRERR: "TTRR"
 | 
				
			||||||
    257, // T_FIELD_LAPCOUNT: "LAPS"
 | 
					    262, // T_FIELD_LAPCOUNT: "LAPS"
 | 
				
			||||||
    146, // T_FIELD_INICHKSTATE: "ICSTATE"
 | 
					    146, // T_FIELD_INICHKSTATE: "ICSTATE"
 | 
				
			||||||
    216, // T_FIELD_ERR: "ERROR"
 | 
					    216, // T_FIELD_ERR: "ERROR"
 | 
				
			||||||
    296, // T_FIELD_SDC: "SDC"
 | 
					    301, // T_FIELD_SDC: "SDC"
 | 
				
			||||||
    162, // T_FIELD_INVRREADY: "INVRRDY"
 | 
					    162, // T_FIELD_INVRREADY: "INVRRDY"
 | 
				
			||||||
    154, // T_FIELD_INVLREADY: "INVLRDY"
 | 
					    154, // T_FIELD_INVLREADY: "INVLRDY"
 | 
				
			||||||
    178, // T_FIELD_R2DPROGRESS: "R2DPROG"
 | 
					    178, // T_FIELD_R2DPROGRESS: "R2DPROG"
 | 
				
			||||||
@ -32,8 +32,8 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
 | 
				
			|||||||
    194, // T_FIELD_TSSTATE: "TSSTATE"
 | 
					    194, // T_FIELD_TSSTATE: "TSSTATE"
 | 
				
			||||||
    136, // T_NUMBERWILDCARD: "<>"
 | 
					    136, // T_NUMBERWILDCARD: "<>"
 | 
				
			||||||
    136, // T_DEFAULTWILDCARD: "<>"
 | 
					    136, // T_DEFAULTWILDCARD: "<>"
 | 
				
			||||||
    292, // T_FIELD_TSCURRENT: "ITS"
 | 
					    297, // T_FIELD_TSCURRENT: "ITS"
 | 
				
			||||||
    287, // T_FIELD_MINCELLVOLT: "VMIN"
 | 
					    292, // T_FIELD_MINCELLVOLT: "VMIN"
 | 
				
			||||||
    234, // T_FIELD_SPEED: "SPEED"
 | 
					    234, // T_FIELD_SPEED: "SPEED"
 | 
				
			||||||
    95,  // T_INSPECTION_HUGE: "Inspection"
 | 
					    95,  // T_INSPECTION_HUGE: "Inspection"
 | 
				
			||||||
    127, // T_EBS_HUGE: "EBS Test"
 | 
					    127, // T_EBS_HUGE: "EBS Test"
 | 
				
			||||||
@ -49,9 +49,10 @@ KEEP extern const uint32_t indicesGb[] TEXT_LOCATION_FLASH_ATTRIBUTE = {
 | 
				
			|||||||
    117, // T_AUTOX: "Autocross"
 | 
					    117, // T_AUTOX: "Autocross"
 | 
				
			||||||
    186, // T_SKIDPAD: "Skidpad"
 | 
					    186, // T_SKIDPAD: "Skidpad"
 | 
				
			||||||
    82,  // T_ACCEL: "Acceleration"
 | 
					    82,  // T_ACCEL: "Acceleration"
 | 
				
			||||||
 | 
					    252, // T___SINGLEUSE_PNKR: "????"
 | 
				
			||||||
    222, // T___SINGLEUSE_0FBJ: "FIELD"
 | 
					    222, // T___SINGLEUSE_0FBJ: "FIELD"
 | 
				
			||||||
    300, // T___SINGLEUSE_4OBM: "LV"
 | 
					    305, // T___SINGLEUSE_4OBM: "LV"
 | 
				
			||||||
    293, // T___SINGLEUSE_PHFD: "TS"
 | 
					    298, // T___SINGLEUSE_PHFD: "TS"
 | 
				
			||||||
    240, // T___SINGLEUSE_H6UX: "TIRES"
 | 
					    240, // T___SINGLEUSE_H6UX: "TIRES"
 | 
				
			||||||
    136, // T___SINGLEUSE_20H3: "<>"
 | 
					    136, // T___SINGLEUSE_20H3: "<>"
 | 
				
			||||||
    17,  // T___SINGLEUSE_SDGP: "Current Mission:"
 | 
					    17,  // T___SINGLEUSE_SDGP: "Current Mission:"
 | 
				
			||||||
 | 
				
			|||||||
@ -87,17 +87,18 @@ KEEP extern const touchgfx::Unicode::UnicodeChar texts_all_languages[] TEXT_LOCA
 | 
				
			|||||||
    0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @234 "SPEED"
 | 
					    0x53, 0x50, 0x45, 0x45, 0x44, 0x0, // @234 "SPEED"
 | 
				
			||||||
    0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @240 "TIRES"
 | 
					    0x54, 0x49, 0x52, 0x45, 0x53, 0x0, // @240 "TIRES"
 | 
				
			||||||
    0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @246 "TSSOC"
 | 
					    0x54, 0x53, 0x53, 0x4f, 0x43, 0x0, // @246 "TSSOC"
 | 
				
			||||||
    0x42, 0x42, 0x41, 0x4c, 0x0, // @252 "BBAL"
 | 
					    0x3f, 0x3f, 0x3f, 0x3f, 0x0, // @252 "????"
 | 
				
			||||||
    0x4c, 0x41, 0x50, 0x53, 0x0, // @257 "LAPS"
 | 
					    0x42, 0x42, 0x41, 0x4c, 0x0, // @257 "BBAL"
 | 
				
			||||||
    0x54, 0x4d, 0x41, 0x58, 0x0, // @262 "TMAX"
 | 
					    0x4c, 0x41, 0x50, 0x53, 0x0, // @262 "LAPS"
 | 
				
			||||||
    0x54, 0x54, 0x46, 0x4c, 0x0, // @267 "TTFL"
 | 
					    0x54, 0x4d, 0x41, 0x58, 0x0, // @267 "TMAX"
 | 
				
			||||||
    0x54, 0x54, 0x46, 0x52, 0x0, // @272 "TTFR"
 | 
					    0x54, 0x54, 0x46, 0x4c, 0x0, // @272 "TTFL"
 | 
				
			||||||
    0x54, 0x54, 0x52, 0x4c, 0x0, // @277 "TTRL"
 | 
					    0x54, 0x54, 0x46, 0x52, 0x0, // @277 "TTFR"
 | 
				
			||||||
    0x54, 0x54, 0x52, 0x52, 0x0, // @282 "TTRR"
 | 
					    0x54, 0x54, 0x52, 0x4c, 0x0, // @282 "TTRL"
 | 
				
			||||||
    0x56, 0x4d, 0x49, 0x4e, 0x0, // @287 "VMIN"
 | 
					    0x54, 0x54, 0x52, 0x52, 0x0, // @287 "TTRR"
 | 
				
			||||||
    0x49, 0x54, 0x53, 0x0, // @292 "ITS"
 | 
					    0x56, 0x4d, 0x49, 0x4e, 0x0, // @292 "VMIN"
 | 
				
			||||||
    0x53, 0x44, 0x43, 0x0, // @296 "SDC"
 | 
					    0x49, 0x54, 0x53, 0x0, // @297 "ITS"
 | 
				
			||||||
    0x4c, 0x56, 0x0 // @300 "LV"
 | 
					    0x53, 0x44, 0x43, 0x0, // @301 "SDC"
 | 
				
			||||||
 | 
					    0x4c, 0x56, 0x0 // @305 "LV"
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TEXT_LOCATION_FLASH_PRAGMA
 | 
					TEXT_LOCATION_FLASH_PRAGMA
 | 
				
			||||||
 | 
				
			|||||||
@ -67,6 +67,7 @@ const touchgfx::TypedText::TypedTextData typedText_database_DEFAULT[] TEXT_LOCAT
 | 
				
			|||||||
    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
 | 
					    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
    { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 4, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
    { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 1, touchgfx::LEFT, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
					    { 2, touchgfx::CENTER, touchgfx::TEXT_DIRECTION_LTR },
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,8 @@ public:
 | 
				
			|||||||
  void setValue(const char *str);
 | 
					  void setValue(const char *str);
 | 
				
			||||||
  void setValue(int boolValue);
 | 
					  void setValue(int boolValue);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void setSelected(int selected);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  Unicode::UnicodeChar valueBuffer[16];
 | 
					  Unicode::UnicodeChar valueBuffer[16];
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					#ifndef DRIVERVIEWFIELDSELECTION_HPP
 | 
				
			||||||
 | 
					#define DRIVERVIEWFIELDSELECTION_HPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "touchgfx/TypedText.hpp"
 | 
				
			||||||
 | 
					#include <gui_generated/containers/DriverViewFieldSelectionBase.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class DriverViewFieldSelection : public DriverViewFieldSelectionBase {
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
					  DriverViewFieldSelection();
 | 
				
			||||||
 | 
					  virtual ~DriverViewFieldSelection() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  virtual void initialize();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void setName(const touchgfx::TypedText &name);
 | 
				
			||||||
 | 
					  void setSelected(int selected);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					protected:
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif // DRIVERVIEWFIELDSELECTION_HPP
 | 
				
			||||||
@ -2,6 +2,8 @@
 | 
				
			|||||||
#define DRIVERVIEWVIEW_HPP
 | 
					#define DRIVERVIEWVIEW_HPP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "gui/common/DataField.hpp"
 | 
					#include "gui/common/DataField.hpp"
 | 
				
			||||||
 | 
					#include "gui/containers/DriverViewFieldSelection.hpp"
 | 
				
			||||||
 | 
					#include "touchgfx/containers/scrollers/DrawableList.hpp"
 | 
				
			||||||
#include "vehicle.h"
 | 
					#include "vehicle.h"
 | 
				
			||||||
#include <gui/driverview_screen/DriverViewPresenter.hpp>
 | 
					#include <gui/driverview_screen/DriverViewPresenter.hpp>
 | 
				
			||||||
#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
 | 
					#include <gui_generated/driverview_screen/DriverViewViewBase.hpp>
 | 
				
			||||||
@ -13,6 +15,9 @@ public:
 | 
				
			|||||||
  virtual void setupScreen();
 | 
					  virtual void setupScreen();
 | 
				
			||||||
  virtual void tearDownScreen();
 | 
					  virtual void tearDownScreen();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void fieldTypeSelectionUpdateItem(DriverViewFieldSelection &item,
 | 
				
			||||||
 | 
					                                    int16_t itemIndex) override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void setFieldType(size_t i, const DataFieldDescription &desc);
 | 
					  void setFieldType(size_t i, const DataFieldDescription &desc);
 | 
				
			||||||
  void setFieldValue(size_t i, float value);
 | 
					  void setFieldValue(size_t i, float value);
 | 
				
			||||||
  void setFieldValue(size_t i, const char *value);
 | 
					  void setFieldValue(size_t i, const char *value);
 | 
				
			||||||
@ -21,9 +26,25 @@ public:
 | 
				
			|||||||
  void setTireTemps(const TireTemps &temps);
 | 
					  void setTireTemps(const TireTemps &temps);
 | 
				
			||||||
  void setTSSoC(uint8_t soc);
 | 
					  void setTSSoC(uint8_t soc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void selectPrevField() override;
 | 
				
			||||||
 | 
					  void selectNextField() override;
 | 
				
			||||||
 | 
					  void selectPrevFieldType() override;
 | 
				
			||||||
 | 
					  void selectNextFieldType() override;
 | 
				
			||||||
 | 
					  void confirmFieldType() override;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  static constexpr size_t NUM_FIELDS = 3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  DriverViewField &getField(size_t i);
 | 
					  DriverViewField &getField(size_t i);
 | 
				
			||||||
 | 
					  DriverViewFieldSelection *getFieldType(size_t i);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void updateSelectedField(size_t select);
 | 
				
			||||||
 | 
					  void updateSelectedFieldType(size_t select);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  size_t selectedField;
 | 
				
			||||||
 | 
					  size_t selectedFieldType;
 | 
				
			||||||
 | 
					  DataFieldType fieldTypes[NUM_FIELDS];
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // DRIVERVIEWVIEW_HPP
 | 
					#endif // DRIVERVIEWVIEW_HPP
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
#include "gui/common/DataField.hpp"
 | 
					#include "gui/common/DataField.hpp"
 | 
				
			||||||
#include "texts/TextKeysAndLanguages.hpp"
 | 
					#include "texts/TextKeysAndLanguages.hpp"
 | 
				
			||||||
 | 
					#include "touchgfx/Color.hpp"
 | 
				
			||||||
#include "touchgfx/Unicode.hpp"
 | 
					#include "touchgfx/Unicode.hpp"
 | 
				
			||||||
#include <gui/containers/DriverViewField.hpp>
 | 
					#include <gui/containers/DriverViewField.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -43,6 +44,12 @@ void DriverViewField::setValue(int boolValue) {
 | 
				
			|||||||
  updateValueBuffer();
 | 
					  updateValueBuffer();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewField::setSelected(int selected) {
 | 
				
			||||||
 | 
					  uint8_t v = selected ? 0x44 : 0x00;
 | 
				
			||||||
 | 
					  box.setColor(touchgfx::Color::getColorFromRGB(v, v, v));
 | 
				
			||||||
 | 
					  box.invalidate();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DriverViewField::updateValueBuffer() {
 | 
					void DriverViewField::updateValueBuffer() {
 | 
				
			||||||
  switch (fieldKind) {
 | 
					  switch (fieldKind) {
 | 
				
			||||||
  case DataFieldKind::Numeric: {
 | 
					  case DataFieldKind::Numeric: {
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										17
									
								
								TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								TouchGFX/gui/src/containers/DriverViewFieldSelection.cpp
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#include "touchgfx/Color.hpp"
 | 
				
			||||||
 | 
					#include <gui/containers/DriverViewFieldSelection.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DriverViewFieldSelection::DriverViewFieldSelection() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewFieldSelection::initialize() {
 | 
				
			||||||
 | 
					  DriverViewFieldSelectionBase::initialize();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewFieldSelection::setName(const touchgfx::TypedText &name) {
 | 
				
			||||||
 | 
					  this->name.setTypedText(name);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewFieldSelection::setSelected(int selected) {
 | 
				
			||||||
 | 
					  int val = selected ? 0x66 : 0x22;
 | 
				
			||||||
 | 
					  bg.setColor(touchgfx::Color::getColorFromRGB(val, val, val));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -21,17 +21,17 @@ void DriverViewPresenter::vehicleStateUpdated() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  for (size_t i = 0; i < 3; i++) {
 | 
					  for (size_t i = 0; i < 3; i++) {
 | 
				
			||||||
    DataFieldType field = fields[i];
 | 
					    DataFieldType field = fields[i];
 | 
				
			||||||
    void *val = dataFieldDescs[field].getValue();
 | 
					    // void *val = dataFieldDescs[field].getValue();
 | 
				
			||||||
    switch (dataFieldDescs[field].kind) {
 | 
					    // switch (dataFieldDescs[field].kind) {
 | 
				
			||||||
    case DataFieldKind::Numeric:
 | 
					    // case DataFieldKind::Numeric:
 | 
				
			||||||
      view.setFieldValue(i, *((float *)val));
 | 
					    //   view.setFieldValue(i, *((float *)val));
 | 
				
			||||||
      break;
 | 
					    //   break;
 | 
				
			||||||
    case DataFieldKind::Bool:
 | 
					    // case DataFieldKind::Bool:
 | 
				
			||||||
      view.setFieldValue(i, *((int *)val));
 | 
					    //   view.setFieldValue(i, *((int *)val));
 | 
				
			||||||
      break;
 | 
					    //   break;
 | 
				
			||||||
    case DataFieldKind::Text:
 | 
					    // case DataFieldKind::Text:
 | 
				
			||||||
      view.setFieldValue(i, (const char *)val);
 | 
					    //   view.setFieldValue(i, (const char *)val);
 | 
				
			||||||
      break;
 | 
					    //   break;
 | 
				
			||||||
    }
 | 
					    // }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,18 +1,27 @@
 | 
				
			|||||||
#include "gui/common/DataField.hpp"
 | 
					#include "gui/common/DataField.hpp"
 | 
				
			||||||
 | 
					#include "gui/containers/DriverViewField.hpp"
 | 
				
			||||||
#include "texts/TextKeysAndLanguages.hpp"
 | 
					#include "texts/TextKeysAndLanguages.hpp"
 | 
				
			||||||
#include <gui/driverview_screen/DriverViewView.hpp>
 | 
					#include <gui/driverview_screen/DriverViewView.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DriverViewView::DriverViewView() {}
 | 
					DriverViewView::DriverViewView()
 | 
				
			||||||
 | 
					    : fieldTypes{DF_MinCellVolt, DF_Speed, DF_TSCurrent} {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DriverViewView::setupScreen() {
 | 
					void DriverViewView::setupScreen() {
 | 
				
			||||||
  DriverViewViewBase::setupScreen();
 | 
					  DriverViewViewBase::setupScreen();
 | 
				
			||||||
  field1.setType(dataFieldDescs[DF_MinCellVolt]);
 | 
					  for (size_t i = 0; i < NUM_FIELDS; i++) {
 | 
				
			||||||
  field2.setType(dataFieldDescs[DF_Speed]);
 | 
					    getField(i).setType(dataFieldDescs[fieldTypes[i]]);
 | 
				
			||||||
  field3.setType(dataFieldDescs[DF_TSCurrent]);
 | 
					  }
 | 
				
			||||||
 | 
					  fieldTypeSelection.setNumberOfItems(DataFieldType_COUNT);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
 | 
					void DriverViewView::tearDownScreen() { DriverViewViewBase::tearDownScreen(); }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::fieldTypeSelectionUpdateItem(
 | 
				
			||||||
 | 
					    DriverViewFieldSelection &item, int16_t itemIndex) {
 | 
				
			||||||
 | 
					  item.setName(dataFieldDescs[itemIndex].title);
 | 
				
			||||||
 | 
					  item.setSelected(itemIndex == selectedFieldType);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void DriverViewView::setFieldType(size_t i, const DataFieldDescription &desc) {
 | 
					void DriverViewView::setFieldType(size_t i, const DataFieldDescription &desc) {
 | 
				
			||||||
  getField(i).setType(desc);
 | 
					  getField(i).setType(desc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -41,6 +50,59 @@ void DriverViewView::setTSSoC(uint8_t soc) {
 | 
				
			|||||||
  tsSoC.invalidate();
 | 
					  tsSoC.invalidate();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::selectNextField() {
 | 
				
			||||||
 | 
					  if (!fieldTypeSelection.isVisible()) {
 | 
				
			||||||
 | 
					    fieldTypeSelection.setVisible(true);
 | 
				
			||||||
 | 
					    updateSelectedField(0);
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    updateSelectedField((selectedField + 1) % NUM_FIELDS);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::selectPrevField() {
 | 
				
			||||||
 | 
					  if (!fieldTypeSelection.isVisible()) {
 | 
				
			||||||
 | 
					    fieldTypeSelection.setVisible(true);
 | 
				
			||||||
 | 
					    updateSelectedField(NUM_FIELDS - 1);
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    if (selectedField == 0) {
 | 
				
			||||||
 | 
					      updateSelectedField(NUM_FIELDS - 1);
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      updateSelectedField(selectedField - 1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::selectNextFieldType() {
 | 
				
			||||||
 | 
					  if (!fieldTypeSelection.isVisible()) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateSelectedFieldType((selectedFieldType + 1) % DataFieldType_COUNT);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::selectPrevFieldType() {
 | 
				
			||||||
 | 
					  if (!fieldTypeSelection.isVisible()) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (selectedFieldType == 0) {
 | 
				
			||||||
 | 
					    updateSelectedFieldType(DataFieldType_COUNT - 1);
 | 
				
			||||||
 | 
					  } else {
 | 
				
			||||||
 | 
					    updateSelectedFieldType(selectedFieldType - 1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::confirmFieldType() {
 | 
				
			||||||
 | 
					  if (!fieldTypeSelection.isVisible()) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  DriverViewField &field = getField(selectedField);
 | 
				
			||||||
 | 
					  field.setType(dataFieldDescs[selectedFieldType]);
 | 
				
			||||||
 | 
					  field.setSelected(false);
 | 
				
			||||||
 | 
					  fieldTypeSelection.setVisible(false);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DriverViewField &DriverViewView::getField(size_t i) {
 | 
					DriverViewField &DriverViewView::getField(size_t i) {
 | 
				
			||||||
  switch (i) {
 | 
					  switch (i) {
 | 
				
			||||||
  case 0:
 | 
					  case 0:
 | 
				
			||||||
@ -51,3 +113,29 @@ DriverViewField &DriverViewView::getField(size_t i) {
 | 
				
			|||||||
    return field3;
 | 
					    return field3;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DriverViewFieldSelection *DriverViewView::getFieldType(size_t i) {
 | 
				
			||||||
 | 
					  return static_cast<DriverViewFieldSelection *>(
 | 
				
			||||||
 | 
					      fieldTypeSelectionListItems.getDrawable(i));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::updateSelectedField(size_t selected) {
 | 
				
			||||||
 | 
					  getField(selectedField).setSelected(false);
 | 
				
			||||||
 | 
					  DriverViewField &field = getField(selected);
 | 
				
			||||||
 | 
					  field.setSelected(true);
 | 
				
			||||||
 | 
					  fieldTypeSelection.moveTo(field.getX(), fieldTypeSelection.getY());
 | 
				
			||||||
 | 
					  fieldTypeSelection.invalidate();
 | 
				
			||||||
 | 
					  selectedField = selected;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  updateSelectedFieldType(fieldTypes[selectedField]);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DriverViewView::updateSelectedFieldType(size_t selected) {
 | 
				
			||||||
 | 
					  size_t previousSelected = selectedFieldType;
 | 
				
			||||||
 | 
					  selectedFieldType = selected;
 | 
				
			||||||
 | 
					  // Trigger update of the background
 | 
				
			||||||
 | 
					  fieldTypeSelection.itemChanged(previousSelected);
 | 
				
			||||||
 | 
					  fieldTypeSelection.itemChanged(selectedFieldType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fieldTypeSelection.animateToItem(selectedFieldType, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -37,6 +37,8 @@
 | 
				
			|||||||
    <ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/>
 | 
					    <ClCompile Include="..\..\gui\src\containers\DriverViewField.cpp"/>
 | 
				
			||||||
    <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/>
 | 
					    <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldBase.cpp"/>
 | 
				
			||||||
    <ClCompile Include="..\..\gui\src\common\DataField.cpp"/>
 | 
					    <ClCompile Include="..\..\gui\src\common\DataField.cpp"/>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\gui\src\containers\DriverViewFieldSelection.cpp"/>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldSelectionBase.cpp"/>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
 | 
					    <None Include="$(ApplicationRoot)\assets\texts\texts.xml"/>
 | 
				
			||||||
@ -203,6 +205,8 @@
 | 
				
			|||||||
    <ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/>
 | 
					    <ClInclude Include="..\..\gui\include\gui\containers\DriverViewField.hpp"/>
 | 
				
			||||||
    <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/>
 | 
					    <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldBase.hpp"/>
 | 
				
			||||||
    <ClInclude Include="..\..\gui\include\gui\common\DataField.hpp"/>
 | 
					    <ClInclude Include="..\..\gui\include\gui\common\DataField.hpp"/>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\gui\include\gui\containers\DriverViewFieldSelection.hpp"/>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldSelectionBase.hpp"/>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>
 | 
					    <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc"/>
 | 
				
			||||||
 | 
				
			|||||||
@ -300,6 +300,12 @@
 | 
				
			|||||||
    <ClCompile Include="..\..\gui\src\common\DataField.cpp">
 | 
					    <ClCompile Include="..\..\gui\src\common\DataField.cpp">
 | 
				
			||||||
      <Filter>Source Files\gui\common</Filter>
 | 
					      <Filter>Source Files\gui\common</Filter>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\gui\src\containers\DriverViewFieldSelection.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files\gui\containers</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
 | 
					    <ClCompile Include="..\..\generated\gui_generated\src\containers\DriverViewFieldSelectionBase.cpp">
 | 
				
			||||||
 | 
					      <Filter>Source Files\generated\gui_generated\containers</Filter>
 | 
				
			||||||
 | 
					    </ClCompile>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <None Include="$(ApplicationRoot)\assets\texts\texts.xml">
 | 
					    <None Include="$(ApplicationRoot)\assets\texts\texts.xml">
 | 
				
			||||||
@ -790,6 +796,12 @@
 | 
				
			|||||||
    <ClInclude Include="..\..\gui\include\gui\common\DataField.hpp">
 | 
					    <ClInclude Include="..\..\gui\include\gui\common\DataField.hpp">
 | 
				
			||||||
      <Filter>Header Files\gui\common</Filter>
 | 
					      <Filter>Header Files\gui\common</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\gui\include\gui\containers\DriverViewFieldSelection.hpp">
 | 
				
			||||||
 | 
					      <Filter>Header Files\gui\containers</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\generated\gui_generated\include\gui_generated\containers\DriverViewFieldSelectionBase.hpp">
 | 
				
			||||||
 | 
					      <Filter>Header Files\generated\gui_generated\containers</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">
 | 
					    <ResourceCompile Include="$(ApplicationRoot)\generated\simulator\touchgfx.rc">
 | 
				
			||||||
 | 
				
			|||||||
@ -403,9 +403,81 @@
 | 
				
			|||||||
            "Width": 160,
 | 
					            "Width": 160,
 | 
				
			||||||
            "Height": 80,
 | 
					            "Height": 80,
 | 
				
			||||||
            "CustomContainerDefinitionName": "DriverViewField"
 | 
					            "CustomContainerDefinitionName": "DriverViewField"
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "ScrollWheel",
 | 
				
			||||||
 | 
					            "Name": "fieldTypeSelection",
 | 
				
			||||||
 | 
					            "Y": 80,
 | 
				
			||||||
 | 
					            "Width": 160,
 | 
				
			||||||
 | 
					            "Height": 240,
 | 
				
			||||||
 | 
					            "Visible": false,
 | 
				
			||||||
 | 
					            "SelectedItemOffset": 94,
 | 
				
			||||||
 | 
					            "IsCircular": true,
 | 
				
			||||||
 | 
					            "ItemTemplateName": "DriverViewFieldSelection",
 | 
				
			||||||
 | 
					            "NumberofItems": 1,
 | 
				
			||||||
 | 
					            "Easing": "Back",
 | 
				
			||||||
 | 
					            "EasingOption": "Out",
 | 
				
			||||||
 | 
					            "SwipeAcceleration": 1.0,
 | 
				
			||||||
 | 
					            "DragAcceleration": 1.0
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "Interactions": []
 | 
					        "Interactions": [
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "InteractionName": "SelectPreviousField",
 | 
				
			||||||
 | 
					            "Trigger": {
 | 
				
			||||||
 | 
					              "Type": "TriggerPhysicalButtonClicked",
 | 
				
			||||||
 | 
					              "ButtonKey": 22
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "Action": {
 | 
				
			||||||
 | 
					              "Type": "ActionCustom",
 | 
				
			||||||
 | 
					              "FunctionName": "selectPrevField"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "InteractionName": "SelectNextField",
 | 
				
			||||||
 | 
					            "Trigger": {
 | 
				
			||||||
 | 
					              "Type": "TriggerPhysicalButtonClicked",
 | 
				
			||||||
 | 
					              "ButtonKey": 21
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "Action": {
 | 
				
			||||||
 | 
					              "Type": "ActionCustom",
 | 
				
			||||||
 | 
					              "FunctionName": "selectNextField"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "InteractionName": "SelectPreviousFieldType",
 | 
				
			||||||
 | 
					            "Trigger": {
 | 
				
			||||||
 | 
					              "Type": "TriggerPhysicalButtonClicked",
 | 
				
			||||||
 | 
					              "ButtonKey": 24
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "Action": {
 | 
				
			||||||
 | 
					              "Type": "ActionCustom",
 | 
				
			||||||
 | 
					              "FunctionName": "selectPrevFieldType"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "InteractionName": "SelectNextFieldType",
 | 
				
			||||||
 | 
					            "Trigger": {
 | 
				
			||||||
 | 
					              "Type": "TriggerPhysicalButtonClicked",
 | 
				
			||||||
 | 
					              "ButtonKey": 23
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "Action": {
 | 
				
			||||||
 | 
					              "Type": "ActionCustom",
 | 
				
			||||||
 | 
					              "FunctionName": "selectNextFieldType"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "InteractionName": "ConfirmFieldType",
 | 
				
			||||||
 | 
					            "Trigger": {
 | 
				
			||||||
 | 
					              "Type": "TriggerPhysicalButtonClicked",
 | 
				
			||||||
 | 
					              "ButtonKey": 6
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "Action": {
 | 
				
			||||||
 | 
					              "Type": "ActionCustom",
 | 
				
			||||||
 | 
					              "FunctionName": "confirmFieldType"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "CustomContainerDefinitions": [
 | 
					    "CustomContainerDefinitions": [
 | 
				
			||||||
@ -537,6 +609,84 @@
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        "Interactions": []
 | 
					        "Interactions": []
 | 
				
			||||||
 | 
					      },
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        "Name": "DriverViewFieldSelection",
 | 
				
			||||||
 | 
					        "X": 100,
 | 
				
			||||||
 | 
					        "Y": 227,
 | 
				
			||||||
 | 
					        "Width": 160,
 | 
				
			||||||
 | 
					        "Height": 26,
 | 
				
			||||||
 | 
					        "Components": [
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "Box",
 | 
				
			||||||
 | 
					            "Name": "bg",
 | 
				
			||||||
 | 
					            "Width": 160,
 | 
				
			||||||
 | 
					            "Height": 25,
 | 
				
			||||||
 | 
					            "Color": {
 | 
				
			||||||
 | 
					              "Red": 34,
 | 
				
			||||||
 | 
					              "Green": 34,
 | 
				
			||||||
 | 
					              "Blue": 34
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "TextArea",
 | 
				
			||||||
 | 
					            "Name": "name",
 | 
				
			||||||
 | 
					            "Width": 160,
 | 
				
			||||||
 | 
					            "Height": 25,
 | 
				
			||||||
 | 
					            "TextId": "__SingleUse_PNKR",
 | 
				
			||||||
 | 
					            "TextRotation": "0",
 | 
				
			||||||
 | 
					            "Color": {
 | 
				
			||||||
 | 
					              "Red": 255,
 | 
				
			||||||
 | 
					              "Green": 255,
 | 
				
			||||||
 | 
					              "Blue": 255
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "Line",
 | 
				
			||||||
 | 
					            "Name": "line1",
 | 
				
			||||||
 | 
					            "Y": 25,
 | 
				
			||||||
 | 
					            "Width": 160,
 | 
				
			||||||
 | 
					            "Height": 1,
 | 
				
			||||||
 | 
					            "Color": {
 | 
				
			||||||
 | 
					              "Red": 255,
 | 
				
			||||||
 | 
					              "Green": 255,
 | 
				
			||||||
 | 
					              "Blue": 255
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "EndX": 160.0,
 | 
				
			||||||
 | 
					            "LineWidth": 10.0,
 | 
				
			||||||
 | 
					            "LineEndingStyle": "Round"
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "Line",
 | 
				
			||||||
 | 
					            "Name": "line2",
 | 
				
			||||||
 | 
					            "Width": 1,
 | 
				
			||||||
 | 
					            "Height": 26,
 | 
				
			||||||
 | 
					            "Color": {
 | 
				
			||||||
 | 
					              "Red": 255,
 | 
				
			||||||
 | 
					              "Green": 255,
 | 
				
			||||||
 | 
					              "Blue": 255
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "EndY": 26.0,
 | 
				
			||||||
 | 
					            "LineWidth": 10.0,
 | 
				
			||||||
 | 
					            "LineEndingStyle": "Round"
 | 
				
			||||||
 | 
					          },
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					            "Type": "Line",
 | 
				
			||||||
 | 
					            "Name": "line2_1",
 | 
				
			||||||
 | 
					            "X": 159,
 | 
				
			||||||
 | 
					            "Width": 1,
 | 
				
			||||||
 | 
					            "Height": 26,
 | 
				
			||||||
 | 
					            "Color": {
 | 
				
			||||||
 | 
					              "Red": 255,
 | 
				
			||||||
 | 
					              "Green": 255,
 | 
				
			||||||
 | 
					              "Blue": 255
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "EndY": 26.0,
 | 
				
			||||||
 | 
					            "LineWidth": 10.0,
 | 
				
			||||||
 | 
					            "LineEndingStyle": "Round"
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "Interactions": []
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "Name": "MyApplication",
 | 
					    "Name": "MyApplication",
 | 
				
			||||||
@ -545,7 +695,7 @@
 | 
				
			|||||||
      "Height": 480
 | 
					      "Height": 480
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "SelectedColorDepth": 16,
 | 
					    "SelectedColorDepth": 16,
 | 
				
			||||||
    "StartupScreenName": "MissionSelect",
 | 
					    "StartupScreenName": "DriverView",
 | 
				
			||||||
    "SelectedStartupLanguage": "GB",
 | 
					    "SelectedStartupLanguage": "GB",
 | 
				
			||||||
    "TouchGfxPath": "../Middlewares/ST/touchgfx",
 | 
					    "TouchGfxPath": "../Middlewares/ST/touchgfx",
 | 
				
			||||||
    "UIPath": ".",
 | 
					    "UIPath": ".",
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user