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 
205  double m_width;
209  std::deque<double> m_pattern;
210 };
211 
213 {
215 
217  double m_fraction;
218  double m_inflection;
219 };
220 
222 {
223  IWORKGradient();
224 
226  std::deque<IWORKGradientStop> m_stops;
227  double m_angle;
228 };
229 
231 {
232  IWORKFillImage();
233 
235  boost::optional<IWORKColor> m_color;
238 };
239 
240 typedef boost::variant<IWORKColor, IWORKGradient, IWORKFillImage> IWORKFill;
241 
243 {
244  IWORKShadow();
245 
247  double m_angle;
248  double m_offset;
249  double m_opacity;
250 };
251 
253 {
254  IWORKMetadata();
255 
260 };
261 
263 {
264  struct Column
265  {
266  Column();
267 
268  double m_width;
269  double m_spacing;
270  };
271 
272  typedef std::deque<Column> Columns_t;
273 
274  IWORKColumns();
275 
276  bool m_equal;
277  Columns_t m_columns;
278 };
279 
281 {
283 
292  int m_base;
294 };
295 
297 {
299 
301 };
302 
304 {
306 
308 };
309 
310 }
311 
312 #endif // IWORKTYPES_H_INCLUDED
313 
314 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
std::string m_keywords
Definition: IWORKTypes.h:258
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:221
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:216
std::string m_comment
Definition: IWORKTypes.h:259
IWORKFillImageType
Definition: IWORKEnum.h:86
unsigned m_numRows
Definition: IWORKTypes.h:188
double m_width
Definition: IWORKTypes.h:205
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:207
Definition: IWORKTypes.h:70
boost::optional< bool > m_sizesLocked
Definition: IWORKTypes.h:65
double m_inflection
Definition: IWORKTypes.h:218
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:268
IWORKCellNumberType
Definition: IWORKEnum.h:78
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:280
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:209
unsigned m_numColumns
Definition: IWORKTypes.h:187
IWORKSize()
Definition: IWORKTypes.cpp:17
Definition: IWORKTypes.h:262
double m_angle
Definition: IWORKTypes.h:227
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:303
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: IWORKToken.h:271
Definition: IWORKTypes.h:162
Definition: IWORKToken.h:260
boost::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:40
Definition: IWORKTypes.h:103
Definition: IWORKTypes.h:36
int m_fractionAccuracy
Definition: IWORKTypes.h:290
double m_width
Definition: IWORKTypes.h:38
Definition: IWORKToken.h:194
boost::optional< IWORKColor > m_color
Definition: IWORKTypes.h:235
int m_decimalPlaces
Definition: IWORKTypes.h:286
Definition: IWORKTypes.h:170
IWORKStroke()
Definition: IWORKTypes.cpp:162
IWORKData()
Definition: IWORKTypes.cpp:94
bool m_accountingStyle
Definition: IWORKTypes.h:291
double m_x
Definition: IWORKTypes.h:47
IWORKGridLineList_t m_verticalLines
Definition: IWORKTypes.h:196
Columns_t m_columns
Definition: IWORKTypes.h:277
std::string m_format
Definition: IWORKTypes.h:300
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:226
Definition: IWORKTypes.h:296
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:246
Definition: IWORKTypes.h:91
double m_fraction
Definition: IWORKTypes.h:217
int m_negativeStyle
Definition: IWORKTypes.h:288
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:236
boost::optional< IWORKSize > m_size
Definition: IWORKTypes.h:126
Definition: IWORKTypes.h:124
IWORKDurationFormat()
Definition: IWORKTypes.cpp:240
IWORKLineCap m_cap
Definition: IWORKTypes.h:208
Definition: IWORKTypes.h:242
boost::optional< bool > m_aspectRatioLocked
Definition: IWORKTypes.h:64
IWORKGradientType
Definition: IWORKEnum.h:95
boost::variant< IWORKColor, IWORKGradient, IWORKFillImage > IWORKFill
Definition: IWORKTypes.h:240
Definition: IWORKTypes.h:132
Definition: IWORKTypes.h:230
Column()
Definition: IWORKTypes.cpp:209
Definition: IWORKToken.h:255
int m_base
Definition: IWORKTypes.h:292
RVNGInputStreamPtr_t m_stream
Definition: IWORKTypes.h:117
IWORKDateTimeFormat()
Definition: IWORKTypes.cpp:235
IWORKBinary()
Definition: IWORKTypes.cpp:107
Definition: IWORKToken.h:304
std::deque< double > IWORKColumnSizes_t
Definition: IWORKTypes_fwd.h:23
bool m_equal
Definition: IWORKTypes.h:276
Definition: IWORKToken.h:322
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:285
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:212
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:248
double m_spacing
Definition: IWORKTypes.h:269
IWORKImage()
Definition: IWORKTypes.cpp:115
boost::optional< double > m_shearYAngle
Definition: IWORKTypes.h:61
double m_opacity
Definition: IWORKTypes.h:249
IWORKLineCap
Definition: IWORKEnum.h:56
IWORKRowSizes_t m_rowSizes
Definition: IWORKTypes.h:183
Definition: IWORKTypes.h:54
std::string m_author
Definition: IWORKTypes.h:257
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:293
Definition: IWORKToken.h:219
boost::unordered_map< ID_t, IWORKTabStops_t > IWORKTabStopsMap_t
Definition: IWORKTypes.h:99
Definition: IWORKTypes.h:264
RVNGInputStreamPtr_t m_stream
Definition: IWORKTypes.h:237
IWORKFillImageType m_type
Definition: IWORKTypes.h:234
double m_angle
Definition: IWORKTypes.h:247
IWORKColumnSizes_t m_columnSizes
Definition: IWORKTypes.h:182
std::string m_currencyCode
Definition: IWORKTypes.h:287
boost::optional< IWORKBinary > m_binary
Definition: IWORKTypes.h:146
std::deque< Column > Columns_t
Definition: IWORKTypes.h:272
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:289
IWORKMedia()
Definition: IWORKTypes.cpp:122
IWORKGradientType m_type
Definition: IWORKTypes.h:225
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:206
IWORKShadow()
Definition: IWORKTypes.cpp:193
double m_alpha
Definition: IWORKTypes.h:75
std::string m_title
Definition: IWORKTypes.h:256
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:69
std::string m_format
Definition: IWORKTypes.h:307
Definition: IWORKTypes.h:252
IWORKNumberFormat()
Definition: IWORKTypes.cpp:221
Definition: IWORKToken.h:122
IWORKCellNumberType m_type
Definition: IWORKTypes.h:284
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

Generated for libetonyek by doxygen 1.8.10