Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AbstractSheetModel.hpp
Go to the documentation of this file.
1#ifndef LIBS_GUI_ABSTRACTSHEETMODEL_HPP_
2#define LIBS_GUI_ABSTRACTSHEETMODEL_HPP_
3
5
6#include <bits/stdint-uintn.h>
7#include <cstddef>
8#include <map>
9#include <string>
10#include <unordered_map>
11#include <utility>
12
14class CSheet;
15
17{
18public:
20 virtual ~AbstractSheetModel();
21
22 // default methods disabled
23 AbstractSheetModel(const AbstractSheetModel &other) = delete;
27
28 void clear();
29
32 [[nodiscard]] virtual std::string cellText(uint32_t rowPosition, uint32_t colPosition) const;
33 [[nodiscard]] virtual std::string rowTitle(uint32_t rowPosition) const;
34
40 virtual void updateCellComponent(uint32_t rowPosition, uint32_t columnPosition);
41
42 [[nodiscard]] iv::gui::sheets::ColumnId columnId(uint32_t colPosition) const;
44 [[nodiscard]] size_t numberOfColumns() const;
46 const iv::gui::sheets::ColumnDefinition &columnDefinition);
48 void shiftColumnPositionsExcluded(const iv::gui::sheets::ColumnId &columnIdReference, int32_t shiftPositions,
49 bool isIncluded = false);
52 std::string getColumnTitleByPosition(const uint32_t &position);
53
54 [[nodiscard]] size_t numberOfRows() const;
55 [[nodiscard]] iv::gui::sheets::RowId rowId(uint32_t rowPosition) const;
61 void shiftRowPositionsIncluded(const iv::gui::sheets::RowId &rowIdReference, int32_t shiftPositions);
64
65 void setColumnDefinitions(const iv::gui::sheets::ColumnsDefinitions &columnDefinitions);
66 void setRowDefinitions(const iv::gui::sheets::RowsDefinitions &rowDefinitions);
67 void setRowsHaveCSS(bool rowsHaveCSS);
68
70 [[nodiscard]] const iv::gui::sheets::RowsDefinitions &getRowDefinitions() const;
73 [[nodiscard]] bool getRowsHaveCSS() const;
74
76
77private:
80
84
85 std::unordered_map<iv::types::order, iv::gui::sheets::RowId> m_rowIdsByOrder; // Optimization
86 std::unordered_map<iv::types::order, iv::gui::sheets::ColumnId> m_columnsIdsByOrder;// Optimization
87
89};
90
91#endif /* LIBS_GUI_ABSTRACTSHEETMODEL_HPP_ */
Definition AbstractComponentGUI.hpp:30
Definition AbstractSheetModel.hpp:17
size_t numberOfRows() const
Definition AbstractSheetModel.cpp:209
bool getRowsHaveCSS() const
Definition AbstractSheetModel.cpp:414
void removeRowDefinition(const iv::gui::sheets::RowId &rowId)
Definition AbstractSheetModel.cpp:272
bool addRowCells(const iv::gui::sheets::RowId &rowId, const iv::gui::sheets::RowCells &rowCells)
Definition AbstractSheetModel.cpp:316
AbstractComponentGUI * rowTitleComponent(uint32_t rowPosition)
Definition AbstractSheetModel.cpp:249
iv::gui::sheets::RowCells * getRowCellsPointer(const iv::gui::sheets::RowId &rowId)
Definition AbstractSheetModel.cpp:405
iv::gui::sheets::RowsCells m_rowsCells
Definition AbstractSheetModel.hpp:83
virtual std::string cellText(uint32_t rowPosition, uint32_t colPosition) const
Definition AbstractSheetModel.cpp:90
virtual void updateCellComponent(uint32_t rowPosition, uint32_t columnPosition)
Update the cell component in the sheet.
Definition AbstractSheetModel.cpp:101
const iv::gui::sheets::RowsDefinitions & getRowDefinitions() const
Definition AbstractSheetModel.cpp:395
virtual ~AbstractSheetModel()
Definition AbstractSheetModel.cpp:15
AbstractSheetModel & operator=(const AbstractSheetModel &other)=delete
iv::gui::sheets::CellDefinition * cellDefinitionPointer(uint32_t rowPosition, uint32_t columnPosition)
Definition AbstractSheetModel.cpp:54
void removeRow(const iv::gui::sheets::RowId &rowId)
Definition AbstractSheetModel.cpp:335
uint32_t columnPosition(const iv::gui::sheets::ColumnId &columnId)
Definition AbstractSheetModel.cpp:117
AbstractSheetModel(const AbstractSheetModel &other)=delete
uint32_t rowPosition(const iv::gui::sheets::RowId &rowId)
Definition AbstractSheetModel.cpp:226
void updateRowIdsByOrder()
Definition AbstractSheetModel.cpp:461
iv::gui::sheets::ColumnDefinition getColumnDefinitionByTitle(const std::string &columnTitle)
Definition AbstractSheetModel.cpp:424
size_t numberOfColumns() const
Definition AbstractSheetModel.cpp:122
iv::gui::sheets::ColumnsDefinitions m_columnDefinitions
Definition AbstractSheetModel.hpp:81
iv::gui::sheets::RowId rowId(uint32_t rowPosition) const
Definition AbstractSheetModel.cpp:214
void setRowDefinitions(const iv::gui::sheets::RowsDefinitions &rowDefinitions)
Definition AbstractSheetModel.cpp:378
AbstractSheetModel()
Definition AbstractSheetModel.cpp:10
void addColumnDefinition(const iv::gui::sheets::ColumnId &columnId, const iv::gui::sheets::ColumnDefinition &columnDefinition)
Definition AbstractSheetModel.cpp:127
std::string getColumnTitleByPosition(const uint32_t &position)
Definition AbstractSheetModel.cpp:444
void removeColumn(const iv::gui::sheets::ColumnId &columnId)
Definition AbstractSheetModel.cpp:186
iv::gui::sheets::ColumnId columnId(uint32_t colPosition) const
Definition AbstractSheetModel.cpp:105
bool isRowVisible(const iv::gui::sheets::RowId &rowId)
Definition AbstractSheetModel.cpp:419
void clear()
Definition AbstractSheetModel.cpp:20
virtual std::string rowTitle(uint32_t rowPosition) const
Definition AbstractSheetModel.cpp:96
void addRowDefinition(const iv::gui::sheets::RowId &rowId, const iv::gui::sheets::RowDefinition &rowDefinition)
Definition AbstractSheetModel.cpp:264
AbstractSheetModel & operator=(AbstractSheetModel &&other)=delete
void setRowsHaveCSS(bool rowsHaveCSS)
Definition AbstractSheetModel.cpp:385
iv::gui::sheets::RowsDefinitions m_rowDefinitions
Definition AbstractSheetModel.hpp:82
const iv::gui::sheets::ColumnsDefinitions & getColumnDefinitions() const
Definition AbstractSheetModel.cpp:390
void updateColumnIdsByOrder()
Definition AbstractSheetModel.cpp:478
bool m_rowsHaveCSS
Definition AbstractSheetModel.hpp:88
void removeColumnDefinition(const iv::gui::sheets::ColumnId &columnId)
Definition AbstractSheetModel.cpp:135
AbstractSheetModel(AbstractSheetModel &&other)=delete
void shiftRowPositionsIncluded(const iv::gui::sheets::RowId &rowIdReference, int32_t shiftPositions)
Definition AbstractSheetModel.cpp:292
std::unordered_map< iv::types::order, iv::gui::sheets::RowId > m_rowIdsByOrder
Definition AbstractSheetModel.hpp:85
iv::gui::sheets::RowsCells & getRowsCells()
Definition AbstractSheetModel.cpp:400
std::unordered_map< iv::types::order, iv::gui::sheets::ColumnId > m_columnsIdsByOrder
Definition AbstractSheetModel.hpp:86
AbstractComponentGUI * cellComponent(uint32_t rowPosition, uint32_t columnPosition)
Definition AbstractSheetModel.cpp:75
void shiftColumnPositionsExcluded(const iv::gui::sheets::ColumnId &columnIdReference, int32_t shiftPositions, bool isIncluded=false)
Definition AbstractSheetModel.cpp:155
void setColumnDefinitions(const iv::gui::sheets::ColumnsDefinitions &columnDefinitions)
Definition AbstractSheetModel.cpp:371
iv::gui::sheets::RowTitleCellDefinition * rowTitleCellDefinitionPointer(uint32_t rowPosition)
Definition AbstractSheetModel.cpp:231
Definition CSheet.hpp:20
std::map< ColumnId, ColumnDefinition > ColumnsDefinitions
Definition structs.hpp:84
std::map< RowId, RowDefinition > RowsDefinitions
Definition structs.hpp:85
std::map< RowId, RowCells > RowsCells
Definition structs.hpp:86
Definition structs.hpp:18
Definition structs.hpp:36
Definition structs.hpp:24
Definition structs.hpp:79
Definition structs.hpp:63
Definition structs.hpp:50