Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CEntTable.hpp
Go to the documentation of this file.
1#ifndef LIBS_DOCUMENTS_CENTTABLE_HPP_
2#define LIBS_DOCUMENTS_CENTTABLE_HPP_
3
4#include "core/memOps.hpp"
5#include "documents/CCell.hpp"
8
9#include <string>
10#include <utility>
11
12class CEntTable final : public IEntPrinter
13{
14public:
15 static double cellPadding;
16
18 {
19 SPrvCellTable(const uint64_t indColBegin, const uint64_t indRowBegin, const uint64_t indColEnd,
20 const uint64_t indRowEnd, CCell **cell)
21 : m_indColBegin(indColBegin), m_indRowBegin(indRowBegin), m_indColEnd(indColEnd), m_indRowEnd(indRowEnd)
22 {
24 }
25
27 {
28 delete m_cell;
29 }
30
31 uint64_t m_indColBegin;
32 uint64_t m_indRowBegin;
33
34 uint64_t m_indColEnd;
35 uint64_t m_indRowEnd;
36
38 };
39
41 {
45
46 SPrvSubTable(const uint64_t numRows, std::vector<double> heightRows,
47 std::vector<CEntTable::SPrvCellTable *> cells)
48 : m_numRows(numRows), m_heightRows(std::move(heightRows)), m_cells(std::move(cells))
49 {
50 }
51
52 uint64_t m_numRows;
53 std::vector<double> m_heightRows;
54 std::vector<SPrvCellTable *> m_cells;
55 };
56
57 CEntTable();
58 explicit CEntTable(std::string titleTable);
59 CEntTable(const CEntTable &other);
60 CEntTable(CEntTable &&other) = delete;
61 ~CEntTable() override;
62
63 CEntTable &operator=(const CEntTable &other) = delete;
64 CEntTable &operator=(CEntTable &&other) = delete;
65
66 void addCellData(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd, CCell **cell);
67 void addCellDataOnlyOnceCell(uint64_t indCol, uint64_t indRow, CCell **cell);
68 void addCellFooter(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd,
69 CCell **cell);
70 void addCellHeader(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd,
71 CCell **cell);
72 void addCellHeaderOnlyOnceCell(uint64_t indCol, uint64_t indRow, CCell **cell);
73 void processEntity(IManagerPrinter *manager) override;
74
75 SPrvSubTable *footerOpt() const;
76 SPrvSubTable *headerOpt() const;
77 [[nodiscard]] double heightTableFooter() const;
78 [[nodiscard]] uint64_t numCols() const;
79 void setTextHeightTable(uint64_t heightFont);
81 std::string &titleTableOpt();
82 std::vector<double> &widthColumns();
83
84 [[nodiscard]] bool hasData() const;
85
86private:
87 void prvSetNumRowsTable();
88 void prvSetNumColumns();
89 void prvDeleteEmptyColumns(std::vector<uint32_t> *pVector);
90 void prvSetWidthColumns(IManagerPrinter *pPrinter);
91 void prvSetTextHeightTable(uint64_t cells) const;
93 void prvSetHeightTableHeading(std::vector<double> &heightRowsHeading, const std::vector<double> &heightRowsData);
94 void prvSetHeightTableFooter(std::vector<double> &heightRowsFooter);
95 void prvBeginTable(IManagerPrinter *manager);
96 void prvEndTable(IManagerPrinter *manager) const;
97
101
102 uint64_t m_numCols;
103 std::vector<double> m_widthColumns;
104
107 std::string m_titleTableOpt;
109};
110
111#endif /* LIBS_DOCUMENTS_CENTTABLE_HPP_ */
Definition CCell.hpp:13
Definition CEntTable.hpp:13
SPrvSubTable * m_footerOpt
Definition CEntTable.hpp:100
void prvSetTextHeightTable(uint64_t cells) const
Definition CEntTable.cpp:630
CEntTable & operator=(const CEntTable &other)=delete
double m_heightTableFooter
Definition CEntTable.hpp:106
std::string m_titleTableOpt
Definition CEntTable.hpp:107
void prvSetHeightRowsTable(IManagerPrinter *pPrinter)
Definition CEntTable.cpp:645
void prvSetWidthColumns(IManagerPrinter *pPrinter)
Definition CEntTable.cpp:598
void addCellFooter(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd, CCell **cell)
Definition CEntTable.cpp:435
SPrvSubTable m_data
Definition CEntTable.hpp:99
void processEntity(IManagerPrinter *manager) override
Definition CEntTable.cpp:509
double heightTableFooter() const
Definition CEntTable.cpp:722
void prvDeleteEmptyColumns(std::vector< uint32_t > *pVector)
Definition CEntTable.cpp:565
void setTextHeightTable(uint64_t heightFont)
Definition CEntTable.cpp:560
void prvEndTable(IManagerPrinter *manager) const
Definition CEntTable.cpp:742
SPrvSubTable * headerOpt() const
Definition CEntTable.cpp:717
uint64_t m_numCols
Definition CEntTable.hpp:102
std::string & titleTableOpt()
Definition CEntTable.cpp:707
double m_heightTableHeader
Definition CEntTable.hpp:105
~CEntTable() override
CEntTable()
Definition CEntTable.cpp:376
CEntTable(CEntTable &&other)=delete
std::vector< double > & widthColumns()
Definition CEntTable.cpp:732
static double cellPadding
Definition CEntTable.hpp:15
uint64_t numCols() const
Definition CEntTable.cpp:727
void addCellHeader(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd, CCell **cell)
Definition CEntTable.cpp:449
void prvSetNumRowsTable()
Definition CEntTable.cpp:474
CStyleNumeration * m_styleTitle
Definition CEntTable.hpp:108
void addCellData(uint64_t indColBegin, uint64_t indRowBegin, uint64_t indColEnd, uint64_t indRowEnd, CCell **cell)
Definition CEntTable.cpp:420
CStyleNumeration * styleTitle() const
Definition CEntTable.cpp:712
SPrvSubTable * m_headerOpt
Definition CEntTable.hpp:98
void addCellHeaderOnlyOnceCell(uint64_t indCol, uint64_t indRow, CCell **cell)
Definition CEntTable.cpp:462
void addCellDataOnlyOnceCell(uint64_t indCol, uint64_t indRow, CCell **cell)
Definition CEntTable.cpp:428
SPrvSubTable * footerOpt() const
Definition CEntTable.cpp:737
bool hasData() const
Definition CEntTable.cpp:752
void prvSetHeightTableFooter(std::vector< double > &heightRowsFooter)
Definition CEntTable.cpp:676
void prvBeginTable(IManagerPrinter *manager)
Definition CEntTable.cpp:686
void prvSetNumColumns()
Definition CEntTable.cpp:489
std::vector< double > m_widthColumns
Definition CEntTable.hpp:103
CEntTable & operator=(CEntTable &&other)=delete
void prvSetHeightTableHeading(std::vector< double > &heightRowsHeading, const std::vector< double > &heightRowsData)
Definition CEntTable.cpp:660
Definition CStyleNumeration.hpp:10
Definition IEntPrinter.hpp:7
Definition IManagerPrinter.hpp:19
T * assignPtrNoNull(T **ptr)
Definition memOps.hpp:31
Definition CEntTable.hpp:18
uint64_t m_indColBegin
Definition CEntTable.hpp:31
~SPrvCellTable()
Definition CEntTable.hpp:26
SPrvCellTable(const uint64_t indColBegin, const uint64_t indRowBegin, const uint64_t indColEnd, const uint64_t indRowEnd, CCell **cell)
Definition CEntTable.hpp:19
uint64_t m_indRowEnd
Definition CEntTable.hpp:35
CCell * m_cell
Definition CEntTable.hpp:37
uint64_t m_indColEnd
Definition CEntTable.hpp:34
uint64_t m_indRowBegin
Definition CEntTable.hpp:32
Definition CEntTable.hpp:41
SPrvSubTable(const uint64_t numRows, std::vector< double > heightRows, std::vector< CEntTable::SPrvCellTable * > cells)
Definition CEntTable.hpp:46
std::vector< double > m_heightRows
Definition CEntTable.hpp:53
SPrvSubTable()
Definition CEntTable.hpp:42
std::vector< SPrvCellTable * > m_cells
Definition CEntTable.hpp:54
uint64_t m_numRows
Definition CEntTable.hpp:52