Go to the documentation of this file.
10 #ifndef IWAPARSER_H_INCLUDED
11 #define IWAPARSER_H_INCLUDED
18 #include <unordered_map>
20 #include <boost/optional.hpp>
21 #include <boost/variant.hpp>
23 #if defined(__GNUC__) && !defined(__clang__)
24 #pragma GCC diagnostic push
25 #pragma GCC diagnostic ignored "-Weffc++"
27 #include <mdds/flat_segment_tree.hpp>
28 #if defined(__GNUC__) && !defined(__clang__)
29 #pragma GCC diagnostic pop
45 class IWORKPropertyMap;
71 operator bool()
const;
109 bool parseText(
unsigned id,
bool createNoteAsFootnote=
true,
const std::function<
void(
unsigned,
IWORKStylePtr_t)> &openPageSpan=
nullptr);
141 boost::variant<IWORKNumberFormat,IWORKDateTimeFormat,IWORKDurationFormat>
m_format;
155 mdds::flat_segment_tree<unsigned, float>
m_sizes;
159 typedef std::map<unsigned, boost::variant<std::string, unsigned, IWORKFormulaPtr_t, Format> >
DataList_t;
187 void queryObject(
unsigned id,
unsigned &
type, boost::optional<IWAMessage> &msg)
const;
TableHeader m_columnHeader
Definition: IWAParser.h:172
IWORKImageType m_type
Definition: IWORKTypes.h:150
static void readPadding(const IWAMessage &msg, IWORKPadding &padding)
Definition: IWAParser.cpp:534
KEY1TableElement::TableData & m_table
Definition: KEY1TableElement.cpp:157
double m_inflection
Definition: IWORKTypes.h:295
IWORKTextLabelFormat m_format
Definition: IWORKTypes.h:448
static boost::optional< unsigned > readRef(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:245
@ IWORK_CELL_NUMBER_TYPE_SCIENTIFIC
Definition: IWORKEnum.h:94
void queryObject(const unsigned id, unsigned &type, boost::optional< IWAMessage > &msg) const
Definition: IWAObjectIndex.cpp:123
@ Headers
Definition: IWAObjectType.h:53
@ GridLine
Definition: IWAObjectType.h:58
@ name
Definition: IWORKToken.h:585
const IWAMessageField & message(std::size_t field) const
Definition: IWAField.cpp:70
@ column
Definition: IWORKToken.h:156
@ GraphicStyle
Definition: IWAObjectType.h:35
void setSections(const std::map< unsigned, IWORKStylePtr_t > §ions)
Definition: IWAText.cpp:63
void setAttachments(const std::multimap< unsigned, std::function< void(unsigned, bool &)> > &attachments)
Definition: IWAText.cpp:98
@ size
Definition: IWORKToken.h:402
@ Comment
Definition: IWAObjectType.h:46
void parseCustomFormat(unsigned id)
Definition: IWAParser.cpp:3093
@ end
Definition: IWORKToken.h:193
void parseComment(unsigned id)
Definition: IWAParser.cpp:2367
IWORKStylePtr_t m_style
Definition: IWORKPropertyMapElement.cpp:172
Definition: IWORKBezierElement.cpp:21
@ Text
Definition: IWAObjectType.h:24
Definition: IWORKTypes.h:339
@ SectionStyle
Definition: IWAObjectType.h:34
Definition: IWORKTypes.h:278
@ attachment
Definition: IWORKToken.h:104
@ IWORK_LINE_CAP_ROUND
Definition: IWORKEnum.h:69
boost::optional< IWORKSize > m_size
Definition: IWORKTypes.h:151
boost::optional< IWORKColor > queryFileColor(unsigned id) const
Definition: IWAObjectIndex.cpp:228
bool m_isSpline
Definition: IWORKPath.h:95
static boost::optional< IWORKColor > readColor(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:289
Definition: IWORKLanguageManager.h:24
@ IWORK_ALIGNMENT_RIGHT
Definition: IWORKEnum.h:19
void startLevel()
Definition: IWORKCollector.cpp:598
@ h
Definition: IWORKToken.h:557
@ TabularInfo
Definition: IWAObjectType.h:47
double m_offset
Definition: IWORKTypes.h:320
std::shared_ptr< IWORKTableNameMap_t > IWORKTableNameMapPtr_t
Definition: IWORKTypes_fwd.h:34
IWORKTableNameMapPtr_t m_tableNameMap
Definition: IWAParser.h:133
void collectHeader(const std::string &name)
Definition: IWORKCollector.cpp:481
@ ConnectionLine
Definition: IWAObjectType.h:43
static void readStroke(const IWAMessage &msg, IWORKStroke &stroke)
Definition: IWAParser.cpp:357
@ Image
Definition: IWAObjectType.h:40
IWORKStylePtr_t m_style
Definition: IWAParser.h:147
@ IWORK_ALIGNMENT_AUTOMATIC
Definition: IWORKEnum.h:22
@ IWORK_LABEL_NUM_FORMAT_ROMAN
Definition: IWORKEnum.h:132
static void readShadow(const IWAMessage &msg, IWORKShadow &shadow)
Definition: IWAParser.cpp:516
TableHeader m_rowHeader
Definition: IWAParser.h:173
@ NoteStart
Definition: IWAObjectType.h:26
@ CellStyle
Definition: IWAObjectType.h:51
@ Note
Definition: IWAObjectType.h:27
@ Group
Definition: IWAObjectType.h:42
std::shared_ptr< TableInfo > m_currentTable
Definition: IWAParser.h:245
@ empty
Definition: IWORKToken.h:664
DataList_t m_formulaList
Definition: IWAParser.h:178
IWAParser(const IWAParser &)
@ CharacterStyle
Definition: IWAObjectType.h:31
@ comment
Definition: IWORKToken.h:160
@ w
Definition: IWORKToken.h:638
@ padding
Definition: IWORKToken.h:349
boost::optional< unsigned > getObjectType(const unsigned id) const
Definition: IWAObjectIndex.cpp:141
@ IWORK_CELL_TYPE_TEXT
Definition: IWORKEnum.h:82
const IWORKStylePtr_t queryTableStyle(unsigned id) const
Definition: IWAParser.cpp:980
bool parseImage(const IWAMessage &msg)
Definition: IWAParser.cpp:2288
StyleMap_t m_paraStyles
Definition: IWAParser.h:236
@ pos
Definition: IWORKToken.h:599
@ shape
Definition: IWORKToken.h:401
Definition: IWAParser.h:50
boost::optional< IWORKSize > m_size
Definition: IWORKPath.h:94
std::shared_ptr< IWORKData > IWORKDataPtr_t
Definition: IWORKTypes_fwd.h:49
Definition: IWORKPath.h:29
@ id
Definition: IWORKToken.h:263
virtual ~IWAParser()
Definition: IWAParser.h:58
#define ETONYEK_FALLTHROUGH
Definition: libetonyek_utils.h:42
@ SFTStrokeProperty
Definition: IWORKToken.h:85
const IWORKStylePtr_t queryGraphicStyle(unsigned id) const
Definition: IWAParser.cpp:965
@ fontColor
Definition: IWORKToken.h:219
static boost::optional< T > convert(const char *value)
Definition: IWORKNumberConverter.cpp:20
StyleMap_t m_tableStyles
Definition: IWAParser.h:242
@ style
Definition: IWORKToken.h:421
@ format
Definition: IWORKToken.h:537
@ SFTCellStylePropertyDurationFormat
Definition: IWORKToken.h:57
bool parsePath(const IWAMessage &msg, IWORKPathPtr_t &path)
Definition: IWAParser.cpp:1120
void collectArrowPath(const IWORKSize &size, double headWidth, double stemRelYPos, bool doubleSided)
Definition: IWORKCollector.cpp:397
@ tailAtCenter
Definition: IWORKToken.h:621
const IWORKStylePtr_t queryParagraphStyle(unsigned id) const
Definition: IWAParser.cpp:955
@ formula
Definition: IWORKToken.h:228
const RVNGInputStreamPtr_t queryFile(unsigned id) const
Definition: IWAParser.cpp:240
@ IWORK_LABEL_NUM_FORMAT_ALPHA
Definition: IWORKEnum.h:130
void parseHeaderAndFooter(unsigned id, IWORKPageMaster &hf)
Definition: IWAParser.cpp:2251
boost::optional< IWORKColor > m_fillColor
Definition: IWORKTypes.h:153
void parsePageMaster(unsigned id, PageMaster &pageMaster)
Definition: IWAParser.cpp:2213
bool parseTabularInfo(const IWAMessage &msg)
Definition: IWAParser.cpp:2400
@ columns
Definition: IWORKToken.h:158
const unsigned m_columns
Definition: IWAParser.h:167
@ table
Definition: KEY1Token.h:198
std::deque< unsigned > m_visited
Definition: IWAParser.h:233
@ spacing
Definition: IWORKToken.h:616
@ st
Definition: IWORKToken.h:411
IWORKCollector & m_collector
Definition: IWAParser.h:229
Definition: PAGCollector.h:24
@ Mask
Definition: IWAObjectType.h:41
bool empty() const override
Definition: IWAField.h:113
const IWABoolField & bool_(std::size_t field) const
Definition: IWAMessage.cpp:142
@ tailSize
Definition: IWORKToken.h:624
void setPageMasters(const std::map< unsigned, IWORKStylePtr_t > &pageMasters)
Definition: IWAText.cpp:58
void endGroup()
Definition: IWORKCollector.cpp:550
@ IWORK_GRADIENT_TYPE_LINEAR
Definition: IWORKEnum.h:108
boost::optional< unsigned > getObjectType(unsigned id) const
Definition: IWAParser.cpp:235
DataList_t m_simpleTextList
Definition: IWAParser.h:175
#define ETONYEK_DEBUG_MSG(M)
Definition: libetonyek_utils.h:54
friend const IWAMessage & get(const ObjectMessage &msg)
Definition: IWAParser.h:76
std::function< void(unsigned, IWORKStylePtr_t &)> StyleParseFun_t
Definition: IWAParser.h:90
@ IWORK_LABEL_NUM_FORMAT_SURROUNDING_DOT
Definition: IWORKEnum.h:140
Definition: IWORKTypes.h:100
@ IWORK_STROKE_TYPE_SOLID
Definition: IWORKEnum.h:122
@ data
Definition: IWORKToken.h:178
const boost::optional< value_type > optional() const
Definition: IWAField.h:159
void parseCharacterProperties(const IWAMessage &msg, IWORKPropertyMap &props)
Definition: IWAParser.cpp:2130
IWORKVerticalAlignment
Definition: IWORKEnum.h:113
void collectPolygonPath(const IWORKSize &size, unsigned edges)
Definition: IWORKCollector.cpp:379
void setLists(const std::map< unsigned, IWORKStylePtr_t > &lists)
Definition: IWAText.cpp:93
Definition: IWORKTypes.h:90
@ IWORK_ALIGNMENT_CENTER
Definition: IWORKEnum.h:20
@ none
Definition: IWORKToken.h:674
Definition: IWAObjectIndex.h:27
Definition: IWORKTypes.h:62
@ CommentField
Definition: IWAObjectType.h:29
StyleMap_t m_sectionStyles
Definition: IWAParser.h:237
~ObjectMessage()
Definition: IWAParser.cpp:205
std::deque< IWORKTabStop > IWORKTabStops_t
Definition: IWORKTypes.h:119
void setParagraphs(const std::map< unsigned, IWORKStylePtr_t > ¶s)
Definition: IWAText.cpp:68
void endLevel()
Definition: IWORKCollector.cpp:619
@ stroke
Definition: IWORKToken.h:419
@ CELL_TYPE_BODY
Definition: IWORKTable.h:55
std::shared_ptr< IWORKTable > m_table
Definition: IWAParser.h:165
uint8_t readU8(const RVNGInputStreamPtr_t &input, bool)
Definition: libetonyek_utils.cpp:48
StyleMap_t m_cellStyles
Definition: IWAParser.h:241
DataList_t m_formatList
Definition: IWAParser.h:179
static boost::optional< IWORKSize > readSize(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:278
bool readFill(const IWAMessage &msg, IWORKFill &fill)
Definition: IWAParser.cpp:424
static std::deque< unsigned > readRefs(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:252
@ attachments
Definition: IWORKToken.h:106
@ IWORK_STROKE_TYPE_NONE
Definition: IWORKEnum.h:121
@ IWORK_VERTICAL_ALIGNMENT_BOTTOM
Definition: IWORKEnum.h:116
@ IWORK_CELL_NUMBER_TYPE_FRACTION
Definition: IWORKEnum.h:92
@ IWORK_LABEL_NUM_FORMAT_ROMAN_LOWERCASE
Definition: IWORKEnum.h:133
void collectMedia(const IWORKMediaContentPtr_t &content, const IWORKGeometryPtr_t &cropGeometry=IWORKGeometryPtr_t(), const boost::optional< int > &order=boost::none)
Definition: IWORKCollector.cpp:441
IWORKColor m_color
Definition: IWORKTypes.h:317
std::shared_ptr< IWORKMediaContent > IWORKMediaContentPtr_t
Definition: IWORKTypes_fwd.h:54
TableInfo(const std::shared_ptr< IWORKTable > &table, unsigned columns, unsigned rows)
Definition: IWAParser.cpp:133
void parseTableGridLine(unsigned id, IWORKGridLineMap_t &gridLines)
Definition: IWAParser.cpp:2944
@ IWORK_VERTICAL_ALIGNMENT_MIDDLE
Definition: IWORKEnum.h:115
@ ListStyle
Definition: IWAObjectType.h:33
const IWORKStylePtr_t queryListStyle(unsigned id) const
Definition: IWAParser.cpp:985
void collectCalloutPath(const IWORKSize &size, double radius, double tailSize, double tailX, double tailY, bool quoteBubble)
Definition: IWORKCollector.cpp:428
@ _1
Definition: IWORKToken.h:649
const unsigned m_columns
Definition: IWORKTableRecorder.cpp:50
@ grid
Definition: IWORKToken.h:244
std::map< unsigned, boost::variant< std::string, unsigned, IWORKFormulaPtr_t, Format > > DataList_t
Definition: IWAParser.h:159
const IWAUInt32Field & uint32(std::size_t field) const
Definition: IWAMessage.cpp:122
void clear()
Clear property.
Definition: IWORKPropertyMap.h:145
@ IWORK_VERTICAL_ALIGNMENT_TOP
Definition: IWORKEnum.h:114
@ n
Definition: IWORKToken.h:333
void parseColumnsProperties(const IWAMessage &msg, IWORKPropertyMap &props)
Definition: IWAParser.cpp:2170
@ rows
Definition: IWORKToken.h:392
void collectTable(const std::shared_ptr< IWORKTable > &table)
Definition: IWORKCollector.cpp:491
Definition: IWAField.h:223
@ TableStyle
Definition: IWAObjectType.h:50
Definition: IWORKPath.h:88
Definition: IWORKTypes.h:111
const IWAMessage & get() const
Definition: IWAParser.cpp:220
@ SFTCellStylePropertyDateTimeFormat
Definition: IWORKToken.h:56
@ CELL_TYPE_ROW_FOOTER
Definition: IWORKTable.h:59
bool m_visible
Definition: IWORKTypes.h:316
@ count
Definition: IWORKToken.h:522
@ start
Definition: IWORKToken.h:412
@ SFTCellStylePropertyNumberFormat
Definition: IWORKToken.h:58
void setSpans(const std::map< unsigned, IWORKStylePtr_t > &spans)
Definition: IWAText.cpp:73
@ s
Definition: IWORKToken.h:394
virtual std::shared_ptr< IWORKTable > createTable(const IWORKTableNameMapPtr_t &tableNameMap, const IWORKLanguageManager &langManager) const
Definition: IWORKCollector.cpp:588
double readDouble(const RVNGInputStreamPtr_t &input)
Definition: libetonyek_utils.cpp:162
@ first
Definition: IWORKToken.h:531
void setLinks(const std::map< unsigned, std::string > &links)
Definition: IWAText.cpp:83
const IWAStringField & string(std::size_t field) const
Definition: IWAMessage.cpp:157
@ g
Definition: IWORKToken.h:235
@ cornerRadius
Definition: IWORKToken.h:520
@ IWORK_CELL_NUMBER_TYPE_DOUBLE
Definition: IWORKEnum.h:91
StyleMap_t m_charStyles
Definition: IWAParser.h:235
bool parseDrawableShape(const IWAMessage &msg, bool isConnectionLine=false)
Definition: IWAParser.cpp:1216
Definition: IWAParser.h:145
const IWORKStylePtr_t queryMediaStyle(unsigned id) const
Definition: IWAParser.cpp:970
@ ShapeField
Definition: IWAObjectType.h:25
PageMaster()
Definition: IWAParser.cpp:121
const unsigned m_id
Definition: IWAParser.h:84
@ IWORK_IMAGE_TYPE_SCALE_TO_FIT
Definition: IWORKEnum.h:103
@ header
Definition: IWORKToken.h:256
bool parseGroup(const IWAMessage &msg)
Definition: IWAParser.cpp:1487
std::shared_ptr< IWORKFormula > IWORKFormulaPtr_t
Definition: IWORKTypes.h:123
@ PageField
Definition: IWAObjectType.h:39
virtual bool parseShapePlacement(const IWAMessage &msg, IWORKGeometryPtr_t &geometry, boost::optional< unsigned > &flags)
Definition: IWAParser.cpp:1506
void parseLink(unsigned id, std::string &url)
Definition: IWAParser.cpp:3412
void parseTile(unsigned id)
Definition: IWAParser.cpp:2651
@ string
Definition: IWORKToken.h:418
bool parseArrowProperties(const IWAMessage &msg, IWORKPropertyMap &props, bool headArrow)
Definition: IWAParser.cpp:1087
DataList_t m_commentList
Definition: IWAParser.h:180
@ val
Definition: IWORKToken.h:630
bool parseFormat(const IWAMessage &msg, Format &format)
Definition: IWAParser.cpp:2980
const IWABoolField & bool_(std::size_t field) const
Definition: IWAField.cpp:50
const std::deque< value_type > repeated() const
Definition: IWAField.h:153
DataList_t m_cellStyleList
Definition: IWAParser.h:176
@ IWORK_LABEL_NUM_FORMAT_SURROUNDING_PARENTHESIS
Definition: IWORKEnum.h:139
StyleMap_t m_graphicStyles
Definition: IWAParser.h:239
void parseSectionStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1690
IWORKLabelNumFormatSurrounding m_prefix
Definition: IWORKTypes.h:439
virtual std::shared_ptr< IWORKText > createText(const IWORKLanguageManager &langManager, bool discardEmptyContent=false, bool allowListInsertion=true) const
Definition: IWORKCollector.cpp:593
@ listStyle
Definition: IWORKToken.h:312
bool approxEqual(const IWORKPath &left, const IWORKPath &right, double eps=ETONYEK_EPSILON)
static void readGradient(const IWAMessage &msg, IWORKGradient &gradient)
Definition: IWAParser.cpp:483
const IWAMessageField & message(std::size_t field) const
Definition: IWAMessage.cpp:167
@ path
Definition: IWORKToken.h:365
unsigned long getLength(const RVNGInputStreamPtr_t &input)
Definition: libetonyek_utils.cpp:184
static boost::optional< uint64_t > readUID(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:300
@ offset
Definition: IWORKToken.h:594
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition: IWORKPath_fwd.h:20
@ TabularModel
Definition: IWAObjectType.h:48
void collectRoundedRectanglePath(const IWORKSize &size, double radius)
Definition: IWORKCollector.cpp:388
boost::optional< IWORKPosition > m_endPoint
Definition: IWORKTypes.h:96
IWORKCellNumberType
Definition: IWORKEnum.h:89
void parse()
Definition: IWAObjectIndex.cpp:57
StyleMap_t m_mediaStyles
Definition: IWAParser.h:240
@ IWORK_CELL_TYPE_DURATION
Definition: IWORKEnum.h:84
Definition: IWORKTypes.h:195
const IWAFloatField & float_(std::size_t field) const
Definition: IWAField.cpp:80
Definition: IWORKTypes.h:341
Definition: IWORKTypes.h:290
void parseParagraphStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1591
void parseGraphicStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1714
mdds::flat_segment_tree< unsigned, IWORKStylePtr_t > IWORKGridLine_t
Definition: IWORKTypes.h:121
void put(const typename IWORKPropertyInfo< Property >::ValueType &value)
Insert a new value for key key.
Definition: IWORKPropertyMap.h:134
IWAParser & m_parser
Definition: IWAParser.h:82
@ Tile
Definition: IWAObjectType.h:49
@ PageMaster
Definition: IWAObjectType.h:60
void parseTableHeaders(unsigned id, TableHeader &header)
Definition: IWAParser.cpp:2898
@ c
Definition: IWORKToken.h:516
Definition: IWORKTypes.h:149
std::map< uint64_t, Format > m_uidFormatMap
Definition: IWAParser.h:246
@ value
Definition: IWORKToken.h:631
void parseCellStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1846
@ IWORK_LINE_JOIN_MITER
Definition: IWORKEnum.h:75
@ IWORK_CELL_TYPE_NUMBER
Definition: IWORKEnum.h:81
@ IWORK_STROKE_TYPE_DASHED
Definition: IWORKEnum.h:123
@ GridLines
Definition: IWAObjectType.h:57
const IWAFloatField & float_(std::size_t field) const
Definition: IWAMessage.cpp:177
bool m_headerFootersSameAsPrevious
Definition: IWAParser.h:148
void parseMediaStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1806
void collectConnectionPath(const IWORKConnectionPath &path)
Definition: IWORKCollector.cpp:419
void collectBezier(const IWORKPathPtr_t &path)
Definition: IWORKCollector.cpp:285
void parseTableStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1929
double m_opacity
Definition: IWORKTypes.h:321
@ flags
Definition: IWORKToken.h:534
const unsigned m_rows
Definition: IWAParser.h:168
@ DataList
Definition: IWAObjectType.h:52
boost::optional< IWORKPosition > m_positions[3]
Definition: IWORKPath.h:93
Definition: IWAMessage.h:22
void parseMask(unsigned id, IWORKGeometryPtr_t &geometry, IWORKPathPtr_t &path)
Definition: IWAParser.cpp:1549
void updateGeometryUsingTextRef(unsigned id, IWORKGeometry &geometry, unsigned flags)
Definition: IWAParser.cpp:579
@ type
Definition: IWORKToken.h:493
DataList_t m_formattedTextList
Definition: IWAParser.h:177
boost::optional< double > m_width
Definition: IWORKStrokeContext.cpp:229
Definition: IWAField.h:74
@ index
Definition: IWORKToken.h:571
void queryObject(unsigned id, unsigned &type, boost::optional< IWAMessage > &msg) const
Definition: IWAParser.cpp:230
Definition: IWORKTypes.h:300
double y
Definition: IWORKShape.cpp:47
@ IWORK_CELL_TYPE_DATE_TIME
Definition: IWORKEnum.h:83
Definition: IWORKCollector.h:42
StyleMap_t m_listStyles
Definition: IWAParser.h:243
Definition: IWORKTypes.h:358
@ text
Definition: IWORKToken.h:472
container_type::const_iterator const_iterator
Definition: IWAField.h:81
IWORKLanguageManager m_langManager
Definition: IWAParser.h:132
bool dispatchShapeWithMessage(const IWAMessage &msg, unsigned type)
Definition: IWAParser.cpp:550
Definition: IWORKTypes.h:45
@ StickyNote
Definition: IWAObjectType.h:30
static std::deque< uint64_t > readUIDs(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:310
std::string m_footer
Definition: IWORKTypes.h:362
@ align
Definition: IWORKToken.h:509
void startGroup()
Definition: IWORKCollector.cpp:539
void parseDataList(unsigned id, DataList_t &dataList)
Definition: IWAParser.cpp:2561
const IWORKStylePtr_t queryCellStyle(unsigned id) const
Definition: IWAParser.cpp:975
@ IWORK_IMAGE_TYPE_TILE
Definition: IWORKEnum.h:101
void parseTableGridLines(unsigned id, IWORKGridLineMap_t(&gridLines)[4])
Definition: IWAParser.cpp:2922
IWORKColor m_color
Definition: IWORKTypes.h:293
IWORKCellType
Definition: IWORKEnum.h:80
double x
Definition: IWORKShape.cpp:46
@ IWORK_TABULATION_LEFT
Definition: IWORKEnum.h:153
IWORKDataPtr_t m_data
Definition: IWORKTypes.h:152
@ col
Definition: IWORKToken.h:154
boost::variant< IWORKColor, IWORKGradient, IWORKMediaContent > IWORKFill
Definition: IWORKTypes.h:309
const unsigned m_rows
Definition: IWORKTableRecorder.cpp:51
@ IWORK_ALIGNMENT_LEFT
Definition: IWORKEnum.h:18
#define ETONYEK_NUM_ELEMENTS(array)
Definition: libetonyek_utils.h:29
bool m_tiered
Definition: IWORKTypes.h:449
@ point
Definition: IWORKToken.h:373
unsigned getType() const
Definition: IWAParser.cpp:225
@ IWORK_IMAGE_TYPE_ORIGINAL_SIZE
Definition: IWORKEnum.h:99
@ CELL_TYPE_ROW_HEADER
Definition: IWORKTable.h:58
@ IWORK_IMAGE_TYPE_STRETCH
Definition: IWORKEnum.h:100
std::unordered_map< std::string, std::string > IWORKTableNameMap_t
Definition: IWORKTypes_fwd.h:32
void collectGeometry(const IWORKGeometryPtr_t &geometry)
Definition: IWORKCollector.cpp:267
void parseAuthorInComment(unsigned id)
Definition: IWAParser.cpp:2342
bool parseText(unsigned id, bool createNoteAsFootnote=true, const std::function< void(unsigned, IWORKStylePtr_t)> &openPageSpan=nullptr)
Definition: IWAParser.cpp:633
@ i
Definition: KEY2Token.h:101
Represents a (hierarchical) property map.
Definition: IWORKPropertyMap.h:25
void parse(IWORKText &collector, const std::function< void(unsigned, IWORKStylePtr_t)> &openPageSpan=nullptr)
Definition: IWAText.cpp:103
@ bezier
Definition: IWORKToken.h:112
@ TextRef
Definition: IWAObjectType.h:55
void collectFooter(const std::string &name)
Definition: IWORKCollector.cpp:486
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:41
double deg2rad(double value)
Convert an angle from degrees to radians.
Definition: libetonyek_utils.cpp:230
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
@ MediaStyle
Definition: IWAObjectType.h:44
@ IWORK_ALIGNMENT_JUSTIFY
Definition: IWORKEnum.h:21
std::map< unsigned, IWORKStylePtr_t > IWORKListLevels_t
Definition: IWORKTypes.h:459
@ IWORK_GRADIENT_TYPE_RADIAL
Definition: IWORKEnum.h:109
Definition: IWORKTypes.h:313
@ IWORK_LABEL_NUM_FORMAT_ALPHA_LOWERCASE
Definition: IWORKEnum.h:131
@ IWORK_IMAGE_TYPE_SCALE_TO_FILL
Definition: IWORKEnum.h:102
@ row
Definition: IWORKToken.h:390
@ AuthorStorage
Definition: IWAObjectType.h:21
void setGraphicStyle(const IWORKStylePtr_t &style)
Definition: IWORKCollector.cpp:247
IWORKStylePtr_t m_style
Definition: IWAParser.h:170
std::string m_header
Definition: IWORKTypes.h:361
void collectStarPath(const IWORKSize &size, unsigned points, double innerRadius)
Definition: IWORKCollector.cpp:410
boost::optional< ID_t > m_id
Definition: IWORKLineEndElement.cpp:34
bool parse()
Definition: IWAParser.cpp:169
@ content
Definition: IWORKToken.h:167
@ bullets
Definition: KEY1Token.h:43
const ValueT & get_optional_value_or(const detail::IWAFieldImpl< TagV, ValueT, Reader > &field, const ValueT &value)
Definition: IWAField.h:196
@ IWORK_CELL_TYPE_BOOL
Definition: IWORKEnum.h:85
void parseListStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1973
IWAParser & operator=(const IWAParser &)
Definition: IWORKTypes.h:53
uint32_t readU32(const RVNGInputStreamPtr_t &input, bool bigEndian)
Definition: libetonyek_utils.cpp:76
@ DrawableShape
Definition: IWAObjectType.h:28
void closeGroup()
Definition: IWORKCollector.cpp:576
@ geometry
Definition: IWORKToken.h:236
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libetonyek_utils.h:82
virtual bool parseStickyNote(const IWAMessage &msg)
Definition: IWAParser.cpp:1210
@ gradient
Definition: KEY1Token.h:58
boost::optional< IWORKGradientType > m_type
Definition: IWORKFillElement.cpp:132
void openGroup()
Definition: IWORKCollector.cpp:563
Format m_format
Definition: EtonyekDocument.cpp:79
@ IWORK_CELL_NUMBER_TYPE_PERCENTAGE
Definition: IWORKEnum.h:93
void parseObjectIndex()
Definition: IWAParser.cpp:1562
@ IWORK_LINE_JOIN_ROUND
Definition: IWORKEnum.h:76
Definition: IWAParser.h:66
@ CELL_TYPE_COLUMN_HEADER
Definition: IWORKTable.h:57
const ValueT & get(const detail::IWAFieldImpl< TagV, ValueT, Reader > &field)
Definition: IWAField.h:190
IWORKLabelNumFormat m_format
Definition: IWORKTypes.h:440
const IWORKStylePtr_t queryCharacterStyle(unsigned id) const
Definition: IWAParser.cpp:950
const IWAUInt32Field & uint32(std::size_t field) const
Definition: IWAField.cpp:30
boost::optional< IWAMessage > m_message
Definition: IWAParser.h:83
static boost::optional< IWORKPosition > readPosition(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:267
Definition: IWORKTypes.h:445
void collectShape(const boost::optional< int > &order=boost::none, const boost::optional< unsigned > &resizeFlags=boost::none, bool locked=false)
Definition: IWORKCollector.cpp:337
static boost::optional< std::string > readUUID(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:322
@ IWORK_LINE_CAP_BUTT
Definition: IWORKEnum.h:68
Definition: IWORKTypes.h:79
@ color
Definition: IWORKToken.h:155
IWAObjectIndex m_index
Definition: IWAParser.h:231
const IWAStringField & string(std::size_t field) const
Definition: IWAField.cpp:65
bool parseAttachment(unsigned id)
Definition: IWAParser.cpp:990
@ level
Definition: KEY1Token.h:158
@ IWORK_CELL_NUMBER_TYPE_CURRENCY
Definition: IWORKEnum.h:90
@ HeadersAndFooters
Definition: IWAObjectType.h:62
@ CELL_TYPE_ALTERNATE_BODY
Definition: IWORKTable.h:56
std::map< unsigned, IWORKStylePtr_t > StyleMap_t
Definition: IWAParser.h:89
ObjectMessage(IWAParser &parser, unsigned id, unsigned type=0)
Definition: IWAParser.cpp:175
const IWORKStylePtr_t queryStyle(unsigned id, StyleMap_t &styleMap, StyleParseFun_t parse) const
Definition: IWAParser.cpp:937
bool parseFormula(const IWAMessage &msg, IWORKFormulaPtr_t &formula)
Definition: IWAParser.cpp:3119
bool dispatchShape(unsigned id)
Definition: IWAParser.cpp:542
boost::optional< std::string > m_path
Definition: IWORKTypes.h:95
void collectText(const std::shared_ptr< IWORKText > &text)
Definition: IWORKCollector.cpp:505
@ fill
Definition: IWORKToken.h:204
void setListLevels(const std::map< unsigned, unsigned > &levels)
Definition: IWAText.cpp:88
Represents a hierarchical style.
Definition: IWORKStyle.h:29
Definition: IWAParser.h:162
double m_angle
Definition: IWORKTypes.h:318
std::size_t size() const override
Definition: IWAField.h:118
virtual bool parseDocument()=0
Definition: IWORKTypes.h:424
void parseCharacterStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1567
@ IWORK_LABEL_NUM_FORMAT_NUMERIC
Definition: IWORKEnum.h:129
@ tabs
Definition: IWORKToken.h:429
@ layout
Definition: IWORKToken.h:294
@ Link
Definition: IWAObjectType.h:37
@ SFTTableBandedRowsProperty
Definition: IWORKToken.h:86
IWORKLabelNumFormatSurrounding m_suffix
Definition: IWORKTypes.h:441
@ CustomDateTimeFormat
Definition: IWAObjectType.h:22
const RVNGInputStreamPtr_t queryFile(unsigned id) const
Definition: IWAObjectIndex.cpp:152
void setLanguages(const std::map< unsigned, std::string > &langs)
Definition: IWAText.cpp:78
unsigned m_type
Definition: IWAParser.h:85
std::shared_ptr< IWORKText > m_currentText
Definition: IWAParser.h:134
const IWORKStylePtr_t querySectionStyle(unsigned id) const
Definition: IWAParser.cpp:960
void collectBezierPath()
Definition: IWORKCollector.cpp:374
std::map< unsigned, IWORKGridLine_t > IWORKGridLineMap_t
Definition: IWORKTypes.h:122
@ ParagraphStyle
Definition: IWAObjectType.h:32
Definition: IWORKOutputElements.h:33
double m_fraction
Definition: IWORKTypes.h:294
void parseTabularModel(unsigned id)
Definition: IWAParser.cpp:2412
@ position
Definition: IWORKToken.h:375
uint16_t readU16(const RVNGInputStreamPtr_t &input, bool bigEndian)
Definition: libetonyek_utils.cpp:60
Generated for libetonyek by
doxygen 1.8.20