OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
TableIndexSchemata.h
Go to the documentation of this file.
1#pragma once
2
3#include "OTGui/TableCfg.h"
4#include "OTGui/TableRange.h"
5namespace ot
6{
7 namespace TableIndexSchemata
8 {
10 {
11 //First we switch from base-1 index to base -0 index
12 int rangeRowBottom = _range.getBottomRow() - 1;
13 int rangeRowTop = _range.getTopRow() - 1;
14 int rangeColumnLeft = _range.getLeftColumn() - 1;
15 int rangeColumnRight = _range.getRightColumn() - 1;
16
17 //Now we take the header in consideration, which is part of the matrix and its row/column index, but the TableConfig handles the header as separate vector
18 if (_headerOrientation == ot::TableCfg::TableHeaderMode::Horizontal)
19 {
20 rangeRowBottom += 1;
21 rangeRowTop += 1;
22 }
23 else if (_headerOrientation == ot::TableCfg::TableHeaderMode::Vertical)
24 {
25 rangeColumnLeft += 1;
26 rangeColumnRight += 1;
27 }
28 ot::TableRange matrixRange(rangeRowTop, rangeColumnLeft, rangeRowBottom, rangeColumnRight);
29 return matrixRange;
30 }
32 {
33 //Both QTable and matrix work with a base-0 index. Nothing needs to be changed in this regard
34 //The QTable handles the header as a separate vector, in the matrix it is simply part of the matrix. Here we need to make an adjustment
35 //First we switch from base-1 index to base -0 index
36 int rangeRowBottom = _range.getBottomRow();
37 int rangeRowTop = _range.getTopRow();
38 int rangeColumnLeft = _range.getLeftColumn();
39 int rangeColumnRight = _range.getRightColumn();
40
41 //Now we take the header in consideration, which is part of the matrix and its row/column index, but the TableConfig handles the header as separate vector
42 if (_headerOrientation == ot::TableCfg::TableHeaderMode::Horizontal)
43 {
44 rangeRowBottom += 1;
45 rangeRowTop += 1;
46 }
47 else if (_headerOrientation == ot::TableCfg::TableHeaderMode::Vertical)
48 {
49 rangeColumnLeft += 1;
50 rangeColumnRight += 1;
51 }
52 ot::TableRange matrixRange(rangeRowTop, rangeColumnLeft, rangeRowBottom, rangeColumnRight);
53
54 return matrixRange;
55 }
57 {
58 //We switch base-0 to base-1 index
59 int rangeRowBottom = _range.getBottomRow() + 1;
60 int rangeRowTop = _range.getTopRow() + 1;
61 int rangeColumnLeft = _range.getLeftColumn() + 1;
62 int rangeColumnRight = _range.getRightColumn() + 1;
63 ot::TableRange userRange(rangeRowTop, rangeColumnLeft, rangeRowBottom, rangeColumnRight);
64 return userRange;
65 }
67 {
68 //We switch base-1 to base-0 index
69 int rangeRowBottom = _range.getBottomRow() - 1;
70 int rangeRowTop = _range.getTopRow() - 1;
71 int rangeColumnLeft = _range.getLeftColumn() - 1;
72 int rangeColumnRight = _range.getRightColumn() - 1;
73 ot::TableRange selectionRange(rangeRowTop, rangeColumnLeft, rangeRowBottom, rangeColumnRight);
74 return selectionRange;
75 }
77 {
78 //First we switch from base-0 index to base-1 index
79 int rangeRowBottom = _range.getBottomRow() + 1;
80 int rangeRowTop = _range.getTopRow() + 1;
81 int rangeColumnLeft = _range.getLeftColumn() + 1;
82 int rangeColumnRight = _range.getRightColumn() + 1;
83
84 //Now we take the header in consideration, which is part of the matrix and its row/column index, but the TableConfig handles the header as separate vector
85 if (_headerOrientation == ot::TableCfg::TableHeaderMode::Horizontal)
86 {
87 rangeRowBottom -= 1;
88 rangeRowTop -= 1;
89 }
90 else if (_headerOrientation == ot::TableCfg::TableHeaderMode::Vertical)
91 {
92 rangeColumnLeft -= 1;
93 rangeColumnRight -= 1;
94 }
95 ot::TableRange matrixRange(rangeRowTop, rangeColumnLeft, rangeRowBottom, rangeColumnRight);
96 return matrixRange;
97 }
98 }
99}
TableHeaderMode
Definition TableCfg.h:21
Definition TableRange.h:16
int getRightColumn() const
Definition TableRange.h:34
int getLeftColumn() const
Definition TableRange.h:33
int getTopRow() const
Definition TableRange.h:31
int getBottomRow() const
Definition TableRange.h:32
static ot::TableRange matrixToUserRange(const ot::TableRange &_range, ot::TableCfg::TableHeaderMode _headerOrientation)
Definition TableIndexSchemata.h:76
static ot::TableRange userRangeToMatrixRange(const ot::TableRange &_range, ot::TableCfg::TableHeaderMode _headerOrientation)
Definition TableIndexSchemata.h:9
static ot::TableRange userRangeToSelectionRange(const ot::TableRange &_range)
Definition TableIndexSchemata.h:66
static ot::TableRange selectionRangeToUserRange(const ot::TableRange &_range)
Definition TableIndexSchemata.h:56
static ot::TableRange selectionRangeToMatrixRange(const ot::TableRange &_range, ot::TableCfg::TableHeaderMode _headerOrientation)
Definition TableIndexSchemata.h:31
Definition Connector.h:8