DataField -> NamedField<FieldType>

This commit is contained in:
2023-04-04 18:31:06 +02:00
parent 8d701669e4
commit 09f65fcf22
16 changed files with 94 additions and 81 deletions

View File

@ -1,5 +1,5 @@
#ifndef DATAFIELD_HPP
#define DATAFIELD_HPP
#ifndef NAMEDFIELD_HPP
#define NAMEDFIELD_HPP
#include "touchgfx/TypedText.hpp"
#include "touchgfx/Unicode.hpp"
@ -21,10 +21,10 @@ CountedEnum(DataFieldType, size_t, DF_TSState, DF_ASState, DF_ActiveMission,
DF_TSSoC, DF_LVSoC, DF_TSCurrent, DF_TSVoltageBat, DF_TSVoltageVeh,
DF_Speed, DF_BBal);
enum class DataFieldKind { Float, Bool, Text, Int };
enum class NamedFieldKind { Float, Bool, Text, Int };
struct DataFieldDescription {
DataFieldKind kind;
struct NamedFieldDescription {
NamedFieldKind kind;
const char *title;
size_t int_digits;
size_t decimal_digits;
@ -32,23 +32,26 @@ struct DataFieldDescription {
void *(*getValue)(void);
};
extern DataFieldDescription dataFieldDescs[];
extern NamedFieldDescription dataFieldDescs[];
class DataField {
template <class T> class NamedField {
public:
virtual ~DataField() {}
NamedField(const NamedFieldDescription *fieldDescs);
virtual ~NamedField() {}
void setType(DataFieldType type);
DataFieldType getType();
void setType(T type);
T getType();
virtual void updateValue();
protected:
const NamedFieldDescription *fieldDescs;
touchgfx::Unicode::UnicodeChar titleBuffer[16];
touchgfx::Unicode::UnicodeChar valueBuffer[16];
DataFieldType type;
const DataFieldDescription *desc;
T type;
const NamedFieldDescription *desc;
union {
float f;
int b;
@ -68,4 +71,4 @@ private:
void updateValueBuffer();
};
#endif // DATAFIELD_HPP
#endif // NAMEDFIELD_HPP

View File

@ -1,10 +1,11 @@
#ifndef DEBUGVIEWITEM_HPP
#define DEBUGVIEWITEM_HPP
#include "gui/common/DataField.hpp"
#include "gui/common/NamedField.hpp"
#include <gui_generated/containers/DebugViewItemBase.hpp>
class DebugViewItem : public DebugViewItemBase, public DataField {
class DebugViewItem : public DebugViewItemBase,
public NamedField<DataFieldType> {
public:
DebugViewItem();
virtual ~DebugViewItem() {}

View File

@ -1,7 +1,7 @@
#ifndef DEBUGVIEWLINE_HPP
#define DEBUGVIEWLINE_HPP
#include "gui/common/DataField.hpp"
#include "gui/common/NamedField.hpp"
#include "gui/containers/DebugViewItem.hpp"
#include <gui_generated/containers/DebugViewLineBase.hpp>

View File

@ -5,9 +5,10 @@
#include "touchgfx/Unicode.hpp"
#include <gui_generated/containers/DriverViewFieldBase.hpp>
#include "gui/common/DataField.hpp"
#include "gui/common/NamedField.hpp"
class DriverViewField : public DriverViewFieldBase, public DataField {
class DriverViewField : public DriverViewFieldBase,
public NamedField<DataFieldType> {
public:
DriverViewField();
virtual ~DriverViewField() {}

View File

@ -4,7 +4,7 @@
#include <gui/model/ModelListener.hpp>
#include <mvp/Presenter.hpp>
#include "gui/common/DataField.hpp"
#include "gui/common/NamedField.hpp"
using namespace touchgfx;

View File

@ -1,7 +1,7 @@
#ifndef DRIVERVIEWVIEW_HPP
#define DRIVERVIEWVIEW_HPP
#include "gui/common/DataField.hpp"
#include "gui/common/NamedField.hpp"
#include "gui/containers/DriverViewFieldSelection.hpp"
#include "touchgfx/containers/scrollers/DrawableList.hpp"
#include "vehicle.h"