IWORKTypes.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /*
3  * This file is part of the libetonyek project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #ifndef IWORKTYPES_H_INCLUDED
11 #define IWORKTYPES_H_INCLUDED
12 
13 #include "IWORKTypes_fwd.h"
14 
15 #include <deque>
16 #include <string>
17 
18 #include <boost/optional.hpp>
19 #include <boost/variant.hpp>
20 
21 #include <mdds/flat_segment_tree.hpp>
22 
23 #include "libetonyek_utils.h"
24 #include "IWORKEnum.h"
25 #include "IWORKPath_fwd.h"
26 #include "IWORKStyle_fwd.h"
27 #include "IWORKFormula.h"
28 
29 namespace libetonyek
30 {
31 
33 
34 typedef boost::unordered_map<std::string, IWORKOutputElements> IWORKHeaderFooterMap_t;
35 
36 struct IWORKSize
37 {
38  double m_width;
39  double m_height;
40 
41  IWORKSize();
42  IWORKSize(double w, double h);
43 };
44 
46 {
47  double m_x;
48  double m_y;
49 
50  IWORKPosition();
51  IWORKPosition(double x_, double y_);
52 };
53 
55 {
59  boost::optional<double> m_angle;
60  boost::optional<double> m_shearXAngle;
61  boost::optional<double> m_shearYAngle;
62  boost::optional<bool> m_horizontalFlip;
63  boost::optional<bool> m_verticalFlip;
64  boost::optional<bool> m_aspectRatioLocked;
65  boost::optional<bool> m_sizesLocked;
66 
67  IWORKGeometry();
68 };
69 
70 struct IWORKColor
71 {
72  double m_red;
73  double m_green;
74  double m_blue;
75  double m_alpha;
76 
77  IWORKColor();
78  IWORKColor(double r, double g, double b, double a);
79 };
80 
82 {
83  boost::optional<double> m_top;
84  boost::optional<double> m_right;
85  boost::optional<double> m_bottom;
86  boost::optional<double> m_left;
87 
88  IWORKPadding();
89 };
90 
92 {
93  double m_pos;
94 
95  explicit IWORKTabStop(double pos_);
96 };
97 
98 typedef std::deque<IWORKTabStop> IWORKTabStops_t;
99 typedef boost::unordered_map<ID_t, IWORKTabStops_t> IWORKTabStopsMap_t;
100 typedef mdds::flat_segment_tree<unsigned, IWORKStylePtr_t> IWORKGridLine_t;
101 typedef std::vector<IWORKGridLine_t> IWORKGridLineList_t;
102 
103 struct IWORKLine
104 {
107  boost::optional<double> m_x1;
108  boost::optional<double> m_y1;
109  boost::optional<double> m_x2;
110  boost::optional<double> m_y2;
111 
112  IWORKLine();
113 };
114 
115 struct IWORKData
116 {
118  boost::optional<std::string> m_displayName;
120 
121  IWORKData();
122 };
123 
125 {
126  boost::optional<IWORKSize> m_size;
128 
130 };
131 
133 {
134  boost::optional<IWORKSize> m_size;
135  boost::optional<std::string> m_path;
136  boost::optional<std::string> m_type;
137  boost::optional<unsigned> m_dataSize;
138 
139  IWORKBinary();
140 };
141 
143 {
144  boost::optional<bool> m_locked;
146  boost::optional<IWORKBinary> m_binary;
147 
148  IWORKImage();
149 };
150 
152 {
155  boost::optional<bool> m_placeholder;
156  boost::optional<IWORKSize> m_placeholderSize;
158 
159  IWORKMedia();
160 };
161 
162 struct IWORKWrap
163 {
166 
167  IWORKWrap();
168 };
169 
171 {
172  IWORKLineSpacing(double amount, bool relative);
173 
174  double m_amount;
176 };
177 
179 {
180  IWORKTableData();
181 
184 
185  unsigned m_column;
186  unsigned m_row;
187  unsigned m_numColumns;
188  unsigned m_numRows;
189 
190  boost::optional<unsigned> m_columnSpan;
191  boost::optional<unsigned> m_rowSpan;
192  boost::optional<unsigned> m_cellMove;
193  boost::optional<std::string> m_content;
194  boost::optional<IWORKFormula> m_formula;
195  IWORKGridLineList_t m_horizontalLines;
196  IWORKGridLineList_t m_verticalLines;
199 };
200 
202 {
203  IWORKStroke();
204 
206  double m_width;
210  std::deque<double> m_pattern;
211 };
212 
214 {
216 
218  double m_fraction;
219  double m_inflection;
220 };
221 
223 {
224  IWORKGradient();
225 
227  std::deque<IWORKGradientStop> m_stops;
228  double m_angle;
229 };
230 
232 {
233  IWORKFillImage();
234 
236  boost::optional<IWORKColor> m_color;
240 };
241 
242 typedef boost::variant<IWORKColor, IWORKGradient, IWORKFillImage> IWORKFill;
243 
245 {
246  IWORKShadow();
247 
249  double m_angle;
250  double m_offset;
251  double m_opacity;
252 };
253 
255 {
256  IWORKMetadata();
257 
262 };
263 
265 {
266  struct Column
267  {
268  Column();
269 
270  double m_width;
271  double m_spacing;
272  };
273 
274  typedef std::deque<Column> Columns_t;
275 
276  IWORKColumns();
277 
278  bool m_equal;
279  Columns_t m_columns;
280 };
281 
283 {
285 
294  int m_base;
296 };
297 
299 {
301 
303 };
304 
306 {
308 
310 };
311 
313 {
315 
317 };
318 
319 typedef boost::unordered_map<ID_t, IWORKFilterDescriptor> IWORKFilterDescriptorMap_t;
320 
321 }
322 
323 #endif // IWORKTYPES_H_INCLUDED
324 
325 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::string m_keywords
Definition: IWORKTypes.h:260
boost::optional< double > m_x1
Definition: IWORKTypes.h:107
Definition: IWORKBezierElement.cpp:18
double m_blue
Definition: IWORKTypes.h:74
IWORKPadding()
Definition: IWORKTypes.cpp:71
Definition: IWORKTypes.h:222
IWORKColor()
Definition: IWORKTypes.cpp:55
Definition: IWORKOutputElements.h:30
boost::optional< double > m_left
Definition: IWORKTypes.h:86
IWORKGradientStop()
Definition: IWORKTypes.cpp:171
boost::optional< double > m_angle
Definition: IWORKTypes.h:59
boost::optional< double > m_shearXAngle
Definition: IWORKTypes.h:60
IWORKColor m_color
Definition: IWORKTypes.h:217
std::string m_comment
Definition: IWORKTypes.h:261
IWORKFillImageType
Definition: IWORKEnum.h:87
unsigned m_numRows
Definition: IWORKTypes.h:188
double m_width
Definition: IWORKTypes.h:206
boost::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition: IWORKTypes_fwd.h:53
boost::optional< unsigned > m_columnSpan
Definition: IWORKTypes.h:190
boost::optional< bool > m_horizontalFlip
Definition: IWORKTypes.h:62
Definition: IWORKTypes.h:201
IWORKLineJoin m_join
Definition: IWORKTypes.h:208
Definition: IWORKTypes.h:70
boost::optional< bool > m_sizesLocked
Definition: IWORKTypes.h:65
double m_inflection
Definition: IWORKTypes.h:219
IWORKColumns()
Definition: IWORKTypes.cpp:215
IWORKMediaContentPtr_t m_content
Definition: IWORKTypes.h:157
boost::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
double m_width
Definition: IWORKTypes.h:270
IWORKCellNumberType
Definition: IWORKEnum.h:79
IWORKGridLineList_t m_horizontalLines
Definition: IWORKTypes.h:195
IWORKCellType m_type
Definition: IWORKTypes.h:198
Definition: IWORKTypes.h:142
IWORKPosition()
Definition: IWORKTypes.cpp:29
IWORKStylePtr_t m_style
Definition: IWORKTypes.h:106
boost::optional< double > m_right
Definition: IWORKTypes.h:84
Definition: IWORKTypes.h:115
Definition: IWORKTypes.h:282
IWORKTableData()
Definition: IWORKTypes.cpp:143
IWORKGeometry()
Definition: IWORKTypes.cpp:41
IWORKLineJoin
Definition: IWORKEnum.h:63
boost::optional< IWORKSize > m_placeholderSize
Definition: IWORKTypes.h:156
std::deque< double > m_pattern
Definition: IWORKTypes.h:210
unsigned m_numColumns
Definition: IWORKTypes.h:187
IWORKSize()
Definition: IWORKTypes.cpp:17
Definition: IWORKTypes.h:264
double m_angle
Definition: IWORKTypes.h:228
IWORKSize m_naturalSize
Definition: IWORKTypes.h:56
boost::optional< IWORKSize > m_size
Definition: IWORKTypes.h:134
IWORKLineSpacing(double amount, bool relative)
Definition: IWORKTypes.cpp:137
Definition: IWORKTypes.h:305
mdds::flat_segment_tree< unsigned, IWORKStylePtr_t > IWORKGridLine_t
Definition: IWORKTypes.h:100
IWORKStylePtr_t m_style
Definition: IWORKTypes.h:154
boost::optional< std::string > m_content
Definition: IWORKTypes.h:193
Definition: IWORKTypes.h:312
IWORKStrokeType m_type
Definition: IWORKTypes.h:205
Definition: IWORKToken.h:295
Definition: IWORKTypes.h:162
boost::unordered_map< ID_t, IWORKFilterDescriptor > IWORKFilterDescriptorMap_t
Definition: IWORKTypes.h:319
Definition: IWORKToken.h:283
boost::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:40
Definition: IWORKTypes.h:103
Definition: IWORKTypes.h:36
bool m_isShadow
Definition: IWORKTypes.h:316
int m_fractionAccuracy
Definition: IWORKTypes.h:292
double m_width
Definition: IWORKTypes.h:38
Definition: IWORKToken.h:214
boost::optional< IWORKColor > m_color
Definition: IWORKTypes.h:236
int m_decimalPlaces
Definition: IWORKTypes.h:288
Definition: IWORKTypes.h:170
IWORKStroke()
Definition: IWORKTypes.cpp:162
IWORKData()
Definition: IWORKTypes.cpp:94
bool m_accountingStyle
Definition: IWORKTypes.h:293
double m_x
Definition: IWORKTypes.h:47
IWORKGridLineList_t m_verticalLines
Definition: IWORKTypes.h:196
Columns_t m_columns
Definition: IWORKTypes.h:279
std::string m_format
Definition: IWORKTypes.h:302
IWORKStylePtr_t m_style
Definition: IWORKTypes.h:197
boost::optional< unsigned > m_cellMove
Definition: IWORKTypes.h:192
boost::optional< unsigned > m_dataSize
Definition: IWORKTypes.h:137
IWORKGeometryPtr_t m_geometry
Definition: IWORKTypes.h:145
IWORKWrap()
Definition: IWORKTypes.cpp:131
double m_amount
Definition: IWORKTypes.h:174
IWORKSize m_size
Definition: IWORKTypes.h:57
std::deque< IWORKTabStop > IWORKTabStops_t
Definition: IWORKTypes.h:98
Definition: IWORKTypes.h:81
unsigned m_column
Definition: IWORKTypes.h:185
IWORKGeometryPtr_t m_geometry
Definition: IWORKTypes.h:105
std::deque< IWORKGradientStop > m_stops
Definition: IWORKTypes.h:227
Definition: IWORKTypes.h:298
IWORKMetadata()
Definition: IWORKTypes.cpp:201
std::vector< IWORKGridLine_t > IWORKGridLineList_t
Definition: IWORKTypes.h:101
boost::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition: IWORKPath_fwd.h:20
IWORKColor m_color
Definition: IWORKTypes.h:248
Definition: IWORKTypes.h:91
double m_fraction
Definition: IWORKTypes.h:218
int m_negativeStyle
Definition: IWORKTypes.h:290
IWORKDataPtr_t m_data
Definition: IWORKTypes.h:127
boost::optional< IWORKFormula > m_formula
Definition: IWORKTypes.h:194
boost::optional< bool > m_placeholder
Definition: IWORKTypes.h:155
Definition: IWORKTypes.h:178
IWORKPosition m_position
Definition: IWORKTypes.h:58
bool m_relative
Definition: IWORKTypes.h:175
boost::shared_ptr< IWORKData > IWORKDataPtr_t
Definition: IWORKTypes_fwd.h:48
IWORKGradient()
Definition: IWORKTypes.cpp:178
boost::optional< unsigned > m_rowSpan
Definition: IWORKTypes.h:191
IWORKSize m_size
Definition: IWORKTypes.h:237
boost::optional< IWORKSize > m_size
Definition: IWORKTypes.h:126
Definition: IWORKTypes.h:124
IWORKDurationFormat()
Definition: IWORKTypes.cpp:240
IWORKLineCap m_cap
Definition: IWORKTypes.h:209
Definition: IWORKTypes.h:244
boost::optional< bool > m_aspectRatioLocked
Definition: IWORKTypes.h:64
IWORKGradientType
Definition: IWORKEnum.h:96
boost::variant< IWORKColor, IWORKGradient, IWORKFillImage > IWORKFill
Definition: IWORKTypes.h:242
Definition: IWORKTypes.h:132
Definition: IWORKTypes.h:231
Column()
Definition: IWORKTypes.cpp:209
Definition: IWORKToken.h:278
int m_base
Definition: IWORKTypes.h:294
RVNGInputStreamPtr_t m_stream
Definition: IWORKTypes.h:117
IWORKDateTimeFormat()
Definition: IWORKTypes.cpp:235
IWORKBinary()
Definition: IWORKTypes.cpp:107
Definition: IWORKToken.h:333
std::deque< double > IWORKColumnSizes_t
Definition: IWORKTypes_fwd.h:23
bool m_equal
Definition: IWORKTypes.h:278
Definition: IWORKToken.h:357
std::deque< double > IWORKRowSizes_t
Definition: IWORKTypes_fwd.h:25
boost::optional< std::string > m_type
Definition: IWORKTypes.h:136
Definition: IWORKTypes.h:45
std::string m_string
Definition: IWORKTypes.h:287
boost::optional< bool > m_verticalFlip
Definition: IWORKTypes.h:63
double m_height
Definition: IWORKTypes.h:39
boost::optional< double > m_y2
Definition: IWORKTypes.h:110
IWORKMediaContent()
Definition: IWORKTypes.cpp:101
boost::optional< std::string > m_displayName
Definition: IWORKTypes.h:118
Definition: IWORKTypes.h:213
IWORKGeometryPtr_t m_geometry
Definition: IWORKTypes.h:165
boost::unordered_map< std::string, IWORKOutputElements > IWORKHeaderFooterMap_t
Definition: IWORKTypes.h:32
double m_offset
Definition: IWORKTypes.h:250
double m_spacing
Definition: IWORKTypes.h:271
IWORKImage()
Definition: IWORKTypes.cpp:115
boost::optional< double > m_shearYAngle
Definition: IWORKTypes.h:61
double m_opacity
Definition: IWORKTypes.h:251
IWORKLineCap
Definition: IWORKEnum.h:56
IWORKRowSizes_t m_rowSizes
Definition: IWORKTypes.h:183
Definition: IWORKTypes.h:54
std::string m_author
Definition: IWORKTypes.h:259
boost::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libetonyek_utils.h:111
std::string m_mimeType
Definition: IWORKTypes.h:119
IWORKPathPtr_t m_path
Definition: IWORKTypes.h:164
int m_basePlaces
Definition: IWORKTypes.h:295
Definition: IWORKToken.h:239
boost::unordered_map< ID_t, IWORKTabStops_t > IWORKTabStopsMap_t
Definition: IWORKTypes.h:99
Definition: IWORKTypes.h:266
RVNGInputStreamPtr_t m_stream
Definition: IWORKTypes.h:238
std::string m_mimeType
Definition: IWORKTypes.h:239
IWORKFillImageType m_type
Definition: IWORKTypes.h:235
double m_angle
Definition: IWORKTypes.h:249
IWORKColumnSizes_t m_columnSizes
Definition: IWORKTypes.h:182
std::string m_currencyCode
Definition: IWORKTypes.h:289
boost::optional< IWORKBinary > m_binary
Definition: IWORKTypes.h:146
std::deque< Column > Columns_t
Definition: IWORKTypes.h:274
boost::optional< double > m_y1
Definition: IWORKTypes.h:108
double m_y
Definition: IWORKTypes.h:48
unsigned m_row
Definition: IWORKTypes.h:186
boost::optional< std::string > m_path
Definition: IWORKTypes.h:135
bool m_thousandsSeperator
Definition: IWORKTypes.h:291
IWORKMedia()
Definition: IWORKTypes.cpp:122
IWORKGradientType m_type
Definition: IWORKTypes.h:226
double m_green
Definition: IWORKTypes.h:73
boost::optional< double > m_top
Definition: IWORKTypes.h:83
boost::optional< bool > m_locked
Definition: IWORKTypes.h:144
IWORKColor m_color
Definition: IWORKTypes.h:207
IWORKShadow()
Definition: IWORKTypes.cpp:193
double m_alpha
Definition: IWORKTypes.h:75
std::string m_title
Definition: IWORKTypes.h:258
boost::optional< double > m_x2
Definition: IWORKTypes.h:109
double m_pos
Definition: IWORKTypes.h:93
double m_red
Definition: IWORKTypes.h:72
IWORKGeometryPtr_t m_geometry
Definition: IWORKTypes.h:153
IWORKCellType
Definition: IWORKEnum.h:70
std::string m_format
Definition: IWORKTypes.h:309
IWORKFilterDescriptor()
Definition: IWORKTypes.cpp:245
Definition: IWORKTypes.h:254
IWORKNumberFormat()
Definition: IWORKTypes.cpp:221
Definition: IWORKToken.h:135
IWORKCellNumberType m_type
Definition: IWORKTypes.h:286
IWORKFillImage()
Definition: IWORKTypes.cpp:185
Definition: IWORKTypes.h:151
IWORKLine()
Definition: IWORKTypes.cpp:84
boost::optional< double > m_bottom
Definition: IWORKTypes.h:85
IWORKTabStop(double pos_)
Definition: IWORKTypes.cpp:79
IWORKStrokeType
Definition: IWORKEnum.h:109

Generated for libetonyek by doxygen 1.8.10