Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CListGraphics.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICSCOMP_CLISTGRAPHICS_HPP_
2#define LIBS_GRAPHICSCOMP_CLISTGRAPHICS_HPP_
3
5
6#include "core/memOps.hpp"
10
11#include <string>
12#include <utility>
13
14class CBufferEdit;
15class CDataList;
17class CList;
19class CScrollGraphics;
20class IFilterModel;
21class IModelList;
22
24{
25public:
26 CListGraphics(CList *listRef, IFilterModel *filter, bool requestMinSizeForTexts);
27 ~CListGraphics() override;
28
29 bool sizeChanged() override;
30 void updateList();
31
32 [[nodiscard]] std::shared_ptr<CDataList> getDataCell(uint64_t indRow, uint64_t indCol) const;
33 [[nodiscard]] uint64_t getRowSelected() const;
34
35 void setRowSelected(uint64_t indRow);
36 void setFilter(IFilterModel **filterOpt);
37
38private:
40 {
42
43 explicit SPrvColumnGraphics(CEnumComponentsGUI::EDataType dataTypeList, std::string txtColumn, double sizeX,
44 double sizeY, bool widthFixed, bool isEditable,
45 const std::shared_ptr<std::vector<std::shared_ptr<CDrawText>>> &textColumns)
46 : m_dataTypeList(dataTypeList), m_txtColumn(std::move(txtColumn)), m_sizeX(sizeX), m_sizeY(sizeY),
47 m_widthFixed(widthFixed), m_isEditable(isEditable)
48 {
49 m_textColumns = textColumns;
50 }
51
52 SPrvColumnGraphics(const SPrvColumnGraphics &other) = delete;
53 SPrvColumnGraphics(const SPrvColumnGraphics &&other) = delete;
54
56
59
61 std::string m_txtColumn;
62 double m_sizeX;
63 double m_sizeY;
66
68
69 std::shared_ptr<std::vector<std::shared_ptr<CDrawText>>> m_textColumns;
70 };
71
73 {
74 SPrvCellFocus(uint64_t indRowFocus, uint64_t indColFocus)
75 : m_indRowFocus(indRowFocus), m_indColFocus(indColFocus)
76 {
77 }
78
79 uint64_t m_indRowFocus;
80 uint64_t m_indColFocus;
81 };
82
83 void beginFocus() override;
84 void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp,
85 double *sizeYComp) override;
86 void clean() override;
87 void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override;
88 void drawComponent(IGraphics *graphics, const CTheme *theme) override;
89 void endFocus() override;
90 void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override;
91 void nextFrameChildren() override;
92 void processKey(CEventGraphics *evtGraphics) override;
93 void removeObjectDraw(IGraphics *graphics) override;
94 void update(IGraphics *graphics, CLibraryImages *libraryImage) override;
95
96 [[nodiscard]] bool hasLongClick() const override;
97
98 void prvAdjustDataColumn(uint64_t numRows, IGraphics *graphics) const;
99 void prvBeginFocus() const;
101 [[nodiscard]] double prvCalculateSizeXTotal() const;
102 void prvCheckIntegrity() const;
103
104 static void prvColumnAdaptedDataRow(const std::shared_ptr<SPrvColumnGraphics> &column, uint64_t indColumn,
105 const IModelList *model, double heightTxt, IGraphics *graphics);
106 void prvColumnsAdaptedData(double heightTxt, IGraphics *graphics) const;
107 std::unique_ptr<std::vector<std::shared_ptr<CListGraphics::SPrvColumnGraphics>>>
108 prvCreateColumnsGraphics(double heightTxt, IGraphics *graphics) const;
109 void prvDistributeColumns(double sizeXToDistribute, uint64_t numColumnDistributed) const;
110 void prvDrawRow(const IModelList *model, uint64_t indRowData, double yOrg, double heightTxt, const CTheme *theme,
111 IGraphics *graphics, bool isAnEvenRow) const;
112 void prvEndFocus() const;
113 [[nodiscard]] uint64_t prvNumColumnsToDistribute() const;
114 void prvTestCellEvent(CEventGraphics *event, double xOrg, uint64_t indRow, bool isLongPulsation);
115 void prvTestRowsEvent(CEventGraphics *event, double xOrg, double yOrg, uint64_t indFirstRowIntoArea,
116 bool isLongPulsation);
117
118 void prvSetDataInList() const;
119
120 [[nodiscard]] bool prvIsFocus(uint64_t indRow, uint64_t indCol) const;
121
122 [[nodiscard]] bool isEditNum() const override;
123
126
128
131
133
137 std::unique_ptr<std::vector<std::shared_ptr<SPrvColumnGraphics>>> m_columns;
140
141 std::optional<SPrvCellFocus> m_cellFocusCadendateOpt;
142 std::optional<SPrvCellFocus> m_cellFocusOpt;
144
146};
147
148#endif /* LIBS_GRAPHICSCOMP_CLISTGRAPHICS_HPP_ */
Definition AbstractCompWithFocusGraphics.hpp:7
Definition CBufferEdit.hpp:15
Definition CDataList.hpp:13
EDataType
Definition CEnumComponentsGUI.hpp:99
Definition CEventGraphics.hpp:9
Definition CIlluminationGraphics.hpp:8
Definition CLibraryImages.hpp:11
Definition CListGraphics.hpp:24
std::shared_ptr< CDataList > getDataCell(uint64_t indRow, uint64_t indCol) const
Definition CListGraphics.cpp:338
void setFilter(IFilterModel **filterOpt)
Definition CListGraphics.cpp:354
std::optional< SPrvCellFocus > m_cellFocusOpt
Definition CListGraphics.hpp:142
uint64_t m_numRowsIntoArea
Definition CListGraphics.hpp:130
void update(IGraphics *graphics, CLibraryImages *libraryImage) override
Definition CListGraphics.cpp:625
static void prvColumnAdaptedDataRow(const std::shared_ptr< SPrvColumnGraphics > &column, uint64_t indColumn, const IModelList *model, double heightTxt, IGraphics *graphics)
Definition CListGraphics.cpp:764
double m_sizeYAreaData
Definition CListGraphics.hpp:136
void prvTestCellEvent(CEventGraphics *event, double xOrg, uint64_t indRow, bool isLongPulsation)
Definition CListGraphics.cpp:1069
void setRowSelected(uint64_t indRow)
Definition CListGraphics.cpp:349
void prvDistributeColumns(double sizeXToDistribute, uint64_t numColumnDistributed) const
Definition CListGraphics.cpp:846
CRectangleGraphics * m_areaData
Definition CListGraphics.hpp:139
bool m_isChanged
Definition CListGraphics.hpp:127
void drawComponent(IGraphics *graphics, const CTheme *theme) override
Definition CListGraphics.cpp:442
void updateList()
Definition CListGraphics.cpp:333
void endFocus() override
Definition CListGraphics.cpp:517
void calculateSizeMin(IGraphics *graphics, const CTheme *theme, CLibraryImages *libraryImage, double *sizeXComp, double *sizeYComp) override
Definition CListGraphics.cpp:376
double m_sizeYCell
Definition CListGraphics.hpp:135
uint64_t m_indRowSelected
Definition CListGraphics.hpp:129
bool m_requestMinSizeForTexts
Definition CListGraphics.hpp:132
CList * m_listRef
Definition CListGraphics.hpp:124
uint64_t getRowSelected() const
Definition CListGraphics.cpp:344
uint64_t prvNumColumnsToDistribute() const
Definition CListGraphics.cpp:1054
bool prvIsFocus(uint64_t indRow, uint64_t indCol) const
Definition CListGraphics.cpp:1178
void prvSetDataInList() const
Definition CListGraphics.cpp:1164
void prvCalculateNextCell()
Definition CListGraphics.cpp:689
void prvDrawRow(const IModelList *model, uint64_t indRowData, double yOrg, double heightTxt, const CTheme *theme, IGraphics *graphics, bool isAnEvenRow) const
Definition CListGraphics.cpp:887
void nextFrameChildren() override
Definition CListGraphics.cpp:567
void processKey(CEventGraphics *evtGraphics) override
Definition CListGraphics.cpp:574
CBufferEdit * m_bufferEdit
Definition CListGraphics.hpp:143
void prvEndFocus() const
Definition CListGraphics.cpp:1044
std::unique_ptr< std::vector< std::shared_ptr< CListGraphics::SPrvColumnGraphics > > > prvCreateColumnsGraphics(double heightTxt, IGraphics *graphics) const
Definition CListGraphics.cpp:807
void beginFocus() override
Definition CListGraphics.cpp:365
void distribute(IGraphics *graphics, double sizeXComp, double sizeYComp) override
Definition CListGraphics.cpp:410
bool sizeChanged() override
Definition CListGraphics.cpp:313
void removeObjectDraw(IGraphics *graphics) override
Definition CListGraphics.cpp:595
CListGraphics(CList *listRef, IFilterModel *filter, bool requestMinSizeForTexts)
Definition CListGraphics.cpp:274
void prvTestRowsEvent(CEventGraphics *event, double xOrg, double yOrg, uint64_t indFirstRowIntoArea, bool isLongPulsation)
Definition CListGraphics.cpp:1136
void handleEvent(CEventGraphics *event, double xOrg, double yOrg) override
Definition CListGraphics.cpp:526
void prvAdjustDataColumn(uint64_t numRows, IGraphics *graphics) const
Definition CListGraphics.cpp:638
CLibraryImages * m_imagesList
Definition CListGraphics.hpp:138
CScrollGraphics * m_scroll
Definition CListGraphics.hpp:145
double m_sizeYHeader
Definition CListGraphics.hpp:134
double prvCalculateSizeXTotal() const
Definition CListGraphics.cpp:743
bool hasLongClick() const override
Definition CListGraphics.cpp:633
std::unique_ptr< std::vector< std::shared_ptr< SPrvColumnGraphics > > > m_columns
Definition CListGraphics.hpp:137
~CListGraphics() override
Definition CListGraphics.cpp:300
IFilterModel * m_filterOpt
Definition CListGraphics.hpp:125
std::optional< SPrvCellFocus > m_cellFocusCadendateOpt
Definition CListGraphics.hpp:141
void prvCheckIntegrity() const
Definition CListGraphics.cpp:756
bool isEditNum() const override
Definition CListGraphics.cpp:1198
void prvColumnsAdaptedData(double heightTxt, IGraphics *graphics) const
Definition CListGraphics.cpp:784
void clean() override
Definition CListGraphics.cpp:403
void prvBeginFocus() const
Definition CListGraphics.cpp:671
Definition CList.hpp:15
Definition CRectangleGraphics.hpp:10
Definition CScrollGraphics.hpp:8
Definition CTheme.hpp:10
Definition IFilterModel.hpp:5
Definition IGraphics.hpp:20
Definition IModelList.hpp:14
Definition CListGraphics.hpp:73
uint64_t m_indRowFocus
Definition CListGraphics.hpp:79
SPrvCellFocus(uint64_t indRowFocus, uint64_t indColFocus)
Definition CListGraphics.hpp:74
uint64_t m_indColFocus
Definition CListGraphics.hpp:80
Definition CListGraphics.hpp:40
CEnumComponentsGUI::EDataType m_dataTypeList
Definition CListGraphics.hpp:60
SPrvColumnGraphics(const SPrvColumnGraphics &other)=delete
SPrvColumnGraphics(CEnumComponentsGUI::EDataType dataTypeList, std::string txtColumn, double sizeX, double sizeY, bool widthFixed, bool isEditable, const std::shared_ptr< std::vector< std::shared_ptr< CDrawText > > > &textColumns)
Definition CListGraphics.hpp:43
double m_calculatedSizeX
Definition CListGraphics.hpp:67
SPrvColumnGraphics & operator=(const SPrvColumnGraphics &&other)=delete
double m_sizeY
Definition CListGraphics.hpp:63
std::string m_txtColumn
Definition CListGraphics.hpp:61
bool m_isEditable
Definition CListGraphics.hpp:65
std::shared_ptr< std::vector< std::shared_ptr< CDrawText > > > m_textColumns
Definition CListGraphics.hpp:69
SPrvColumnGraphics(const SPrvColumnGraphics &&other)=delete
bool m_widthFixed
Definition CListGraphics.hpp:64
double m_sizeX
Definition CListGraphics.hpp:62
SPrvColumnGraphics & operator=(const SPrvColumnGraphics &other)=delete