IWAParser.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 IWAPARSER_H_INCLUDED
11 #define IWAPARSER_H_INCLUDED
12
13 #include <deque>
14 #include <functional>
15 #include <map>
16 #include <memory>
17 #include <string>
18 #include <unordered_map>
19
20 #include <boost/optional.hpp>
21 #include <boost/variant.hpp>
22
23 #if defined(__GNUC__) && !defined(__clang__)
24 #pragma GCC diagnostic push
25 #pragma GCC diagnostic ignored "-Weffc++"
26 #endif
27 #include <mdds/flat_segment_tree.hpp>
28 #if defined(__GNUC__) && !defined(__clang__)
29 #pragma GCC diagnostic pop
30 #endif
31
32 #include "libetonyek_utils.h"
33 #include "IWAMessage.h"
34 #include "IWAObjectIndex.h"
35 #include "IWORKLanguageManager.h"
36 #include "IWORKOutputElements.h"
37 #include "IWORKStyle_fwd.h"
38 #include "IWORKTypes.h"
39
40 namespace libetonyek
41 {
42
43 class IWORKCollector;
44 class IWORKPropertyMap;
45 class IWORKTable;
46 class IWORKText;
47
48 class IWAParser
49 {
50 // disable copying
51 IWAParser(const IWAParser &);
52 IWAParser &operator=(const IWAParser &);
53 public:
54 IWAParser(const RVNGInputStreamPtr_t &fragments, const RVNGInputStreamPtr_t &package, IWORKCollector &collector);
55 virtual ~IWAParser()
56 {
57 }
58
59 bool parse();
60
61 protected:
62 class ObjectMessage
63 {
64 public:
65 ObjectMessage(IWAParser &parser, unsigned id, unsigned type = 0);
66 ~ObjectMessage();
67
68 operator bool() const;
69 const IWAMessage &get() const;
70
71 unsigned getType() const;
72
73 friend const IWAMessage &get(const ObjectMessage &msg)
74 {
75 return msg.get();
76 }
77
78 private:
79 IWAParser &m_parser;
80 boost::optional<IWAMessage> m_message;
81 const unsigned m_id;
82 unsigned m_type;
83 };
84 friend class ObjectMessage;
85
86 typedef std::map<unsigned, IWORKStylePtr_t> StyleMap_t;
87 typedef std::function<void(unsigned, IWORKStylePtr_t &)> StyleParseFun_t;
88
89 protected:
90 static boost::optional<unsigned> readRef(const IWAMessage &msg, unsigned field);
91 static std::deque<unsigned> readRefs(const IWAMessage &msg, unsigned field);
92 static boost::optional<IWORKPosition> readPosition(const IWAMessage &msg, unsigned field);
93 static boost::optional<IWORKSize> readSize(const IWAMessage &msg, unsigned field);
94 static boost::optional<IWORKColor> readColor(const IWAMessage &msg, unsigned field);
95 static void readStroke(const IWAMessage &msg, IWORKStroke &stroke);
96 bool readFill(const IWAMessage &msg, IWORKFill &fill);
97 static void readGradient(const IWAMessage &msg, IWORKGradient &gradient);
98 static void readShadow(const IWAMessage &msg, IWORKShadow &shadow);
99 static void readPadding(const IWAMessage &msg, IWORKPadding &padding);
100
101 bool dispatchShape(unsigned id);
102 bool parseText(unsigned id, const std::function<void(unsigned, IWORKStylePtr_t)> &openPageSpan=nullptr);
103 void parseComment(unsigned id);
104
105 bool parseShapePlacement(const IWAMessage &msg, IWORKGeometryPtr_t &geometry);
106
107 const IWORKStylePtr_t queryCharacterStyle(unsigned id) const;
108 const IWORKStylePtr_t queryParagraphStyle(unsigned id) const;
109 const IWORKStylePtr_t querySectionStyle(unsigned id) const;
110
111 const IWORKStylePtr_t queryGraphicStyle(unsigned id) const;
112 const IWORKStylePtr_t queryMediaStyle(unsigned id) const;
113 const IWORKStylePtr_t queryCellStyle(unsigned id) const;
114 const IWORKStylePtr_t queryTableStyle(unsigned id) const;
115 const IWORKStylePtr_t queryListStyle(unsigned id) const;
116
117 const IWORKStylePtr_t queryStyle(unsigned id, StyleMap_t &styleMap, StyleParseFun_t parse) const;
118
119 protected:
120 IWORKLanguageManager m_langManager;
121 std::shared_ptr<IWORKText> m_currentText;
122
123 private:
124 typedef std::map<unsigned, boost::variant<std::string, unsigned> > DataList_t;
125
126 struct PageMaster
127 {
128 PageMaster();
129 IWORKStylePtr_t m_style;
130 bool m_headerFootersSameAsPrevious;
131 };
132
133 struct TableHeader
134 {
135 TableHeader(unsigned count, float defValue=0);
136
137 mdds::flat_segment_tree<unsigned, float> m_sizes;
138 mdds::flat_segment_tree<unsigned, bool> m_hidden;
139 };
140
141 struct TableInfo
142 {
143 TableInfo(const std::shared_ptr<IWORKTable> &table, unsigned columns, unsigned rows);
144
145 std::shared_ptr<IWORKTable> m_table;
146
147 const unsigned m_columns;
148 const unsigned m_rows;
149
150 IWORKStylePtr_t m_style;
151
152 TableHeader m_columnHeader;
153 TableHeader m_rowHeader;
154
155 DataList_t m_simpleTextList;
156 DataList_t m_cellStyleList;
157 DataList_t m_formattedTextList;
158 DataList_t m_commentList;
159 };
160
161 private:
162 virtual bool parseDocument() = 0;
163
164 private:
165 void queryObject(unsigned id, unsigned &type, boost::optional<IWAMessage> &msg) const;
166 const RVNGInputStreamPtr_t queryFile(unsigned id) const;
167
168 void parseObjectIndex();
169
170 void parseCharacterStyle(unsigned id, IWORKStylePtr_t &style);
171 void parseParagraphStyle(unsigned id, IWORKStylePtr_t &style);
172 void parseSectionStyle(unsigned id, IWORKStylePtr_t &style);
173
174 void parseGraphicStyle(unsigned id, IWORKStylePtr_t &style);
175 void parseMediaStyle(unsigned id, IWORKStylePtr_t &style);
176 void parseCellStyle(unsigned id, IWORKStylePtr_t &style);
177 void parseTableStyle(unsigned id, IWORKStylePtr_t &style);
178 void parseListStyle(unsigned id, IWORKStylePtr_t &style);
179
180 void parseHeaderAndFooter(unsigned id, IWORKPageMaster &hf);
181 void parsePageMaster(unsigned id, PageMaster &pageMaster);
182
183 void parseTabularModel(unsigned id);
184 void parseDataList(unsigned id, DataList_t &dataList);
185 void parseTile(unsigned id);
186 void parseTableHeaders(unsigned id, TableHeader &header);
187 void parseTableGridLines(unsigned id, IWORKGridLineMap_t (&gridLines)[4]);
188 void parseTableGridLine(unsigned id, IWORKGridLineMap_t &gridLines);
189
190 void parseLink(unsigned id, std::string &url);
191
192 bool parseAttachment(unsigned id);
193
194 bool parseDrawableShape(const IWAMessage &msg, bool isConnectionLine=false);
195 bool parseGroup(const IWAMessage &msg);
196 bool parseShapePlacement(const IWAMessage &msg);
197 bool parseImage(const IWAMessage &msg);
198 bool parseTabularInfo(const IWAMessage &msg);
199 bool parsePath(const IWAMessage &msg, IWORKPathPtr_t &path);
200
201 bool parseArrowProperties(const IWAMessage &msg, IWORKPropertyMap &props, bool headArrow);
202 void parseCharacterProperties(const IWAMessage &msg, IWORKPropertyMap &props);
203 void parseColumnsProperties(const IWAMessage &msg, IWORKPropertyMap &props);
204
205 private:
206 IWORKCollector &m_collector;
207
208 IWAObjectIndex m_index;
209
210 std::deque<unsigned> m_visited;
211
212 mutable StyleMap_t m_charStyles;
213 mutable StyleMap_t m_paraStyles;
214 mutable StyleMap_t m_sectionStyles;
215
216 mutable StyleMap_t m_graphicStyles;
217 mutable StyleMap_t m_mediaStyles;
218 mutable StyleMap_t m_cellStyles;
219 mutable StyleMap_t m_tableStyles;
220 mutable StyleMap_t m_listStyles;
221
222 IWORKTableNameMapPtr_t m_tableNameMap;
223 std::shared_ptr<TableInfo> m_currentTable;
224 };
225
226 }
227
228 #endif
229
230 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
libetonyek::IWAParser::parseCharacterStyle
void parseCharacterStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1383
IWORKStyle_fwd.h
IWORKLanguageManager.h
libetonyek::IWAParser::~IWAParser
virtual ~IWAParser()
Definition: IWAParser.h:55
libetonyek::IWORKGeometryPtr_t
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition: IWORKTypes_fwd.h:41
libetonyek
Definition: IWORKBezierElement.cpp:20
libetonyek::IWAParser::TableInfo::m_commentList
DataList_t m_commentList
Definition: IWAParser.h:158
libetonyek::IWAParser::TableInfo::m_table
std::shared_ptr< IWORKTable > m_table
Definition: IWAParser.h:145
libetonyek::IWAParser::readColor
static boost::optional< IWORKColor > readColor(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:273
libetonyek::IWORKGradient
Definition: IWORKTypes.h:299
libetonyek::IWAParser::queryParagraphStyle
const IWORKStylePtr_t queryParagraphStyle(unsigned id) const
Definition: IWAParser.cpp:797
libetonyek::IWORKToken::path
Definition: IWORKToken.h:358
libetonyek::IWAParser::m_index
IWAObjectIndex m_index
Definition: IWAParser.h:208
libetonyek::IWAParser::readStroke
static void readStroke(const IWAMessage &msg, IWORKStroke &stroke)
Definition: IWAParser.cpp:284
libetonyek::IWAParser::readRef
static boost::optional< unsigned > readRef(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:229
libetonyek::IWAParser::m_visited
std::deque< unsigned > m_visited
Definition: IWAParser.h:210
libetonyek::IWAParser::queryStyle
const IWORKStylePtr_t queryStyle(unsigned id, StyleMap_t &styleMap, StyleParseFun_t parse) const
Definition: IWAParser.cpp:779
libetonyek::IWORKStroke
Definition: IWORKTypes.h:277
libetonyek::IWAParser::queryTableStyle
const IWORKStylePtr_t queryTableStyle(unsigned id) const
Definition: IWAParser.cpp:822
libetonyek::IWAParser::parseComment
void parseComment(unsigned id)
Definition: IWAParser.cpp:2092
libetonyek::IWAParser::m_paraStyles
StyleMap_t m_paraStyles
Definition: IWAParser.h:213
libetonyek::IWAParser::TableInfo::m_columns
const unsigned m_columns
Definition: IWAParser.h:147
IWORKOutputElements.h
libetonyek::IWAParser::m_currentText
std::shared_ptr< IWORKText > m_currentText
Definition: IWAParser.h:121
libetonyek::IWAParser::querySectionStyle
const IWORKStylePtr_t querySectionStyle(unsigned id) const
Definition: IWAParser.cpp:802
libetonyek::IWAParser::ObjectMessage::m_parser
IWAParser & m_parser
Definition: IWAParser.h:79
libetonyek::IWAParser::TableInfo::m_rows
const unsigned m_rows
Definition: IWAParser.h:148
libetonyek::IWAParser::TableInfo::m_formattedTextList
DataList_t m_formattedTextList
Definition: IWAParser.h:157
libetonyek::IWAParser::parseTabularModel
void parseTabularModel(unsigned id)
Definition: IWAParser.cpp:2119
libetonyek::IWORKPropertyMap
Represents a (hierarchical) property map.
Definition: IWORKPropertyMap.h:24
libetonyek::IWAParser::m_tableNameMap
IWORKTableNameMapPtr_t m_tableNameMap
Definition: IWAParser.h:222
libetonyek::IWAParser::queryFile
const RVNGInputStreamPtr_t queryFile(unsigned id) const
Definition: IWAParser.cpp:224
libetonyek::IWAParser::readSize
static boost::optional< IWORKSize > readSize(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:262
libetonyek::IWAParser::parseText
bool parseText(unsigned id, const std::function< void(unsigned, IWORKStylePtr_t)> &openPageSpan=nullptr)
Definition: IWAParser.cpp:483
libetonyek::IWAParser::readRefs
static std::deque< unsigned > readRefs(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:236
libetonyek::IWAParser::ObjectMessage::getType
unsigned getType() const
Definition: IWAParser.cpp:214
libetonyek::IWAParser::TableHeader
Definition: IWAParser.h:133
libetonyek::IWAParser::PageMaster::PageMaster
PageMaster()
Definition: IWAParser.cpp:113
libetonyek::IWAParser::TableInfo::m_cellStyleList
DataList_t m_cellStyleList
Definition: IWAParser.h:156
libetonyek::IWAParser::parseTableGridLine
void parseTableGridLine(unsigned id, IWORKGridLineMap_t &gridLines)
Definition: IWAParser.cpp:2523
libetonyek::IWORKStylePtr_t
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition: IWORKStyle_fwd.h:21
libetonyek::IWAParser::parseCharacterProperties
void parseCharacterProperties(const IWAMessage &msg, IWORKPropertyMap &props)
Definition: IWAParser.cpp:1904
libetonyek::IWAParser::parseShapePlacement
bool parseShapePlacement(const IWAMessage &msg, IWORKGeometryPtr_t &geometry)
Definition: IWAParser.cpp:1300
IWAObjectIndex.h
IWAMessage.h
libetonyek::IWAParser::m_sectionStyles
StyleMap_t m_sectionStyles
Definition: IWAParser.h:214
libetonyek::IWAParser::parsePageMaster
void parsePageMaster(unsigned id, PageMaster &pageMaster)
Definition: IWAParser.cpp:1987
libetonyek::IWAParser::readShadow
static void readShadow(const IWAMessage &msg, IWORKShadow &shadow)
Definition: IWAParser.cpp:429
libetonyek::IWAParser::PageMaster::m_headerFootersSameAsPrevious
bool m_headerFootersSameAsPrevious
Definition: IWAParser.h:130
libetonyek::IWAParser::m_collector
IWORKCollector & m_collector
Definition: IWAParser.h:206
libetonyek::IWAParser::IWAParser
IWAParser(const IWAParser &)
libetonyek::IWAParser::parseImage
bool parseImage(const IWAMessage &msg)
Definition: IWAParser.cpp:2059
libetonyek::IWAParser::StyleParseFun_t
std::function< void(unsigned, IWORKStylePtr_t &)> StyleParseFun_t
Definition: IWAParser.h:87
libetonyek::IWAParser::TableInfo::m_style
IWORKStylePtr_t m_style
Definition: IWAParser.h:150
libetonyek::IWAParser::TableInfo::m_columnHeader
TableHeader m_columnHeader
Definition: IWAParser.h:152
libetonyek::IWAParser::PageMaster
Definition: IWAParser.h:126
libetonyek::IWAParser::queryGraphicStyle
const IWORKStylePtr_t queryGraphicStyle(unsigned id) const
Definition: IWAParser.cpp:807
libetonyek::IWAParser::queryMediaStyle
const IWORKStylePtr_t queryMediaStyle(unsigned id) const
Definition: IWAParser.cpp:812
libetonyek::IWAParser::parseDrawableShape
bool parseDrawableShape(const IWAMessage &msg, bool isConnectionLine=false)
Definition: IWAParser.cpp:1052
libetonyek::IWAParser::queryListStyle
const IWORKStylePtr_t queryListStyle(unsigned id) const
Definition: IWAParser.cpp:827
libetonyek::IWAParser::m_tableStyles
StyleMap_t m_tableStyles
Definition: IWAParser.h:219
libetonyek::IWAParser::ObjectMessage::m_message
boost::optional< IWAMessage > m_message
Definition: IWAParser.h:80
libetonyek::IWAParser::ObjectMessage
Definition: IWAParser.h:62
libetonyek::IWAParser::parsePath
bool parsePath(const IWAMessage &msg, IWORKPathPtr_t &path)
Definition: IWAParser.cpp:962
libetonyek::IWAParser::PageMaster::m_style
IWORKStylePtr_t m_style
Definition: IWAParser.h:129
libetonyek::IWAParser::parseGroup
bool parseGroup(const IWAMessage &msg)
Definition: IWAParser.cpp:1283
libetonyek::KEY1Token::table
Definition: KEY1Token.h:198
libetonyek::IWAParser::parseArrowProperties
bool parseArrowProperties(const IWAMessage &msg, IWORKPropertyMap &props, bool headArrow)
Definition: IWAParser.cpp:929
libetonyek::IWAParser::ObjectMessage::ObjectMessage
ObjectMessage(IWAParser &parser, unsigned id, unsigned type=0)
Definition: IWAParser.cpp:164
libetonyek::IWAParser::parseHeaderAndFooter
void parseHeaderAndFooter(unsigned id, IWORKPageMaster &hf)
Definition: IWAParser.cpp:2022
libetonyek::IWAParser::parseTabularInfo
bool parseTabularInfo(const IWAMessage &msg)
Definition: IWAParser.cpp:2107
libetonyek::IWAParser::m_cellStyles
StyleMap_t m_cellStyles
Definition: IWAParser.h:218
libetonyek::IWAParser::readGradient
static void readGradient(const IWAMessage &msg, IWORKGradient &gradient)
Definition: IWAParser.cpp:396
libetonyek::IWAParser::readFill
bool readFill(const IWAMessage &msg, IWORKFill &fill)
Definition: IWAParser.cpp:338
libetonyek::IWAObjectIndex
Definition: IWAObjectIndex.h:26
libetonyek::IWORKPadding
Definition: IWORKTypes.h:99
libetonyek::IWORKToken::style
Definition: IWORKToken.h:414
libetonyek::IWAParser::ObjectMessage::m_type
unsigned m_type
Definition: IWAParser.h:82
libetonyek::IWAParser::TableInfo
Definition: IWAParser.h:141
libetonyek::IWAParser::parseMediaStyle
void parseMediaStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1601
libetonyek::IWORKToken::rows
Definition: IWORKToken.h:385
libetonyek::IWORKCollector
Definition: IWORKCollector.h:41
libetonyek::IWAParser::parseLink
void parseLink(unsigned id, std::string &url)
Definition: IWAParser.cpp:2559
libetonyek::IWAParser::m_listStyles
StyleMap_t m_listStyles
Definition: IWAParser.h:220
libetonyek::IWORKToken::padding
Definition: IWORKToken.h:343
libetonyek::IWAParser::parseParagraphStyle
void parseParagraphStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1407
libetonyek::IWORKShadow
Definition: IWORKTypes.h:312
libetonyek::IWAParser::DataList_t
std::map< unsigned, boost::variant< std::string, unsigned > > DataList_t
Definition: IWAParser.h:124
libetonyek::IWAParser::m_charStyles
StyleMap_t m_charStyles
Definition: IWAParser.h:212
libetonyek::IWAParser::queryCellStyle
const IWORKStylePtr_t queryCellStyle(unsigned id) const
Definition: IWAParser.cpp:817
libetonyek::IWAParser::TableHeader::m_hidden
mdds::flat_segment_tree< unsigned, bool > m_hidden
Definition: IWAParser.h:138
libetonyek::IWAParser::parseColumnsProperties
void parseColumnsProperties(const IWAMessage &msg, IWORKPropertyMap &props)
Definition: IWAParser.cpp:1944
libetonyek::IWAParser::TableHeader::TableHeader
TableHeader(unsigned count, float defValue=0)
Definition: IWAParser.cpp:119
libetonyek::IWORKToken::columns
Definition: IWORKToken.h:154
libetonyek::IWAParser::m_mediaStyles
StyleMap_t m_mediaStyles
Definition: IWAParser.h:217
libetonyek::RVNGInputStreamPtr_t
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libetonyek_utils.h:82
libetonyek::IWORKToken::geometry
Definition: IWORKToken.h:232
libetonyek::IWAParser::m_langManager
IWORKLanguageManager m_langManager
Definition: IWAParser.h:120
libetonyek::KEY1Token::gradient
Definition: KEY1Token.h:58
libetonyek::IWAParser::parseCellStyle
void parseCellStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1649
libetonyek::IWORKTableNameMapPtr_t
std::shared_ptr< IWORKTableNameMap_t > IWORKTableNameMapPtr_t
Definition: IWORKTypes_fwd.h:34
libetonyek::IWORKGridLineMap_t
std::map< unsigned, IWORKGridLine_t > IWORKGridLineMap_t
Definition: IWORKTypes.h:122
libetonyek::IWAParser::parseTile
void parseTile(unsigned id)
Definition: IWAParser.cpp:2297
libetonyek::IWAParser::parseListStyle
void parseListStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1776
libetonyek::IWAParser::parseSectionStyle
void parseSectionStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1506
libetonyek::IWAParser::m_graphicStyles
StyleMap_t m_graphicStyles
Definition: IWAParser.h:216
libetonyek::IWORKLanguageManager
Definition: IWORKLanguageManager.h:23
libetonyek::IWAParser::parseObjectIndex
void parseObjectIndex()
Definition: IWAParser.cpp:1378
libetonyek::IWORKPageMaster
Definition: IWORKTypes.h:356
libetonyek::IWAParser::queryObject
void queryObject(unsigned id, unsigned &type, boost::optional< IWAMessage > &msg) const
Definition: IWAParser.cpp:219
libetonyek::IWORKToken::header
Definition: IWORKToken.h:252
libetonyek::IWAParser::parseGraphicStyle
void parseGraphicStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1530
libetonyek::IWAParser::parseTableHeaders
void parseTableHeaders(unsigned id, TableHeader &header)
Definition: IWAParser.cpp:2477
libetonyek::IWORKToken::string
Definition: IWORKToken.h:411
libetonyek::IWAParser::TableInfo::m_simpleTextList
DataList_t m_simpleTextList
Definition: IWAParser.h:155
libetonyek::IWORKPathPtr_t
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition: IWORKPath_fwd.h:20
libetonyek::IWAParser::StyleMap_t
std::map< unsigned, IWORKStylePtr_t > StyleMap_t
Definition: IWAParser.h:86
libetonyek::IWAParser::parseTableStyle
void parseTableStyle(unsigned id, IWORKStylePtr_t &style)
Definition: IWAParser.cpp:1732
libetonyek::IWAParser::dispatchShape
bool dispatchShape(unsigned id)
Definition: IWAParser.cpp:453
IWORKTypes.h
libetonyek::IWAParser::operator=
IWAParser & operator=(const IWAParser &)
libetonyek::IWAParser::parseDocument
virtual bool parseDocument()=0
libetonyek::IWAMessage
Definition: IWAMessage.h:21
libetonyek::IWORKFill
boost::variant< IWORKColor, IWORKGradient, IWORKMediaContent > IWORKFill
Definition: IWORKTypes.h:309
libetonyek::IWAParser::TableInfo::m_rowHeader
TableHeader m_rowHeader
Definition: IWAParser.h:153
libetonyek::IWAParser
Definition: IWAParser.h:48
libetonyek::IWORKToken::type
Definition: IWORKToken.h:486
libetonyek::IWAParser::readPadding
static void readPadding(const IWAMessage &msg, IWORKPadding &padding)
Definition: IWAParser.cpp:445
libetonyek::IWAParser::parseDataList
void parseDataList(unsigned id, DataList_t &dataList)
Definition: IWAParser.cpp:2240
libetonyek::IWAParser::ObjectMessage::~ObjectMessage
~ObjectMessage()
Definition: IWAParser.cpp:194
libetonyek::IWAParser::parseAttachment
bool parseAttachment(unsigned id)
Definition: IWAParser.cpp:832
libetonyek::IWAParser::parseTableGridLines
void parseTableGridLines(unsigned id, IWORKGridLineMap_t(&gridLines)[4])
Definition: IWAParser.cpp:2501
libetonyek_utils.h
libetonyek::IWAParser::TableInfo::TableInfo
TableInfo(const std::shared_ptr< IWORKTable > &table, unsigned columns, unsigned rows)
Definition: IWAParser.cpp:125
libetonyek::IWORKToken::stroke
Definition: IWORKToken.h:412
libetonyek::IWORKToken::count
Definition: IWORKToken.h:515
libetonyek::IWAParser::queryCharacterStyle
const IWORKStylePtr_t queryCharacterStyle(unsigned id) const
Definition: IWAParser.cpp:792
libetonyek::IWAParser::readPosition
static boost::optional< IWORKPosition > readPosition(const IWAMessage &msg, unsigned field)
Definition: IWAParser.cpp:251
libetonyek::IWORKToken::fill
Definition: IWORKToken.h:200
libetonyek::IWAParser::ObjectMessage::m_id
const unsigned m_id
Definition: IWAParser.h:81
libetonyek::IWAParser::parse
bool parse()
Definition: IWAParser.cpp:158
libetonyek::IWAParser::m_currentTable
std::shared_ptr< TableInfo > m_currentTable
Definition: IWAParser.h:223
libetonyek::IWAParser::TableHeader::m_sizes
mdds::flat_segment_tree< unsigned, float > m_sizes
Definition: IWAParser.h:137