IWORKTypes.h Source File documentation

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 <map>
17#include <string>
18
19#include <boost/optional.hpp>
20#include <boost/variant.hpp>
21
22#if defined(__GNUC__) && !defined(__clang__)
23#pragma GCC diagnostic push
24#pragma GCC diagnostic ignored "-Weffc++"
25#endif
26#include <mdds/flat_segment_tree.hpp>
27#if defined(__GNUC__) && !defined(__clang__)
28#pragma GCC diagnostic pop
29#endif
30
31#include "libetonyek_utils.h"
32#include "IWORKEnum.h"
33#include "IWORKPath_fwd.h"
34#include "IWORKStyle_fwd.h"
35#include "IWORKFormula.h"
36
37namespace libetonyek
38{
39
40class IWORKOutputElements;
41
42 typedef std::unordered_map<std::string, IWORKOutputElements> IWORKHeaderFooterMap_t;
43
44 struct IWORKSize
45{
46 double m_width;
47 double m_height;
48 IWORKSize();
49 IWORKSize(double w, double h);
50};
51
52 struct IWORKPosition
53{
54 double m_x;
55 double m_y;
56
57 IWORKPosition();
58 IWORKPosition(double x_, double y_);
59};
60
61 struct IWORKGeometry
62{
63 IWORKSize m_naturalSize;
64 IWORKSize m_size;
65 IWORKPosition m_position;
67 boost::optional<double> m_angle;
68 boost::optional<double> m_shearXAngle;
69 boost::optional<double> m_shearYAngle;
70 boost::optional<bool> m_horizontalFlip;
71 boost::optional<bool> m_verticalFlip;
72 boost::optional<bool> m_aspectRatioLocked;
73 boost::optional<bool> m_sizesLocked;
74
75 IWORKGeometry();
76};
77
78 struct IWORKColor
79{
80 double m_red;
81 double m_green;
82 double m_blue;
83 double m_alpha;
84
85 IWORKColor();
86 IWORKColor(double r, double g, double b, double a);
87};
88
89 struct IWORKMarker
90{
91 IWORKMarker();
92 bool m_filled;
93 double m_scale;
94 int m_pathJoin;
95 boost::optional<std::string> m_path;
96 boost::optional<IWORKPosition> m_endPoint;
97};
98
99 struct IWORKPadding
100{
101 boost::optional<double> m_top;
102 boost::optional<double> m_right;
103 boost::optional<double> m_bottom;
104 boost::optional<double> m_left;
105
106 IWORKPadding();
107};
108 typedef std::unordered_map<ID_t, IWORKPadding> IWORKPaddingMap_t;
109
110 struct IWORKTabStop
111{
112 IWORKTabulationType m_align;
113 double m_pos;
114
115 IWORKTabStop();
116 IWORKTabStop(IWORKTabulationType align, double pos_);
117};
118
119 typedef std::deque<IWORKTabStop> IWORKTabStops_t;
120 typedef std::unordered_map<ID_t, IWORKTabStops_t> IWORKTabStopsMap_t;
121 typedef mdds::flat_segment_tree<unsigned, IWORKStylePtr_t> IWORKGridLine_t;
122 typedef std::map<unsigned,IWORKGridLine_t> IWORKGridLineMap_t;
123 typedef std::shared_ptr<IWORKFormula> IWORKFormulaPtr_t;
124 typedef std::unordered_map<ID_t, IWORKFormulaPtr_t> IWORKFormulaMap_t;
125
126 struct IWORKLine
127{
128 IWORKGeometryPtr_t m_geometry;
129 IWORKStylePtr_t m_style;
130 boost::optional<int> m_order;
131 boost::optional<double> m_x1;
132 boost::optional<double> m_y1;
133 boost::optional<double> m_x2;
134 boost::optional<double> m_y2;
135
136 IWORKLine();
137};
138
139 struct IWORKData
140{
141 RVNGInputStreamPtr_t m_stream;
142 boost::optional<std::string> m_displayName;
143 std::string m_mimeType;
144
145 IWORKData();
146};
147
148 struct IWORKMediaContent
149{
150 IWORKImageType m_type;
151 boost::optional<IWORKSize> m_size;
152 IWORKDataPtr_t m_data;
153 boost::optional<IWORKColor> m_fillColor;
154
155 IWORKMediaContent();
156};
157
158 struct IWORKMedia
159{
160 IWORKGeometryPtr_t m_geometry;
161 IWORKGeometryPtr_t m_cropGeometry;
162 IWORKStylePtr_t m_style;
163 boost::optional<int> m_order;
164 bool m_locked;
165 boost::optional<bool> m_placeholder;
166 boost::optional<IWORKSize> m_placeholderSize;
167 IWORKMediaContentPtr_t m_content;
168
169 IWORKMedia();
170};
171
172 struct IWORKExternalTextWrap
173{
174 IWORKWrapStyle m_style;
175 bool m_floatingWrapEnabled;
176 bool m_inlineWrapEnabled;
177 IWORKWrapDirection m_direction;
178 bool m_aligned;
179 IWORKWrapType m_floatingType;
180 double m_margin;
181 double m_alphaThreshold;
182 IWORKExternalTextWrap();
183};
184 typedef std::unordered_map<ID_t, IWORKExternalTextWrap> IWORKExternalTextWrapMap_t;
185
186 struct IWORKWrap
187{
188 IWORKPathPtr_t m_path;
189 IWORKGeometryPtr_t m_geometry;
190
191 IWORKWrap();
192};
193
194 struct IWORKLineSpacing
195{
196 IWORKLineSpacing(double amount, bool relative);
197
198 double m_amount;
199 bool m_relative;
200 bool m_atLeast;
201};
202 typedef std::unordered_map<ID_t, IWORKLineSpacing> IWORKLineSpacingMap_t;
203
204 struct IWORKDateTimeData
205{
206 IWORKDateTimeData();
207
208 int m_year, m_month, m_day;
209 int m_hour, m_minute;
210 float m_second;
211};
212
213 struct IWORKColumnRowSize
214{
215 IWORKColumnRowSize();
216 explicit IWORKColumnRowSize(double size, bool exactSize=true);
217 boost::optional<double> m_size;
218 bool m_exactSize;
219};
220
221 struct IWORKTableVector
222{
223 IWORKTableVector();
224 boost::optional<unsigned> m_axis;
225 boost::optional<double> m_along;
226 boost::optional<unsigned> m_beginCell;
227 boost::optional<unsigned> m_endCell;
228 IWORKStylePtr_t m_style;
229};
230 typedef std::unordered_map<ID_t, IWORKTableVector> IWORKTableVectorMap_t;
231
232 struct IWORKTableCell
233{
234 IWORKTableCell();
235 IWORKStylePtr_t m_style;
236 boost::optional<double> m_preferredHeight;
237 IWORKTableVector m_minXBorder, m_maxXBorder, m_minYBorder, m_maxYBorder;
238};
239 typedef std::unordered_map<ID_t, IWORKTableCell> IWORKTableCellMap_t;
240
241 struct IWORKTableData
242{
243 IWORKTableData();
244
245 IWORKColumnSizes_t m_columnSizes;
246 IWORKRowSizes_t m_rowSizes;
247
248 unsigned m_column;
249 unsigned m_row;
250 unsigned m_numColumns;
251 unsigned m_numRows;
252
253 boost::optional<unsigned> m_columnSpan;
254 boost::optional<unsigned> m_rowSpan;
255 boost::optional<unsigned> m_cellMove;
256 boost::optional<std::string> m_content;
257 boost::optional<IWORKDateTimeData> m_dateTime;
258 IWORKFormulaPtr_t m_formula;
259 boost::optional<unsigned> m_formulaHC;
260 IWORKGridLineMap_t m_horizontalLines;
261 IWORKGridLineMap_t m_verticalLines;
262 std::unordered_map<double, unsigned> m_positionToHorizontalLineMap;
263 std::unordered_map<double, unsigned> m_positionToVerticalLineMap;
264 IWORKStylePtr_t m_style;
265 IWORKCellType m_type;
266};
267
268 struct IWORKPattern
269{
270 IWORKPattern();
271
272 IWORKStrokeType m_type;
273 std::deque<double> m_values;
274};
275 typedef std::unordered_map<ID_t, IWORKPattern> IWORKPatternMap_t;
276
277 struct IWORKStroke
278{
279 IWORKStroke();
280
281 double m_width;
282 IWORKColor m_color;
283 IWORKLineJoin m_join;
284 IWORKLineCap m_cap;
285 IWORKPattern m_pattern;
286};
287 typedef std::unordered_map<ID_t, IWORKStroke> IWORKStrokeMap_t;
288
289 struct IWORKGradientStop
290{
291 IWORKGradientStop();
292
293 IWORKColor m_color;
294 double m_fraction;
295 double m_inflection;
296};
297 typedef std::unordered_map<ID_t, IWORKGradientStop> IWORKGradientStopMap_t;
298
299 struct IWORKGradient
300{
301 IWORKGradient();
302
303 IWORKGradientType m_type;
304 std::deque<IWORKGradientStop> m_stops;
305 double m_angle;
306};
307 typedef std::unordered_map<ID_t, IWORKGradient> IWORKGradientMap_t;
308
309 typedef boost::variant<IWORKColor, IWORKGradient, IWORKMediaContent> IWORKFill;
310 typedef std::unordered_map<ID_t, IWORKFill> IWORKFillMap_t;
311
312 struct IWORKDropCap
313{
314 IWORKDropCap();
315
316 bool empty() const
317 {
318 return m_numLines<=1 || m_numCharacters<=0;
319 }
320 unsigned m_numLines;
321 unsigned m_numLinesSpan; // the text begins with numLinesSpan empty lines
322 unsigned m_numCharacters;
323
324 double m_decalParagraphLeft; // in percent, this decals the left position of the text
325 double m_supplementalSpace; // extra space between the drop cap and the text
326
327 IWORKStylePtr_t m_style; // the caps style (if known)
328};
329
330 struct IWORKShadow
331{
332 IWORKShadow();
333
334 bool m_visible;
335 IWORKColor m_color;
336 double m_angle;
337 double m_glossiness;
338 double m_offset;
339 double m_opacity;
340 double m_radius;
341};
342 typedef std::unordered_map<ID_t, IWORKShadow> IWORKShadowMap_t;
343 typedef std::deque<IWORKShadow> IWORKFilters_t;
344 typedef std::unordered_map<ID_t, IWORKFilters_t> IWORKFiltersMap_t;
345
346 struct IWORKMetadata
347{
348 IWORKMetadata();
349
350 std::string m_title;
351 std::string m_author;
352 std::string m_keywords;
353 std::string m_comment;
354};
355
356 struct IWORKColumns
357{
358 struct Column
359 {
360 Column();
361
362 double m_width;
363 double m_spacing;
364 };
365
366 typedef std::deque<Column> Columns_t;
367
368 IWORKColumns();
369
370 bool m_equal;
371 Columns_t m_columns;
372};
373 typedef std::unordered_map<ID_t, IWORKColumns> IWORKColumnsMap_t;
374
375 struct IWORKPageMaster
376{
377 IWORKPageMaster();
378
379 std::string m_header;
380 std::string m_footer;
381};
382
383 struct IWORKNumberFormat
384{
385 IWORKNumberFormat();
386 std::string getRVNGValueType() const;
387 IWORKCellNumberType m_type;
388 std::string m_string;
389 int m_decimalPlaces;
390 std::string m_currencyCode;
391 int m_negativeStyle;
392 bool m_thousandsSeparator;
393 int m_fractionAccuracy;
394 bool m_accountingStyle;
395 int m_base;
396 int m_basePlaces;
397 bool m_baseUseMinusSign;
398};
399 typedef std::unordered_map<ID_t, IWORKNumberFormat> IWORKNumberFormatMap_t;
400
401 struct IWORKDateTimeFormat
402{
403 IWORKDateTimeFormat();
404
405 std::string m_format;
406};
407 typedef std::unordered_map<ID_t, IWORKDateTimeFormat> IWORKDateTimeFormatMap_t;
408
409 struct IWORKDurationFormat
410{
411 IWORKDurationFormat();
412
413 std::string m_format;
414};
415 typedef std::unordered_map<ID_t, IWORKDurationFormat> IWORKDurationFormatMap_t;
416
417 struct IWORKFilterDescriptor
418{
419 IWORKFilterDescriptor();
420
421 bool m_isShadow;
422};
423
424 typedef std::unordered_map<ID_t, IWORKFilterDescriptor> IWORKFilterDescriptorMap_t;
425
426 struct IWORKPrintInfo
427{
428 IWORKPrintInfo();
429
430 boost::optional<double> m_height;
431 boost::optional<double> m_width;
432 boost::optional<int> m_orientation;
433 boost::optional<double> m_marginBottom;
434 boost::optional<double> m_marginLeft;
435 boost::optional<double> m_marginRight;
436 boost::optional<double> m_marginTop;
437 boost::optional<double> m_footerHeight;
438 boost::optional<double> m_headerHeight;
439};
440
441 struct IWORKListLabelGeometry
442{
443 IWORKListLabelGeometry();
444
445 IWORKAlignment m_align;
446 double m_scale;
447 double m_offset;
448 bool m_scaleWithText;
449};
450
451 typedef std::unordered_map<ID_t, IWORKListLabelGeometry> IWORKListLabelGeometryMap_t;
452
453 struct IWORKTextLabelFormat
454{
455 IWORKTextLabelFormat();
456
457 IWORKLabelNumFormatSurrounding m_prefix;
458 IWORKLabelNumFormat m_format;
459 IWORKLabelNumFormatSurrounding m_suffix;
460};
461
462 struct IWORKTextLabel
463{
464 IWORKTextLabel();
465
466 IWORKTextLabelFormat m_format;
467 bool m_tiered;
468 unsigned m_first;
469};
470
471// Type of list label. One of: none, bullet, text, image.
472// Note: The bool type, representing 'none', is just a placeholder. The
473// value is not important.
474 typedef boost::variant<bool, std::string, IWORKTextLabel, IWORKMediaContentPtr_t> IWORKListLabelTypeInfo_t;
475 typedef std::unordered_map<ID_t, IWORKListLabelTypeInfo_t> IWORKListLabelTypeInfoMap_t;
476
477 typedef std::map<unsigned, IWORKStylePtr_t> IWORKListLevels_t;
478}
479
480#endif // IWORKTYPES_H_INCLUDED
481
482/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
IWORKEnum.h
IWORKFormula.h
IWORKPath_fwd.h
IWORKStyle_fwd.h
IWORKTypes_fwd.h
libetonyek::IWORKOutputElements
Definition IWORKOutputElements.h:33
libetonyek_utils.h
libetonyek::IWORKToken::align
@ align
Definition IWORKToken.h:509
libetonyek::IWORKToken::g
@ g
Definition IWORKToken.h:235
libetonyek::IWORKToken::r
@ r
Definition IWORKToken.h:380
libetonyek::IWORKToken::w
@ w
Definition IWORKToken.h:638
libetonyek::IWORKToken::size
@ size
Definition IWORKToken.h:402
libetonyek::IWORKToken::a
@ a
Definition IWORKToken.h:508
libetonyek::IWORKToken::b
@ b
Definition IWORKToken.h:514
libetonyek::IWORKToken::relative
@ relative
Definition IWORKToken.h:677
libetonyek::IWORKToken::h
@ h
Definition IWORKToken.h:557
libetonyek
Definition IWORKBezierElement.cpp:21
libetonyek::IWORKStrokeMap_t
std::unordered_map< ID_t, IWORKStroke > IWORKStrokeMap_t
Definition IWORKTypes.h:287
libetonyek::IWORKCellType
IWORKCellType
Definition IWORKEnum.h:80
libetonyek::IWORKTabStopsMap_t
std::unordered_map< ID_t, IWORKTabStops_t > IWORKTabStopsMap_t
Definition IWORKTypes.h:120
libetonyek::IWORKFill
boost::variant< IWORKColor, IWORKGradient, IWORKMediaContent > IWORKFill
Definition IWORKTypes.h:309
libetonyek::IWORKGradientType
IWORKGradientType
Definition IWORKEnum.h:107
libetonyek::IWORKExternalTextWrapMap_t
std::unordered_map< ID_t, IWORKExternalTextWrap > IWORKExternalTextWrapMap_t
Definition IWORKTypes.h:184
libetonyek::IWORKMediaContentPtr_t
std::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition IWORKTypes_fwd.h:58
libetonyek::IWORKPatternMap_t
std::unordered_map< ID_t, IWORKPattern > IWORKPatternMap_t
Definition IWORKTypes.h:275
libetonyek::IWORKTabulationType
IWORKTabulationType
Definition IWORKEnum.h:152
libetonyek::RVNGInputStreamPtr_t
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition libetonyek_utils.h:82
libetonyek::IWORKGridLine_t
mdds::flat_segment_tree< unsigned, IWORKStylePtr_t > IWORKGridLine_t
Definition IWORKTypes.h:121
libetonyek::IWORKDateTimeFormatMap_t
std::unordered_map< ID_t, IWORKDateTimeFormat > IWORKDateTimeFormatMap_t
Definition IWORKTypes.h:407
libetonyek::IWORKColumnsMap_t
std::unordered_map< ID_t, IWORKColumns > IWORKColumnsMap_t
Definition IWORKTypes.h:373
libetonyek::IWORKGridLineMap_t
std::map< unsigned, IWORKGridLine_t > IWORKGridLineMap_t
Definition IWORKTypes.h:122
libetonyek::IWORKListLevels_t
std::map< unsigned, IWORKStylePtr_t > IWORKListLevels_t
Definition IWORKTypes.h:477
libetonyek::IWORKDataPtr_t
std::shared_ptr< IWORKData > IWORKDataPtr_t
Definition IWORKTypes_fwd.h:53
libetonyek::IWORKWrapDirection
IWORKWrapDirection
Definition IWORKEnum.h:160
libetonyek::IWORKLabelNumFormatSurrounding
IWORKLabelNumFormatSurrounding
Definition IWORKEnum.h:137
libetonyek::IWORKColumnSizes_t
std::deque< IWORKColumnRowSize > IWORKColumnSizes_t
Definition IWORKTypes_fwd.h:24
libetonyek::IWORKCellNumberType
IWORKCellNumberType
Definition IWORKEnum.h:89
libetonyek::IWORKHeaderFooterMap_t
std::unordered_map< std::string, IWORKOutputElements > IWORKHeaderFooterMap_t
Definition IWORKTypes.h:42
libetonyek::IWORKLabelNumFormat
IWORKLabelNumFormat
Definition IWORKEnum.h:128
libetonyek::IWORKTableCellMap_t
std::unordered_map< ID_t, IWORKTableCell > IWORKTableCellMap_t
Definition IWORKTypes.h:239
libetonyek::IWORKPaddingMap_t
std::unordered_map< ID_t, IWORKPadding > IWORKPaddingMap_t
Definition IWORKTypes.h:108
libetonyek::IWORKFiltersMap_t
std::unordered_map< ID_t, IWORKFilters_t > IWORKFiltersMap_t
Definition IWORKTypes.h:344
libetonyek::IWORKWrapType
IWORKWrapType
Definition IWORKEnum.h:173
libetonyek::IWORKAlignment
IWORKAlignment
Definition IWORKEnum.h:17
libetonyek::IWORKShadowMap_t
std::unordered_map< ID_t, IWORKShadow > IWORKShadowMap_t
Definition IWORKTypes.h:342
libetonyek::IWORKLineSpacingMap_t
std::unordered_map< ID_t, IWORKLineSpacing > IWORKLineSpacingMap_t
Definition IWORKTypes.h:202
libetonyek::IWORKTableVectorMap_t
std::unordered_map< ID_t, IWORKTableVector > IWORKTableVectorMap_t
Definition IWORKTypes.h:230
libetonyek::IWORKFilterDescriptorMap_t
std::unordered_map< ID_t, IWORKFilterDescriptor > IWORKFilterDescriptorMap_t
Definition IWORKTypes.h:424
libetonyek::IWORKFormulaMap_t
std::unordered_map< ID_t, IWORKFormulaPtr_t > IWORKFormulaMap_t
Definition IWORKTypes.h:124
libetonyek::IWORKGradientMap_t
std::unordered_map< ID_t, IWORKGradient > IWORKGradientMap_t
Definition IWORKTypes.h:307
libetonyek::IWORKPathPtr_t
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition IWORKPath_fwd.h:22
libetonyek::IWORKFormulaPtr_t
std::shared_ptr< IWORKFormula > IWORKFormulaPtr_t
Definition IWORKTypes.h:123
libetonyek::IWORKGeometryPtr_t
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition IWORKTypes_fwd.h:45
libetonyek::IWORKImageType
IWORKImageType
Definition IWORKEnum.h:98
libetonyek::IWORKGradientStopMap_t
std::unordered_map< ID_t, IWORKGradientStop > IWORKGradientStopMap_t
Definition IWORKTypes.h:297
libetonyek::IWORKLineJoin
IWORKLineJoin
Definition IWORKEnum.h:73
libetonyek::IWORKRowSizes_t
std::deque< IWORKColumnRowSize > IWORKRowSizes_t
Definition IWORKTypes_fwd.h:26
libetonyek::IWORKFilters_t
std::deque< IWORKShadow > IWORKFilters_t
Definition IWORKTypes.h:343
libetonyek::IWORKFillMap_t
std::unordered_map< ID_t, IWORKFill > IWORKFillMap_t
Definition IWORKTypes.h:310
libetonyek::IWORKListLabelTypeInfo_t
boost::variant< bool, std::string, IWORKTextLabel, IWORKMediaContentPtr_t > IWORKListLabelTypeInfo_t
Definition IWORKTypes.h:474
libetonyek::IWORKListLabelTypeInfoMap_t
std::unordered_map< ID_t, IWORKListLabelTypeInfo_t > IWORKListLabelTypeInfoMap_t
Definition IWORKTypes.h:475
libetonyek::IWORKLineCap
IWORKLineCap
Definition IWORKEnum.h:66
libetonyek::IWORKStrokeType
IWORKStrokeType
Definition IWORKEnum.h:120
libetonyek::IWORKNumberFormatMap_t
std::unordered_map< ID_t, IWORKNumberFormat > IWORKNumberFormatMap_t
Definition IWORKTypes.h:399
libetonyek::IWORKTabStops_t
std::deque< IWORKTabStop > IWORKTabStops_t
Definition IWORKTypes.h:119
libetonyek::IWORKWrapStyle
IWORKWrapStyle
Definition IWORKEnum.h:167
libetonyek::IWORKStylePtr_t
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition IWORKStyle_fwd.h:23
libetonyek::IWORKDurationFormatMap_t
std::unordered_map< ID_t, IWORKDurationFormat > IWORKDurationFormatMap_t
Definition IWORKTypes.h:415
libetonyek::IWORKListLabelGeometryMap_t
std::unordered_map< ID_t, IWORKListLabelGeometry > IWORKListLabelGeometryMap_t
Definition IWORKTypes.h:451
libetonyek::IWORKColor
Definition IWORKTypes.h:79
libetonyek::IWORKColor::m_red
double m_red
Definition IWORKTypes.h:80
libetonyek::IWORKColor::m_green
double m_green
Definition IWORKTypes.h:81
libetonyek::IWORKColor::m_alpha
double m_alpha
Definition IWORKTypes.h:83
libetonyek::IWORKColor::m_blue
double m_blue
Definition IWORKTypes.h:82
libetonyek::IWORKColor::IWORKColor
IWORKColor()
Definition IWORKTypes.cpp:55
libetonyek::IWORKColumnRowSize::m_size
boost::optional< double > m_size
Definition IWORKTypes.h:217
libetonyek::IWORKColumnRowSize::m_exactSize
bool m_exactSize
Definition IWORKTypes.h:218
libetonyek::IWORKColumnRowSize::IWORKColumnRowSize
IWORKColumnRowSize()
Definition IWORKTypes.cpp:163
libetonyek::IWORKColumns::Column::m_width
double m_width
Definition IWORKTypes.h:362
libetonyek::IWORKColumns::Column::Column
Column()
Definition IWORKTypes.cpp:276
libetonyek::IWORKColumns::Column::m_spacing
double m_spacing
Definition IWORKTypes.h:363
libetonyek::IWORKColumns::m_equal
bool m_equal
Definition IWORKTypes.h:370
libetonyek::IWORKColumns::m_columns
Columns_t m_columns
Definition IWORKTypes.h:371
libetonyek::IWORKColumns::IWORKColumns
IWORKColumns()
Definition IWORKTypes.cpp:282
libetonyek::IWORKColumns::Columns_t
std::deque< Column > Columns_t
Definition IWORKTypes.h:366
libetonyek::IWORKData::IWORKData
IWORKData()
Definition IWORKTypes.cpp:111
libetonyek::IWORKData::m_displayName
boost::optional< std::string > m_displayName
Definition IWORKTypes.h:142
libetonyek::IWORKData::m_mimeType
std::string m_mimeType
Definition IWORKTypes.h:143
libetonyek::IWORKData::m_stream
RVNGInputStreamPtr_t m_stream
Definition IWORKTypes.h:141
libetonyek::IWORKDateTimeData::m_year
int m_year
Definition IWORKTypes.h:208
libetonyek::IWORKDateTimeData::m_second
float m_second
Definition IWORKTypes.h:210
libetonyek::IWORKDateTimeData::m_month
int m_month
Definition IWORKTypes.h:208
libetonyek::IWORKDateTimeData::m_day
int m_day
Definition IWORKTypes.h:208
libetonyek::IWORKDateTimeData::m_minute
int m_minute
Definition IWORKTypes.h:209
libetonyek::IWORKDateTimeData::m_hour
int m_hour
Definition IWORKTypes.h:209
libetonyek::IWORKDateTimeData::IWORKDateTimeData
IWORKDateTimeData()
Definition IWORKTypes.cpp:328
libetonyek::IWORKDateTimeFormat::m_format
std::string m_format
Definition IWORKTypes.h:405
libetonyek::IWORKDateTimeFormat::IWORKDateTimeFormat
IWORKDateTimeFormat()
Definition IWORKTypes.cpp:334
libetonyek::IWORKDropCap::m_numLines
unsigned m_numLines
Definition IWORKTypes.h:320
libetonyek::IWORKDropCap::empty
bool empty() const
Definition IWORKTypes.h:316
libetonyek::IWORKDropCap::m_numCharacters
unsigned m_numCharacters
Definition IWORKTypes.h:322
libetonyek::IWORKDropCap::m_numLinesSpan
unsigned m_numLinesSpan
Definition IWORKTypes.h:321
libetonyek::IWORKDropCap::m_decalParagraphLeft
double m_decalParagraphLeft
Definition IWORKTypes.h:324
libetonyek::IWORKDropCap::IWORKDropCap
IWORKDropCap()
Definition IWORKTypes.cpp:245
libetonyek::IWORKDropCap::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:327
libetonyek::IWORKDropCap::m_supplementalSpace
double m_supplementalSpace
Definition IWORKTypes.h:325
libetonyek::IWORKDurationFormat::m_format
std::string m_format
Definition IWORKTypes.h:413
libetonyek::IWORKDurationFormat::IWORKDurationFormat
IWORKDurationFormat()
Definition IWORKTypes.cpp:339
libetonyek::IWORKExternalTextWrap::m_alphaThreshold
double m_alphaThreshold
Definition IWORKTypes.h:181
libetonyek::IWORKExternalTextWrap::m_direction
IWORKWrapDirection m_direction
Definition IWORKTypes.h:177
libetonyek::IWORKExternalTextWrap::m_floatingType
IWORKWrapType m_floatingType
Definition IWORKTypes.h:179
libetonyek::IWORKExternalTextWrap::m_aligned
bool m_aligned
Definition IWORKTypes.h:178
libetonyek::IWORKExternalTextWrap::m_margin
double m_margin
Definition IWORKTypes.h:180
libetonyek::IWORKExternalTextWrap::IWORKExternalTextWrap
IWORKExternalTextWrap()
Definition IWORKTypes.cpp:138
libetonyek::IWORKExternalTextWrap::m_inlineWrapEnabled
bool m_inlineWrapEnabled
Definition IWORKTypes.h:176
libetonyek::IWORKExternalTextWrap::m_floatingWrapEnabled
bool m_floatingWrapEnabled
Definition IWORKTypes.h:175
libetonyek::IWORKExternalTextWrap::m_style
IWORKWrapStyle m_style
Definition IWORKTypes.h:174
libetonyek::IWORKFilterDescriptor::IWORKFilterDescriptor
IWORKFilterDescriptor()
Definition IWORKTypes.cpp:344
libetonyek::IWORKFilterDescriptor::m_isShadow
bool m_isShadow
Definition IWORKTypes.h:421
libetonyek::IWORKGeometry::m_sizesLocked
boost::optional< bool > m_sizesLocked
Definition IWORKTypes.h:73
libetonyek::IWORKGeometry::m_horizontalFlip
boost::optional< bool > m_horizontalFlip
Definition IWORKTypes.h:70
libetonyek::IWORKGeometry::m_verticalFlip
boost::optional< bool > m_verticalFlip
Definition IWORKTypes.h:71
libetonyek::IWORKGeometry::m_shearYAngle
boost::optional< double > m_shearYAngle
Definition IWORKTypes.h:69
libetonyek::IWORKGeometry::m_aspectRatioLocked
boost::optional< bool > m_aspectRatioLocked
Definition IWORKTypes.h:72
libetonyek::IWORKGeometry::m_size
IWORKSize m_size
Definition IWORKTypes.h:64
libetonyek::IWORKGeometry::m_shearXAngle
boost::optional< double > m_shearXAngle
Definition IWORKTypes.h:68
libetonyek::IWORKGeometry::m_position
IWORKPosition m_position
Definition IWORKTypes.h:65
libetonyek::IWORKGeometry::m_angle
boost::optional< double > m_angle
final angle in radians
Definition IWORKTypes.h:67
libetonyek::IWORKGeometry::m_naturalSize
IWORKSize m_naturalSize
Definition IWORKTypes.h:63
libetonyek::IWORKGeometry::IWORKGeometry
IWORKGeometry()
Definition IWORKTypes.cpp:41
libetonyek::IWORKGradientStop::IWORKGradientStop
IWORKGradientStop()
Definition IWORKTypes.cpp:231
libetonyek::IWORKGradientStop::m_fraction
double m_fraction
Definition IWORKTypes.h:294
libetonyek::IWORKGradientStop::m_color
IWORKColor m_color
Definition IWORKTypes.h:293
libetonyek::IWORKGradientStop::m_inflection
double m_inflection
Definition IWORKTypes.h:295
libetonyek::IWORKGradient::IWORKGradient
IWORKGradient()
Definition IWORKTypes.cpp:238
libetonyek::IWORKGradient::m_stops
std::deque< IWORKGradientStop > m_stops
Definition IWORKTypes.h:304
libetonyek::IWORKGradient::m_type
IWORKGradientType m_type
Definition IWORKTypes.h:303
libetonyek::IWORKGradient::m_angle
double m_angle
Definition IWORKTypes.h:305
libetonyek::IWORKLineSpacing::m_amount
double m_amount
Definition IWORKTypes.h:198
libetonyek::IWORKLineSpacing::m_relative
bool m_relative
Definition IWORKTypes.h:199
libetonyek::IWORKLineSpacing::m_atLeast
bool m_atLeast
Definition IWORKTypes.h:200
libetonyek::IWORKLineSpacing::IWORKLineSpacing
IWORKLineSpacing(double amount, bool relative)
Definition IWORKTypes.cpp:156
libetonyek::IWORKLine::m_order
boost::optional< int > m_order
Definition IWORKTypes.h:130
libetonyek::IWORKLine::m_y1
boost::optional< double > m_y1
Definition IWORKTypes.h:132
libetonyek::IWORKLine::m_geometry
IWORKGeometryPtr_t m_geometry
Definition IWORKTypes.h:128
libetonyek::IWORKLine::IWORKLine
IWORKLine()
Definition IWORKTypes.cpp:100
libetonyek::IWORKLine::m_y2
boost::optional< double > m_y2
Definition IWORKTypes.h:134
libetonyek::IWORKLine::m_x1
boost::optional< double > m_x1
Definition IWORKTypes.h:131
libetonyek::IWORKLine::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:129
libetonyek::IWORKLine::m_x2
boost::optional< double > m_x2
Definition IWORKTypes.h:133
libetonyek::IWORKListLabelGeometry::m_scale
double m_scale
Definition IWORKTypes.h:446
libetonyek::IWORKListLabelGeometry::m_scaleWithText
bool m_scaleWithText
Definition IWORKTypes.h:448
libetonyek::IWORKListLabelGeometry::IWORKListLabelGeometry
IWORKListLabelGeometry()
Definition IWORKTypes.cpp:362
libetonyek::IWORKListLabelGeometry::m_align
IWORKAlignment m_align
Definition IWORKTypes.h:445
libetonyek::IWORKListLabelGeometry::m_offset
double m_offset
Definition IWORKTypes.h:447
libetonyek::IWORKMarker::m_scale
double m_scale
Definition IWORKTypes.h:93
libetonyek::IWORKMarker::m_path
boost::optional< std::string > m_path
Definition IWORKTypes.h:95
libetonyek::IWORKMarker::IWORKMarker
IWORKMarker()
Definition IWORKTypes.cpp:71
libetonyek::IWORKMarker::m_pathJoin
int m_pathJoin
Definition IWORKTypes.h:94
libetonyek::IWORKMarker::m_endPoint
boost::optional< IWORKPosition > m_endPoint
Definition IWORKTypes.h:96
libetonyek::IWORKMarker::m_filled
bool m_filled
Definition IWORKTypes.h:92
libetonyek::IWORKMediaContent::m_fillColor
boost::optional< IWORKColor > m_fillColor
Definition IWORKTypes.h:153
libetonyek::IWORKMediaContent::m_data
IWORKDataPtr_t m_data
Definition IWORKTypes.h:152
libetonyek::IWORKMediaContent::m_type
IWORKImageType m_type
Definition IWORKTypes.h:150
libetonyek::IWORKMediaContent::IWORKMediaContent
IWORKMediaContent()
Definition IWORKTypes.cpp:118
libetonyek::IWORKMediaContent::m_size
boost::optional< IWORKSize > m_size
Definition IWORKTypes.h:151
libetonyek::IWORKMedia::IWORKMedia
IWORKMedia()
Definition IWORKTypes.cpp:126
libetonyek::IWORKMedia::m_placeholderSize
boost::optional< IWORKSize > m_placeholderSize
Definition IWORKTypes.h:166
libetonyek::IWORKMedia::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:162
libetonyek::IWORKMedia::m_placeholder
boost::optional< bool > m_placeholder
Definition IWORKTypes.h:165
libetonyek::IWORKMedia::m_content
IWORKMediaContentPtr_t m_content
Definition IWORKTypes.h:167
libetonyek::IWORKMedia::m_locked
bool m_locked
Definition IWORKTypes.h:164
libetonyek::IWORKMedia::m_geometry
IWORKGeometryPtr_t m_geometry
Definition IWORKTypes.h:160
libetonyek::IWORKMedia::m_order
boost::optional< int > m_order
Definition IWORKTypes.h:163
libetonyek::IWORKMedia::m_cropGeometry
IWORKGeometryPtr_t m_cropGeometry
Definition IWORKTypes.h:161
libetonyek::IWORKMetadata::IWORKMetadata
IWORKMetadata()
Definition IWORKTypes.cpp:268
libetonyek::IWORKMetadata::m_comment
std::string m_comment
Definition IWORKTypes.h:353
libetonyek::IWORKMetadata::m_keywords
std::string m_keywords
Definition IWORKTypes.h:352
libetonyek::IWORKMetadata::m_title
std::string m_title
Definition IWORKTypes.h:350
libetonyek::IWORKMetadata::m_author
std::string m_author
Definition IWORKTypes.h:351
libetonyek::IWORKNumberFormat::m_thousandsSeparator
bool m_thousandsSeparator
Definition IWORKTypes.h:392
libetonyek::IWORKNumberFormat::m_base
int m_base
Definition IWORKTypes.h:395
libetonyek::IWORKNumberFormat::m_currencyCode
std::string m_currencyCode
Definition IWORKTypes.h:390
libetonyek::IWORKNumberFormat::IWORKNumberFormat
IWORKNumberFormat()
Definition IWORKTypes.cpp:294
libetonyek::IWORKNumberFormat::m_type
IWORKCellNumberType m_type
Definition IWORKTypes.h:387
libetonyek::IWORKNumberFormat::m_string
std::string m_string
Definition IWORKTypes.h:388
libetonyek::IWORKNumberFormat::m_accountingStyle
bool m_accountingStyle
Definition IWORKTypes.h:394
libetonyek::IWORKNumberFormat::getRVNGValueType
std::string getRVNGValueType() const
Definition IWORKTypes.cpp:309
libetonyek::IWORKNumberFormat::m_fractionAccuracy
int m_fractionAccuracy
Definition IWORKTypes.h:393
libetonyek::IWORKNumberFormat::m_negativeStyle
int m_negativeStyle
Definition IWORKTypes.h:391
libetonyek::IWORKNumberFormat::m_basePlaces
int m_basePlaces
Definition IWORKTypes.h:396
libetonyek::IWORKNumberFormat::m_decimalPlaces
int m_decimalPlaces
Definition IWORKTypes.h:389
libetonyek::IWORKNumberFormat::m_baseUseMinusSign
bool m_baseUseMinusSign
Definition IWORKTypes.h:397
libetonyek::IWORKPadding::m_right
boost::optional< double > m_right
Definition IWORKTypes.h:102
libetonyek::IWORKPadding::m_top
boost::optional< double > m_top
Definition IWORKTypes.h:101
libetonyek::IWORKPadding::IWORKPadding
IWORKPadding()
Definition IWORKTypes.cpp:80
libetonyek::IWORKPadding::m_left
boost::optional< double > m_left
Definition IWORKTypes.h:104
libetonyek::IWORKPadding::m_bottom
boost::optional< double > m_bottom
Definition IWORKTypes.h:103
libetonyek::IWORKPageMaster::IWORKPageMaster
IWORKPageMaster()
Definition IWORKTypes.cpp:288
libetonyek::IWORKPageMaster::m_header
std::string m_header
Definition IWORKTypes.h:379
libetonyek::IWORKPageMaster::m_footer
std::string m_footer
Definition IWORKTypes.h:380
libetonyek::IWORKPattern
Definition IWORKTypes.h:269
libetonyek::IWORKPattern::m_values
std::deque< double > m_values
Definition IWORKTypes.h:273
libetonyek::IWORKPattern::m_type
IWORKStrokeType m_type
Definition IWORKTypes.h:272
libetonyek::IWORKPattern::IWORKPattern
IWORKPattern()
Definition IWORKTypes.cpp:217
libetonyek::IWORKPosition
Definition IWORKTypes.h:53
libetonyek::IWORKPosition::m_y
double m_y
Definition IWORKTypes.h:55
libetonyek::IWORKPosition::m_x
double m_x
Definition IWORKTypes.h:54
libetonyek::IWORKPosition::IWORKPosition
IWORKPosition()
Definition IWORKTypes.cpp:29
libetonyek::IWORKPrintInfo::m_marginLeft
boost::optional< double > m_marginLeft
Definition IWORKTypes.h:434
libetonyek::IWORKPrintInfo::m_marginBottom
boost::optional< double > m_marginBottom
Definition IWORKTypes.h:433
libetonyek::IWORKPrintInfo::m_headerHeight
boost::optional< double > m_headerHeight
Definition IWORKTypes.h:438
libetonyek::IWORKPrintInfo::IWORKPrintInfo
IWORKPrintInfo()
Definition IWORKTypes.cpp:349
libetonyek::IWORKPrintInfo::m_marginTop
boost::optional< double > m_marginTop
Definition IWORKTypes.h:436
libetonyek::IWORKPrintInfo::m_marginRight
boost::optional< double > m_marginRight
Definition IWORKTypes.h:435
libetonyek::IWORKPrintInfo::m_height
boost::optional< double > m_height
Definition IWORKTypes.h:430
libetonyek::IWORKPrintInfo::m_orientation
boost::optional< int > m_orientation
Definition IWORKTypes.h:432
libetonyek::IWORKPrintInfo::m_footerHeight
boost::optional< double > m_footerHeight
Definition IWORKTypes.h:437
libetonyek::IWORKPrintInfo::m_width
boost::optional< double > m_width
Definition IWORKTypes.h:431
libetonyek::IWORKShadow::m_glossiness
double m_glossiness
Definition IWORKTypes.h:337
libetonyek::IWORKShadow::m_visible
bool m_visible
Definition IWORKTypes.h:334
libetonyek::IWORKShadow::m_angle
double m_angle
Definition IWORKTypes.h:336
libetonyek::IWORKShadow::m_radius
double m_radius
Definition IWORKTypes.h:340
libetonyek::IWORKShadow::m_color
IWORKColor m_color
Definition IWORKTypes.h:335
libetonyek::IWORKShadow::m_offset
double m_offset
Definition IWORKTypes.h:338
libetonyek::IWORKShadow::m_opacity
double m_opacity
Definition IWORKTypes.h:339
libetonyek::IWORKShadow::IWORKShadow
IWORKShadow()
Definition IWORKTypes.cpp:257
libetonyek::IWORKSize
Definition IWORKTypes.h:45
libetonyek::IWORKSize::m_height
double m_height
Definition IWORKTypes.h:47
libetonyek::IWORKSize::IWORKSize
IWORKSize()
Definition IWORKTypes.cpp:17
libetonyek::IWORKSize::m_width
double m_width
Definition IWORKTypes.h:46
libetonyek::IWORKStroke::m_pattern
IWORKPattern m_pattern
Definition IWORKTypes.h:285
libetonyek::IWORKStroke::m_cap
IWORKLineCap m_cap
Definition IWORKTypes.h:284
libetonyek::IWORKStroke::m_join
IWORKLineJoin m_join
Definition IWORKTypes.h:283
libetonyek::IWORKStroke::IWORKStroke
IWORKStroke()
Definition IWORKTypes.cpp:222
libetonyek::IWORKStroke::m_width
double m_width
Definition IWORKTypes.h:281
libetonyek::IWORKStroke::m_color
IWORKColor m_color
Definition IWORKTypes.h:282
libetonyek::IWORKTabStop::IWORKTabStop
IWORKTabStop()
Definition IWORKTypes.cpp:88
libetonyek::IWORKTabStop::m_pos
double m_pos
Definition IWORKTypes.h:113
libetonyek::IWORKTabStop::m_align
IWORKTabulationType m_align
Definition IWORKTypes.h:112
libetonyek::IWORKTableCell::IWORKTableCell
IWORKTableCell()
Definition IWORKTypes.cpp:184
libetonyek::IWORKTableCell::m_maxXBorder
IWORKTableVector m_maxXBorder
Definition IWORKTypes.h:237
libetonyek::IWORKTableCell::m_maxYBorder
IWORKTableVector m_maxYBorder
Definition IWORKTypes.h:237
libetonyek::IWORKTableCell::m_preferredHeight
boost::optional< double > m_preferredHeight
Definition IWORKTypes.h:236
libetonyek::IWORKTableCell::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:235
libetonyek::IWORKTableCell::m_minXBorder
IWORKTableVector m_minXBorder
Definition IWORKTypes.h:237
libetonyek::IWORKTableCell::m_minYBorder
IWORKTableVector m_minYBorder
Definition IWORKTypes.h:237
libetonyek::IWORKTableData::m_horizontalLines
IWORKGridLineMap_t m_horizontalLines
Definition IWORKTypes.h:260
libetonyek::IWORKTableData::m_numColumns
unsigned m_numColumns
Definition IWORKTypes.h:250
libetonyek::IWORKTableData::m_rowSpan
boost::optional< unsigned > m_rowSpan
Definition IWORKTypes.h:254
libetonyek::IWORKTableData::m_row
unsigned m_row
Definition IWORKTypes.h:249
libetonyek::IWORKTableData::m_positionToVerticalLineMap
std::unordered_map< double, unsigned > m_positionToVerticalLineMap
Definition IWORKTypes.h:263
libetonyek::IWORKTableData::m_verticalLines
IWORKGridLineMap_t m_verticalLines
Definition IWORKTypes.h:261
libetonyek::IWORKTableData::m_formulaHC
boost::optional< unsigned > m_formulaHC
Definition IWORKTypes.h:259
libetonyek::IWORKTableData::m_cellMove
boost::optional< unsigned > m_cellMove
Definition IWORKTypes.h:255
libetonyek::IWORKTableData::m_positionToHorizontalLineMap
std::unordered_map< double, unsigned > m_positionToHorizontalLineMap
Definition IWORKTypes.h:262
libetonyek::IWORKTableData::m_columnSpan
boost::optional< unsigned > m_columnSpan
Definition IWORKTypes.h:253
libetonyek::IWORKTableData::m_column
unsigned m_column
Definition IWORKTypes.h:248
libetonyek::IWORKTableData::m_formula
IWORKFormulaPtr_t m_formula
Definition IWORKTypes.h:258
libetonyek::IWORKTableData::m_dateTime
boost::optional< IWORKDateTimeData > m_dateTime
Definition IWORKTypes.h:257
libetonyek::IWORKTableData::IWORKTableData
IWORKTableData()
Definition IWORKTypes.cpp:194
libetonyek::IWORKTableData::m_type
IWORKCellType m_type
Definition IWORKTypes.h:265
libetonyek::IWORKTableData::m_content
boost::optional< std::string > m_content
Definition IWORKTypes.h:256
libetonyek::IWORKTableData::m_numRows
unsigned m_numRows
Definition IWORKTypes.h:251
libetonyek::IWORKTableData::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:264
libetonyek::IWORKTableData::m_rowSizes
IWORKRowSizes_t m_rowSizes
Definition IWORKTypes.h:246
libetonyek::IWORKTableData::m_columnSizes
IWORKColumnSizes_t m_columnSizes
Definition IWORKTypes.h:245
libetonyek::IWORKTableVector
Definition IWORKTypes.h:222
libetonyek::IWORKTableVector::m_beginCell
boost::optional< unsigned > m_beginCell
Definition IWORKTypes.h:226
libetonyek::IWORKTableVector::m_along
boost::optional< double > m_along
Definition IWORKTypes.h:225
libetonyek::IWORKTableVector::m_axis
boost::optional< unsigned > m_axis
Definition IWORKTypes.h:224
libetonyek::IWORKTableVector::m_style
IWORKStylePtr_t m_style
Definition IWORKTypes.h:228
libetonyek::IWORKTableVector::IWORKTableVector
IWORKTableVector()
Definition IWORKTypes.cpp:175
libetonyek::IWORKTableVector::m_endCell
boost::optional< unsigned > m_endCell
Definition IWORKTypes.h:227
libetonyek::IWORKTextLabelFormat
Definition IWORKTypes.h:454
libetonyek::IWORKTextLabelFormat::m_format
IWORKLabelNumFormat m_format
Definition IWORKTypes.h:458
libetonyek::IWORKTextLabelFormat::m_suffix
IWORKLabelNumFormatSurrounding m_suffix
Definition IWORKTypes.h:459
libetonyek::IWORKTextLabelFormat::m_prefix
IWORKLabelNumFormatSurrounding m_prefix
Definition IWORKTypes.h:457
libetonyek::IWORKTextLabelFormat::IWORKTextLabelFormat
IWORKTextLabelFormat()
Definition IWORKTypes.cpp:370
libetonyek::IWORKTextLabel::m_tiered
bool m_tiered
Definition IWORKTypes.h:467
libetonyek::IWORKTextLabel::m_first
unsigned m_first
Definition IWORKTypes.h:468
libetonyek::IWORKTextLabel::IWORKTextLabel
IWORKTextLabel()
Definition IWORKTypes.cpp:377
libetonyek::IWORKTextLabel::m_format
IWORKTextLabelFormat m_format
Definition IWORKTypes.h:466
libetonyek::IWORKWrap::IWORKWrap
IWORKWrap()
Definition IWORKTypes.cpp:150
libetonyek::IWORKWrap::m_path
IWORKPathPtr_t m_path
Definition IWORKTypes.h:188
libetonyek::IWORKWrap::m_geometry
IWORKGeometryPtr_t m_geometry
Definition IWORKTypes.h:189