xlnt - community edition
row_properties.hpp
1 // Copyright (c) 2014-2022 Thomas Fussell
2 // Copyright (c) 2010-2015 openpyxl
3 // Copyright (c) 2024-2026 xlnt-community
4 //
5 // Permission is hereby granted, free of charge, to any person obtaining a copy
6 // of this software and associated documentation files (the "Software"), to deal
7 // in the Software without restriction, including without limitation the rights
8 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 // copies of the Software, and to permit persons to whom the Software is
10 // furnished to do so, subject to the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be included in
13 // all copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 // THE SOFTWARE
22 //
23 // @license: http://www.opensource.org/licenses/mit-license.php
24 // @author: see AUTHORS file
25 
26 #pragma once
27 
28 #include <string>
29 
30 #include <xlnt/xlnt_config.hpp>
31 #include <xlnt/utils/numeric.hpp>
32 #include <xlnt/utils/optional.hpp>
33 
34 namespace xlnt {
35 
39 class XLNT_API row_properties
40 {
41 public:
46 
51 
55  bool custom_height = false;
56 
60  bool hidden = false;
61 
66 
71 
78 
83 
88 };
89 
90 inline bool operator==(const row_properties &lhs, const row_properties &rhs)
91 {
92  return detail::float_equals(lhs.height, rhs.height)
93  && detail::float_equals(lhs.dy_descent, rhs.dy_descent)
94  && lhs.custom_height == rhs.custom_height
95  && lhs.hidden == rhs.hidden
96  && lhs.custom_format == rhs.custom_format
97  && lhs.style == rhs.style
98  && lhs.spans == rhs.spans
99  && lhs.collapsed == rhs.collapsed
100  && lhs.outline_level == rhs.outline_level;
101 }
102 
103 inline bool operator!=(const row_properties &lhs, const row_properties &rhs)
104 {
105  return !(lhs == rhs);
106 }
107 
108 } // namespace xlnt
bool custom_height
Whether or not the height is different from the default
Definition: row_properties.hpp:55
Enumerates the possible types a cell can be determined by it&#39;s current value.
Definition: cell.hpp:36
bool operator!=(std::nullptr_t, const cell &cell)
Returns true if this cell is initialized.
optional< double > height
Row height
Definition: row_properties.hpp:45
optional< double > dy_descent
Distance in pixels from the bottom of the cell to the baseline of the cell content ...
Definition: row_properties.hpp:50
The properties of a row in a worksheet.
Definition: row_properties.hpp:39
optional< std::string > spans
The row column span, used as part of the row block optimisation. This used for loading this attribute...
Definition: row_properties.hpp:77
bool operator==(std::nullptr_t, const cell &cell)
Returns true if this cell is uninitialized.
optional< bool > custom_format
True if row style should be applied
Definition: row_properties.hpp:65
optional< std::uint8_t > outline_level
The outline level of the row
Definition: row_properties.hpp:87
optional< std::size_t > style
The index to the style used by all cells in this row
Definition: row_properties.hpp:70
bool hidden
Whether or not the row should be hidden
Definition: row_properties.hpp:60
optional< bool > collapsed
Whether or not the row should be collapsed
Definition: row_properties.hpp:82