Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CDataList.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_CDATALIST_HPP_
2#define LIBS_GUI_CDATALIST_HPP_
3
4#include "core/concepts.hpp"
5#include "core/types.hpp"
6#include "third_party/magic_enum/magic_enum.hpp"
8
9#include <memory>
10#include <string>
11
12class CDataList final
13{
14public:
15 static std::shared_ptr<CDataList> createBool(bool value);
16 static std::shared_ptr<CDataList> createDouble(double value, uint32_t decimalsNumber = 2);
17 static std::shared_ptr<CDataList> createIcon(std::string_view icon);
18 static std::shared_ptr<CDataList> createString(std::string_view value);
19 static std::shared_ptr<CDataList> createUnsignedLong(uint32_t value);
20 static std::shared_ptr<CDataList> createColor(iv::types::color color);
21 template<iv::concepts::EnumType E>
22 static std::shared_ptr<CDataList> createEnum(E enumValue)
23 {
24 return createString(magic_enum::enum_name(enumValue));
25 }
26
27 CDataList();
28 CDataList(const CDataList &datalist);
29 virtual ~CDataList();
30
31 [[nodiscard]] bool getValueBoolean() const;
32 [[nodiscard]] CEnumComponentsGUI::EDataType getDataType() const;
33 double getValueDouble(uint32_t *decimalsNumberOpt) const;
34 [[nodiscard]] std::string getValueIcon() const;
35 [[nodiscard]] std::string getValueString() const;
36 [[nodiscard]] uint32_t getValueUnsignedLong() const;
37 [[nodiscard]] iv::types::color getValueColor() const;
38
39 [[nodiscard]] bool hasString() const;
40
41 [[nodiscard]] std::string toString() const;
42
43private:
44 CDataList(CEnumComponentsGUI::EDataType dataType, bool valueBoolean, uint32_t valueUnsigned, double valueDouble,
45 iv::types::color valueColor, std::string_view valueStringAndIcon, uint32_t decimalsNumber);
46
48
54
56};
57
58#endif /* LIBS_GUI_CDATALIST_HPP_ */
Definition CDataList.hpp:13
static std::shared_ptr< CDataList > createUnsignedLong(uint32_t value)
Definition CDataList.cpp:76
std::string toString() const
Definition CDataList.cpp:158
uint32_t getValueUnsignedLong() const
Definition CDataList.cpp:122
uint32_t m_valueUnsigned
Definition CDataList.hpp:50
CDataList()
Definition CDataList.cpp:9
static std::shared_ptr< CDataList > createIcon(std::string_view icon)
Definition CDataList.cpp:70
uint32_t m_decimalsNumber
Definition CDataList.hpp:55
static std::shared_ptr< CDataList > createDouble(double value, uint32_t decimalsNumber=2)
Definition CDataList.cpp:64
static std::shared_ptr< CDataList > createString(std::string_view value)
Definition CDataList.cpp:58
std::string getValueIcon() const
Definition CDataList.cpp:110
bool m_valueBoolean
Definition CDataList.hpp:49
virtual ~CDataList()
CEnumComponentsGUI::EDataType m_dataType
Definition CDataList.hpp:47
static std::shared_ptr< CDataList > createColor(iv::types::color color)
Definition CDataList.cpp:82
std::string m_valueStringAndIcon
Definition CDataList.hpp:53
static std::shared_ptr< CDataList > createEnum(E enumValue)
Definition CDataList.hpp:22
iv::types::color m_valueColor
Definition CDataList.hpp:52
CEnumComponentsGUI::EDataType getDataType() const
Definition CDataList.cpp:93
static std::shared_ptr< CDataList > createBool(bool value)
Definition CDataList.cpp:52
std::string getValueString() const
Definition CDataList.cpp:116
bool hasString() const
Definition CDataList.cpp:133
bool getValueBoolean() const
Definition CDataList.cpp:87
double m_valueDouble
Definition CDataList.hpp:51
double getValueDouble(uint32_t *decimalsNumberOpt) const
Definition CDataList.cpp:98
iv::types::color getValueColor() const
Definition CDataList.cpp:128
EDataType
Definition CEnumComponentsGUI.hpp:99
uint32_t color
Definition types.hpp:12
Definition sNmeaData.hpp:8