RagTime5ClusterManager.hxx Source File documentation

RagTime5ClusterManager.hxx
Go to the documentation of this file.
1 /* -*- Mode: C++; c-default-style: "k&r"; indent-tabs-mode: nil; tab-width: 2; c-basic-offset: 2 -*- */
2
3 /* libmwaw
4 * Version: MPL 2.0 / LGPLv2+
5 *
6 * The contents of this file are subject to the Mozilla Public License Version
7 * 2.0 (the "License"); you may not use this file except in compliance with
8 * the License or as specified alternatively below. You may obtain a copy of
9 * the License at http://www.mozilla.org/MPL/
10 *
11 * Software distributed under the License is distributed on an "AS IS" basis,
12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 * for the specific language governing rights and limitations under the
14 * License.
15 *
16 * Major Contributor(s):
17 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
18 * Copyright (C) 2002,2004 Marc Maurer (uwog@uwog.net)
19 * Copyright (C) 2004-2006 Fridrich Strba (fridrich.strba@bluewin.ch)
20 * Copyright (C) 2006, 2007 Andrew Ziem
21 * Copyright (C) 2011, 2012 Alonso Laurent (alonso@loria.fr)
22 *
23 *
24 * All Rights Reserved.
25 *
26 * For minor contributions see the git repository.
27 *
28 * Alternatively, the contents of this file may be used under the terms of
29 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
30 * in which case the provisions of the LGPLv2+ are applicable
31 * instead of those above.
32 */
33
34 #ifndef RAG_TIME_5_CLUSTER_MANAGER
35 # define RAG_TIME_5_CLUSTER_MANAGER
36
37 #include <map>
38 #include <ostream>
39 #include <sstream>
40 #include <string>
41 #include <vector>
42
43 #include "libmwaw_internal.hxx"
44 #include "MWAWDebug.hxx"
45 #include "MWAWEntry.hxx"
46
47 #include "RagTime5StructManager.hxx"
48
49 class RagTime5Document;
50 class RagTime5StructManager;
51
52 namespace RagTime5ClusterManagerInternal
53 {
54 struct State;
55 }
56
58 class RagTime5ClusterManager
59 {
60 public:
61 struct Link;
62 struct NameLink;
63
64 struct Cluster;
65 struct ClusterRoot;
66 struct ClusterParser;
67
68 friend struct ClusterParser;
69
71 explicit RagTime5ClusterManager(RagTime5Document &doc);
73 ~RagTime5ClusterManager();
74
76 bool sendClusterMainList();
77
79 bool readCluster(RagTime5Zone &zone, ClusterParser &parser, bool warnForUnparsed=true);
81 bool readCluster(RagTime5Zone &zone, std::shared_ptr<Cluster> &cluster, int type=-1);
83 std::shared_ptr<Cluster> readRootCluster(RagTime5Zone &zone);
85 bool readClusterMainList(ClusterRoot &root, std::vector<int> &list, std::vector<int> const &clusterIdList);
86
88 bool readClusterGObjProperties(RagTime5Zone &zone);
90 bool readUnknownClusterC(Link const &link);
92 int getClusterFileType(RagTime5Zone &zone);
94 int getClusterType(RagTime5Zone &zone, int fileType);
96 bool getClusterBasicHeaderInfo(RagTime5Zone &zone, long &N, long &fSz, long &debHeaderPos);
97
98 // low level
99
101 bool readFieldHeader(RagTime5Zone &zone, long endPos, std::string const &headerName, long &endDataPos, long expectedLVal=-99999);
103 std::string getClusterDebugName(int id);
105 void setClusterName(int id, librevenge::RVNGString const &name);
107 static std::string printType(unsigned long fileType)
108 {
109 return RagTime5StructManager::printType(fileType);
110 }
111
113 struct Link {
115 enum Type { L_ClusterLink,
116 L_LongList, L_UnicodeList,
117 L_FieldsList, L_List,
118 L_UnknownClusterC,
119 L_Unknown
120 };
122 explicit Link(Type type=L_Unknown)
123 : m_type(type)
124 , m_name("")
125 , m_ids()
126 , m_N(0)
127 , m_fieldSize(0)
128 , m_longList()
129 {
130 for (auto &typ : m_fileType) typ=0;
131 }
133 bool empty() const
134 {
135 if (m_type==L_LongList && !m_longList.empty())
136 return false;
137 for (auto id : m_ids)
138 if (id>0) return false;
139 return true;
140 }
142 std::string getZoneName() const
143 {
144 switch (m_type) {
145 case L_ClusterLink:
146 return "clustLink";
147 case L_LongList:
148 if (!m_name.empty())
149 return m_name;
150 else {
151 std::stringstream s;
152 s << "longList" << m_fieldSize;
153 return s.str();
154 }
155 case L_UnicodeList:
156 return "unicodeListLink";
157 case L_UnknownClusterC:
158 return "unknownClusterC";
159 case L_FieldsList:
160 if (!m_name.empty())
161 return m_name;
162 return "fieldsList[unkn]";
163 case L_List:
164 if (!m_name.empty())
165 return m_name;
166 break;
167 case L_Unknown:
168 #if !defined(__clang__)
169 default:
170 #endif
171 break;
172 }
173 std::stringstream s;
174 if (m_type==L_List)
175 s << "ListZone";
176 else
177 s << "FixZone";
178 s << std::hex << m_fileType[0] << "_" << m_fileType[1] << std::dec;
179 if (m_fieldSize)
180 s << "_" << m_fieldSize;
181 s << "A";
182 return s.str();
183 }
185 friend std::ostream &operator<<(std::ostream &o, Link const &z)
186 {
187 if (z.empty()) return o;
188 o << z.getZoneName() << ":";
189 size_t numLinks=z.m_ids.size();
190 if (numLinks>1) o << "[";
191 for (size_t i=0; i<numLinks; ++i) {
192 if (z.m_ids[i]<=0)
193 o << "_";
194 else
195 o << "data" << z.m_ids[i] << "A";
196 if (i+1!=numLinks) o << ",";
197 }
198 if (numLinks>1) o << "]";
199 if (z.m_fieldSize&0x8000)
200 o << "[" << std::hex << z.m_fieldSize << std::dec << ":" << z.m_N << "]";
201 else
202 o << "[" << z.m_fieldSize << ":" << z.m_N << "]";
203 return o;
204 }
206 Type m_type;
208 std::string m_name;
210 std::vector<int> m_ids;
212 int m_N;
214 int m_fieldSize;
216 unsigned long m_fileType[2];
218 std::vector<long> m_longList;
219 };
220
222 struct NameLink {
224 NameLink()
225 : m_ids()
226 , m_N(0)
227 , m_decalList()
228 {
229 }
231 explicit NameLink(Link const &lnk)
232 : m_ids(lnk.m_ids)
233 , m_N(lnk.m_N)
234 , m_decalList(lnk.m_longList)
235 {
236 }
238 bool empty() const
239 {
240 for (auto id : m_ids)
241 if (id>0) return false;
242 return true;
243 }
245 std::vector<int> m_ids;
247 int m_N;
249 std::vector<long> m_decalList;
251 std::vector<long> m_posToNames[2];
253 Link m_posToNamesLinks[2];
254 };
255
257 // cluster classes
259
261 struct Cluster {
263 enum Type {
264 C_ColorPattern, C_FormulaDef, C_FormulaPos, C_Layout, C_Pipeline,
265 C_Root, C_ClusterGProp, C_Sound,
266
267 // the main zones
268 C_ButtonZone, C_ChartZone, C_GraphicZone, C_PictureZone, C_SpreadsheetZone, C_TextZone,
269 // group zones: 6.6
270 C_GroupZone,
271 // the styles
272 C_ColorStyles, C_FormatStyles, C_GraphicStyles, C_TextStyles, C_UnitStyles,
273 // unknown clusters
274 C_ClusterC,
275
276 C_Empty, C_Unknown
277 };
279 explicit Cluster(Type type)
280 : m_type(type)
281 , m_zoneId(0)
282 , m_hiLoEndian(true)
283 , m_name("")
284 , m_childLink()
285 , m_parentLink()
286 , m_dataLink()
287 , m_nameLink()
288 , m_formulaLink()
289 , m_settingLinks()
290 , m_linksList()
291 , m_clusterIdsList()
292 , m_isSent(false)
293 {
294 }
296 virtual ~Cluster();
298 Type m_type;
300 int m_zoneId;
302 bool m_hiLoEndian;
304 librevenge::RVNGString m_name;
306 Link m_childLink;
308 Link m_parentLink;
310 Link m_dataLink;
312 NameLink m_nameLink;
314 Link m_formulaLink;
316 std::vector<Link> m_settingLinks;
318 std::vector<Link> m_linksList;
320 std::vector<int> m_clusterIdsList;
322 bool m_isSent;
323 };
324
326 Cluster::Type getClusterType(int zId) const;
327
329 struct ClusterRoot final : public Cluster {
331 ClusterRoot()
332 : Cluster(C_Root)
333 , m_docInfoLink()
334 , m_functionNameLink()
335 , m_graphicTypeLink()
336 , m_listUnicodeLink()
337 , m_listClusterId(0)
338 , m_listClusterName()
339 , m_linkUnknown()
340 , m_fileName("")
341 {
342 for (auto &id : m_styleClusterIds) id=0;
343 for (auto &id : m_clusterIds) id=0;
344 }
346 ~ClusterRoot() final;
348 int m_styleClusterIds[8];
349
351 int m_clusterIds[1];
352
354 Link m_docInfoLink;
356 Link m_functionNameLink;
358 Link m_graphicTypeLink;
359
361 Link m_listUnicodeLink;
363 int m_listClusterId;
365 NameLink m_listClusterName;
367 Link m_listClusterLink[3];
368
370 Link m_linkUnknown;
371
373 librevenge::RVNGString m_fileName;
374 };
375
377 // parser class
379
381 struct ClusterParser {
383 ClusterParser(RagTime5ClusterManager &parser, int type, std::string const &zoneName)
384 : m_parser(parser)
385 , m_type(type)
386 , m_hiLoEndian(true)
387 , m_name(zoneName)
388 , m_dataId(0)
389 , m_link()
390 {
391 }
393 virtual ~ClusterParser();
395 virtual std::shared_ptr<Cluster> getCluster()=0;
397 virtual std::string getZoneName() const
398 {
399 return m_name;
400 }
402 virtual std::string getZoneName(int n, int m=-1) const
403 {
404 std::stringstream s;
405 s << m_name << "-" << n;
406 if (m>=0)
407 s << "-B" << m;
408 return s.str();
409 }
411 virtual void startZone()
412 {
413 }
415 virtual bool parseZone(MWAWInputStreamPtr &/*input*/, long /*fSz*/, int /*N*/, int /*flag*/, libmwaw::DebugStream &/*f*/)
416 {
417 return false;
418 }
420 virtual void endZone()
421 {
422 }
424 virtual bool parseField(RagTime5StructManager::Field const &/*field*/, int /*m*/, libmwaw::DebugStream &/*f*/)
425 {
426 return false;
427 }
430 virtual int getNewZoneToParse()
431 {
432 return -1;
433 }
434 //
435 // some tools
436 //
437
439 bool isANameHeader(long N) const
440 {
441 return (m_hiLoEndian && N==int(0x80000000)) || (!m_hiLoEndian && N==0x8000);
442 }
443
445 bool readLinkHeader(MWAWInputStreamPtr &input, long fSz, Link &link, long(&values)[4], std::string &message);
447 std::string getClusterDebugName(int id);
449 RagTime5ClusterManager &m_parser;
451 int m_type;
453 bool m_hiLoEndian;
455 std::string m_name;
457 int m_dataId;
459 Link m_link;
460 private:
461 explicit ClusterParser(ClusterParser const &orig) = delete;
462 ClusterParser &operator=(ClusterParser const &orig) = delete;
463 };
464 protected:
466 std::shared_ptr<RagTime5ClusterManagerInternal::State> m_state;
468 RagTime5Document &m_document;
470 std::shared_ptr<RagTime5StructManager> m_structManager;
471 private:
472 RagTime5ClusterManager(RagTime5ClusterManager const &orig) = delete;
473 RagTime5ClusterManager operator=(RagTime5ClusterManager const &orig) = delete;
474 };
475
476 #endif
477 // vim: set filetype=cpp tabstop=2 shiftwidth=2 cindent autoindent smartindent noexpandtab:
RagTime5ClusterManager::Link::m_ids
std::vector< int > m_ids
the data ids
Definition: RagTime5ClusterManager.hxx:210
RagTime5ClusterManagerInternal::SoundCParser::getSoundCluster
std::shared_ptr< ClusterSound > getSoundCluster()
return the sound cluster
Definition: RagTime5ClusterManager.cxx:1860
MWAWEntry
basic class to store an entry in a file This contained :
Definition: MWAWEntry.hxx:47
RagTime5Document::readStructData
bool readStructData(RagTime5Zone &zone, long endPos, int n, int headerSz, RagTime5StructManager::FieldParser &parser, librevenge::RVNGString const &dataName)
try to read a data in a structured zone
Definition: RagTime5Document.cxx:1817
RagTime5ClusterManager::m_document
RagTime5Document & m_document
the main parser
Definition: RagTime5ClusterManager.hxx:468
RagTime5ClusterManagerInternal::SoundCParser::setExpectedType
void setExpectedType(int id, int type)
set a data id type
Definition: RagTime5ClusterManager.cxx:1866
RagTime5Zone::m_isParsed
bool m_isParsed
a flag to know if the zone is parsed
Definition: RagTime5StructManager.hxx:152
MWAWInputStreamPtr
std::shared_ptr< MWAWInputStream > MWAWInputStreamPtr
a smart pointer of MWAWInputStream
Definition: libmwaw_internal.hxx:551
RagTime5ClusterManager::NameLink::m_posToNames
std::vector< long > m_posToNames[2]
for unicode list field ids and field id to name
Definition: RagTime5ClusterManager.hxx:251
RagTime5ClusterManager::NameLink::m_ids
std::vector< int > m_ids
the data ids
Definition: RagTime5ClusterManager.hxx:245
RagTime5ClusterManagerInternal::ClusterSound::ClusterSound
ClusterSound()
constructor
Definition: RagTime5ClusterManager.cxx:1823
RagTime5ClusterManagerInternal::ClusterInformation::m_fileType
int m_fileType
the cluster file type
Definition: RagTime5ClusterManager.cxx:140
RagTime5Document::readGraphicCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readGraphicCluster(RagTime5Zone &zone, int zoneType)
try to read a graphic cluster (via the graphic manager)
Definition: RagTime5Document.cxx:435
RagTime5StructManager::Field::T_Unicode
@ T_Unicode
Definition: RagTime5StructManager.hxx:245
RagTime5ClusterManager::getClusterBasicHeaderInfo
bool getClusterBasicHeaderInfo(RagTime5Zone &zone, long &N, long &fSz, long &debHeaderPos)
try to return basic information about the header cluster's zone
Definition: RagTime5ClusterManager.cxx:2340
RagTime5ClusterManager::Link::Type
Type
the link type
Definition: RagTime5ClusterManager.hxx:115
RagTime5ClusterManager::Cluster::m_parentLink
Link m_parentLink
the parent link
Definition: RagTime5ClusterManager.hxx:308
RagTime5ClusterManager::Cluster::C_GroupZone
@ C_GroupZone
Definition: RagTime5ClusterManager.hxx:270
RagTime5Document::readLayoutCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readLayoutCluster(RagTime5Zone &zone, int zoneType)
try to read a layout cluster (via the layout manager)
Definition: RagTime5Document.cxx:440
RagTime5ClusterManager::Link::L_ClusterLink
@ L_ClusterLink
Definition: RagTime5ClusterManager.hxx:115
RagTime5ClusterManagerInternal::ClusterInformation::operator<<
friend std::ostream & operator<<(std::ostream &o, ClusterInformation const &info)
operator<<
Definition: RagTime5ClusterManager.cxx:61
RagTime5ClusterManagerInternal::RootCParser::F_unknUnicodeD
@ F_unknUnicodeD
Definition: RagTime5ClusterManager.cxx:784
RagTime5ClusterManager::ClusterParser::getZoneName
virtual std::string getZoneName() const
return the debug name corresponding to a zone
Definition: RagTime5ClusterManager.hxx:397
RagTime5ClusterManagerInternal::SoundCParser::getNewZoneToParse
int getNewZoneToParse() final
returns to new zone to parse.
Definition: RagTime5ClusterManager.cxx:1872
MWAW_DEBUG_MSG
#define MWAW_DEBUG_MSG(M)
Definition: libmwaw_internal.hxx:129
RagTime5ClusterManager::ClusterRoot::m_functionNameLink
Link m_functionNameLink
the function name links
Definition: RagTime5ClusterManager.hxx:356
RagTime5ClusterManagerInternal::GroupCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
try to parse a zone
Definition: RagTime5ClusterManager.cxx:1717
MWAWVec2f
MWAWVec2< float > MWAWVec2f
MWAWVec2 of float.
Definition: libmwaw_internal.hxx:842
RagTime5ClusterManager::ClusterRoot::m_listClusterName
NameLink m_listClusterName
the cluster list id name zone link
Definition: RagTime5ClusterManager.hxx:365
libmwaw::DebugFile::addDelimiter
void addDelimiter(long pos, char c)
adds a not breaking delimiter in position pos
Definition: MWAWDebug.cxx:73
RagTime5ClusterManagerInternal::RootCParser::parseHeaderZone
bool parseHeaderZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f)
parse the header zone
Definition: RagTime5ClusterManager.cxx:1344
RagTime5ClusterManager::Cluster::C_Sound
@ C_Sound
Definition: RagTime5ClusterManager.hxx:265
RagTime5ClusterManager::~RagTime5ClusterManager
~RagTime5ClusterManager()
destructor
Definition: RagTime5ClusterManager.cxx:172
RagTime5ClusterManagerInternal::ClusterInformation::ClusterInformation
ClusterInformation()
constructor
Definition: RagTime5ClusterManager.cxx:54
RagTime5ClusterManager::Cluster::C_FormatStyles
@ C_FormatStyles
Definition: RagTime5ClusterManager.hxx:272
RagTime5ClusterManager::sendClusterMainList
bool sendClusterMainList()
try to send the root cluster zone
Definition: RagTime5ClusterManager.cxx:531
RagTime5ClusterManagerInternal::RootCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:904
RagTime5ClusterManager::Cluster::Cluster
Cluster(Type type)
constructor
Definition: RagTime5ClusterManager.hxx:279
RagTime5ClusterManager::ClusterParser::parseField
virtual bool parseField(RagTime5StructManager::Field const &, int, libmwaw::DebugStream &)
parse a the data of a zone, n_dataId:m
Definition: RagTime5ClusterManager.hxx:424
RagTime5ClusterManager::Cluster::C_Pipeline
@ C_Pipeline
Definition: RagTime5ClusterManager.hxx:264
RagTime5ClusterManager::ClusterParser::m_name
std::string m_name
the cluster name
Definition: RagTime5ClusterManager.hxx:455
RagTime5ClusterManager::ClusterParser::startZone
virtual void startZone()
start a new zone
Definition: RagTime5ClusterManager.hxx:411
RagTime5ClusterManager::Cluster::C_ClusterC
@ C_ClusterC
Definition: RagTime5ClusterManager.hxx:274
RagTime5ClusterManager::readRootCluster
std::shared_ptr< Cluster > readRootCluster(RagTime5Zone &zone)
try to read the root cluster zone
Definition: RagTime5ClusterManager.cxx:2531
RagTime5ClusterManagerInternal::GroupCParser
low level: parser of group cluster : zone 4010
Definition: RagTime5ClusterManager.cxx:1701
RagTime5ClusterManager::ClusterParser::isANameHeader
bool isANameHeader(long N) const
return true if N correspond to a file/script name
Definition: RagTime5ClusterManager.hxx:439
RagTime5ClusterManager::ClusterParser::m_link
Link m_link
the actual link
Definition: RagTime5ClusterManager.hxx:459
RagTime5ClusterManagerInternal::SoundCParser::m_fieldName
std::string m_fieldName
the actual field name
Definition: RagTime5ClusterManager.cxx:2026
RagTime5ClusterManagerInternal::RootChildCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:1660
RagTime5StructManager.hxx
RagTime5StructManager::Field::T_Unstructured
@ T_Unstructured
Definition: RagTime5StructManager.hxx:245
RagTime5ClusterManager::getClusterType
int getClusterType(RagTime5Zone &zone, int fileType)
returns the local zone type
Definition: RagTime5ClusterManager.cxx:2361
RagTime5ClusterManagerInternal::State::m_idToClusterMap
std::map< int, std::shared_ptr< RagTime5ClusterManager::Cluster > > m_idToClusterMap
map id to cluster map
Definition: RagTime5ClusterManager.cxx:156
RagTime5ClusterManagerInternal::RootCParser::m_idStack
std::stack< int > m_idStack
the id stack
Definition: RagTime5ClusterManager.cxx:1508
RagTime5ClusterManager::Link::L_UnicodeList
@ L_UnicodeList
Definition: RagTime5ClusterManager.hxx:116
RagTime5ClusterManagerInternal::SoundCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
parse a zone
Definition: RagTime5ClusterManager.cxx:1881
RagTime5Zone::ascii
libmwaw::DebugFile & ascii()
returns the current ascii file
Definition: RagTime5StructManager.hxx:109
RagTime5ClusterManager::ClusterParser::getClusterDebugName
std::string getClusterDebugName(int id)
returns "data"+id+"A" ( followed by the cluster type and name if know)
Definition: RagTime5ClusterManager.cxx:555
RagTime5ClusterManagerInternal::SoundCParser::m_cluster
std::shared_ptr< ClusterSound > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:2024
MWAWEntry.hxx
RagTime5ClusterManagerInternal::StyleCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:2201
RagTime5StructManager::Field
a field of RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:242
RagTime5ClusterManager::operator=
RagTime5ClusterManager operator=(RagTime5ClusterManager const &orig)=delete
RagTime5ClusterManagerInternal::GroupCParser::endZone
void endZone() final
end of a start zone call
Definition: RagTime5ClusterManager.cxx:1796
RagTime5ClusterManager::ClusterParser::readLinkHeader
bool readLinkHeader(MWAWInputStreamPtr &input, long fSz, Link &link, long(&values)[4], std::string &message)
try to read a link header
Definition: RagTime5ClusterManager.cxx:560
RagTime5ClusterManager::Cluster::m_isSent
bool m_isSent
true if the cluster was send
Definition: RagTime5ClusterManager.hxx:322
RagTime5ClusterManagerInternal::RootCParser::m_expectedIdToType
std::map< int, int > m_expectedIdToType
the expected id
Definition: RagTime5ClusterManager.cxx:1506
RagTime5Document::readLongList
bool readLongList(RagTime5ClusterManager::Link const &link, std::vector< long > &list)
try to read/get the list of long of a L_LongList
Definition: RagTime5Document.cxx:914
RagTime5ClusterManager::ClusterRoot::m_listClusterId
int m_listClusterId
the cluster list id
Definition: RagTime5ClusterManager.hxx:363
RagTime5Document.hxx
RagTime5ClusterManager::readUnknownClusterC
bool readUnknownClusterC(Link const &link)
try to read some unknown cluster
Definition: RagTime5ClusterManager.cxx:344
RagTime5ClusterManager::ClusterParser
virtual class use to parse the cluster data
Definition: RagTime5ClusterManager.hxx:381
RagTime5ClusterManager::Cluster::C_ChartZone
@ C_ChartZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5ClusterManagerInternal::ClusterSound
the sound cluster ( 2/a/4002/400a zone)
Definition: RagTime5ClusterManager.cxx:1821
RagTime5ClusterManager::ClusterRoot::m_fileName
librevenge::RVNGString m_fileName
the filename if known
Definition: RagTime5ClusterManager.hxx:373
RagTime5Zone::m_entry
MWAWEntry m_entry
the zone entry
Definition: RagTime5StructManager.hxx:134
RagTime5ClusterManager::ClusterParser::parseZone
virtual bool parseZone(MWAWInputStreamPtr &, long, int, int, libmwaw::DebugStream &)
parse a zone
Definition: RagTime5ClusterManager.hxx:415
RagTime5ClusterManager::ClusterRoot::m_listClusterLink
Link m_listClusterLink[3]
first the main cluster link, second list of field definition link, third in header
Definition: RagTime5ClusterManager.hxx:367
RagTime5ClusterManagerInternal::State::m_idToClusterInfoMap
std::map< int, ClusterInformation > m_idToClusterInfoMap
map id to cluster information map
Definition: RagTime5ClusterManager.cxx:154
RagTime5ClusterManagerInternal::ClusterInformation::m_type
int m_type
the cluster type
Definition: RagTime5ClusterManager.cxx:138
RagTime5ClusterManager::Link::L_UnknownClusterC
@ L_UnknownClusterC
Definition: RagTime5ClusterManager.hxx:118
RagTime5ClusterManagerInternal::SoundCParser
low level: parser of sound cluster : zone 2,a,4002,400a
Definition: RagTime5ClusterManager.cxx:1838
RagTime5ClusterManagerInternal
Internal: the structures of a RagTime5ClusterManager.
Definition: RagTime5ClusterManager.cxx:50
RagTime5ClusterManager::ClusterParser::ClusterParser
ClusterParser(ClusterParser const &orig)=delete
RagTime5Document::readChartCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readChartCluster(RagTime5Zone &zone, int zoneType)
try to read a chart cluster (via the spreadsheet manager)
Definition: RagTime5Document.cxx:430
libmwaw::DebugFile::addNote
void addNote(char const *note)
adds a note in the file, in actual position
Definition: MWAWDebug.cxx:59
RagTime5ClusterManager::ClusterParser
friend struct ClusterParser
Definition: RagTime5ClusterManager.hxx:66
RagTime5ClusterManagerInternal::SoundCParser::m_expectedIdToType
std::map< int, int > m_expectedIdToType
the expected id
Definition: RagTime5ClusterManager.cxx:2029
RagTime5ClusterManager::NameLink::m_N
int m_N
the number of data
Definition: RagTime5ClusterManager.hxx:247
RagTime5StructManager::Field::T_FieldList
@ T_FieldList
Definition: RagTime5StructManager.hxx:244
RagTime5ClusterManager::Cluster::C_PictureZone
@ C_PictureZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5ClusterManager::Link::Link
Link(Type type=L_Unknown)
constructor
Definition: RagTime5ClusterManager.hxx:122
RagTime5ClusterManagerInternal::UnknownCParser::UnknownCParser
UnknownCParser(RagTime5ClusterManager &parser, int type)
constructor
Definition: RagTime5ClusterManager.cxx:2314
RagTime5StructManager::GObjPropFieldParser
basic parser to read image/main graphic position properties
Definition: RagTime5StructManager.hxx:427
RagTime5ClusterManager::Cluster::C_ColorPattern
@ C_ColorPattern
Definition: RagTime5ClusterManager.hxx:264
RagTime5ClusterManager::getClusterFileType
int getClusterFileType(RagTime5Zone &zone)
try to find a cluster zone type ( heuristic when the cluster type is unknown )
Definition: RagTime5ClusterManager.cxx:2443
RagTime5ClusterManager
basic class used to manage RagTime 5/6 zones
Definition: RagTime5ClusterManager.hxx:59
RagTime5ClusterManagerInternal::StyleCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
try to parse a zone
Definition: RagTime5ClusterManager.cxx:2057
RagTime5ClusterManagerInternal::ColPatCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:751
RagTime5Zone::m_childIdToZoneMap
std::map< int, std::shared_ptr< RagTime5Zone > > m_childIdToZoneMap
the child zones
Definition: RagTime5StructManager.hxx:146
RagTime5ClusterManager::Cluster::C_TextStyles
@ C_TextStyles
Definition: RagTime5ClusterManager.hxx:272
RagTime5ClusterManagerInternal::RootCParser::getCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > getCluster() final
return the current cluster
Definition: RagTime5ClusterManager.cxx:816
RagTime5ClusterManager.hxx
RagTime5Document::readTextCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readTextCluster(RagTime5Zone &zone, int zoneType)
try to read a text cluster (via the text manager)
Definition: RagTime5Document.cxx:460
RagTime5ClusterManager::Link::L_LongList
@ L_LongList
Definition: RagTime5ClusterManager.hxx:116
RagTime5ClusterManager::Link::m_N
int m_N
the number of data ( or some flag if m_N & 0x8020)
Definition: RagTime5ClusterManager.hxx:212
RagTime5ClusterManager::NameLink
a link to a name zone in RagTime 5/6 documents
Definition: RagTime5ClusterManager.hxx:222
RagTime5Document
the main class to read a RagTime v5 file
Definition: RagTime5Document.hxx:77
RagTime5ClusterManager::readFieldHeader
bool readFieldHeader(RagTime5Zone &zone, long endPos, std::string const &headerName, long &endDataPos, long expectedLVal=-99999)
try to read a field header, if ok set the endDataPos positions
Definition: RagTime5ClusterManager.cxx:201
RagTime5ClusterManagerInternal::StyleCParser
low level: parser of style cluster : zone 480
Definition: RagTime5ClusterManager.cxx:2041
RagTime5ClusterManager::Link::getZoneName
std::string getZoneName() const
returns the zone name
Definition: RagTime5ClusterManager.hxx:142
RagTime5ClusterManagerInternal::SoundCParser::m_idStack
std::stack< int > m_idStack
the id stack
Definition: RagTime5ClusterManager.cxx:2031
RagTime5Document::readPipelineCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readPipelineCluster(RagTime5Zone &zone, int zoneType)
try to read a pipeline cluster (via the pipeline manager)
Definition: RagTime5Document.cxx:445
RagTime5ClusterManager::m_state
std::shared_ptr< RagTime5ClusterManagerInternal::State > m_state
the state
Definition: RagTime5ClusterManager.hxx:466
RagTime5ClusterManager::Link::empty
bool empty() const
returns true if all link are empty
Definition: RagTime5ClusterManager.hxx:133
libmwaw_internal.hxx
RagTime5StructManager::printType
static std::string printType(unsigned long fileType)
debug: print a file type
Definition: RagTime5StructManager.cxx:94
RagTime5ClusterManager::ClusterRoot::m_listUnicodeLink
Link m_listUnicodeLink
a link to a list of unknown index+unicode string
Definition: RagTime5ClusterManager.hxx:361
MWAWPosition.hxx
MWAWEntry::setEnd
void setEnd(long off)
sets the end offset
Definition: MWAWEntry.hxx:77
RagTime5ClusterManager::readClusterMainList
bool readClusterMainList(ClusterRoot &root, std::vector< int > &list, std::vector< int > const &clusterIdList)
try to read the cluster root list (in general Data14)
Definition: RagTime5ClusterManager.cxx:258
RagTime5Document::readButtonCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readButtonCluster(RagTime5Zone &zone, int zoneType)
try to read a button cluster (via the graphic manager)
Definition: RagTime5Document.cxx:425
RagTime5ClusterManager::ClusterRoot::m_linkUnknown
Link m_linkUnknown
other link: scripts and field 6
Definition: RagTime5ClusterManager.hxx:370
RagTime5ClusterManagerInternal::SoundCParser::SoundCParser
SoundCParser(RagTime5ClusterManager &parser, int type)
constructor
Definition: RagTime5ClusterManager.cxx:1841
RagTime5ClusterManagerInternal::RootCParser::RootCParser
RootCParser(RagTime5ClusterManager &parser)
constructor
Definition: RagTime5ClusterManager.cxx:787
RagTime5ClusterManagerInternal::StyleCParser::StyleCParser
StyleCParser(RagTime5ClusterManager &parser, int type)
constructor
Definition: RagTime5ClusterManager.cxx:2043
MWAWPosition
Class to define the position of an object (textbox, picture, ..) in the document.
Definition: MWAWPosition.hxx:48
RagTime5ClusterManager::ClusterParser::m_dataId
int m_dataId
the actual zone id
Definition: RagTime5ClusterManager.hxx:457
RagTime5ClusterManagerInternal::RootCParser::endZone
void endZone() final
end of a start zone call
Definition: RagTime5ClusterManager.cxx:821
RagTime5StructManager::Field::T_Long
@ T_Long
Definition: RagTime5StructManager.hxx:244
RagTime5ClusterManager::Cluster::C_GraphicZone
@ C_GraphicZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5StructManager::Field::T_ZoneId
@ T_ZoneId
Definition: RagTime5StructManager.hxx:245
MWAWEntry::setBegin
void setBegin(long off)
sets the begin offset
Definition: MWAWEntry.hxx:67
RagTime5ClusterManagerInternal::ColPatCParser::ColPatCParser
ColPatCParser(RagTime5ClusterManager &parser)
constructor
Definition: RagTime5ClusterManager.cxx:634
RagTime5ClusterManager::printType
static std::string printType(unsigned long fileType)
debug: print a file type
Definition: RagTime5ClusterManager.hxx:107
RagTime5ClusterManager::Cluster::m_hiLoEndian
bool m_hiLoEndian
the cluster hiLo endian
Definition: RagTime5ClusterManager.hxx:302
RagTime5ClusterManager::Cluster::~Cluster
virtual ~Cluster()
destructor
Definition: RagTime5ClusterManager.cxx:176
RagTime5Zone
main zone in a RagTime v5-v6 document
Definition: RagTime5StructManager.hxx:51
RagTime5ClusterManager::Cluster::m_formulaLink
Link m_formulaLink
the formula cluster links (def and pos)
Definition: RagTime5ClusterManager.hxx:314
RagTime5ClusterManager::Cluster::C_TextZone
@ C_TextZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5ClusterManager::ClusterRoot::m_styleClusterIds
int m_styleClusterIds[8]
the list of style cluster ( graph, units, unitsbis, text, format, unknown, graphcolor,...
Definition: RagTime5ClusterManager.hxx:348
MWAWEntry::length
long length() const
returns the length of the zone
Definition: MWAWEntry.hxx:93
RagTime5ClusterManagerInternal::UnknownCParser
low level: parser of unknown cluster
Definition: RagTime5ClusterManager.cxx:2312
RagTime5ClusterManager::Link::L_FieldsList
@ L_FieldsList
Definition: RagTime5ClusterManager.hxx:117
RagTime5Zone::getInput
MWAWInputStreamPtr getInput()
returns the current input
Definition: RagTime5StructManager.hxx:94
RagTime5ClusterManager::NameLink::m_posToNamesLinks
Link m_posToNamesLinks[2]
the corresponding link (for big list)
Definition: RagTime5ClusterManager.hxx:253
MWAWDebug.hxx
RagTime5ClusterManager::Cluster::C_GraphicStyles
@ C_GraphicStyles
Definition: RagTime5ClusterManager.hxx:272
MWAWEntry::begin
long begin() const
returns the begin offset
Definition: MWAWEntry.hxx:83
RagTime5ClusterManager::Link::m_longList
std::vector< long > m_longList
a list of long used to store decal
Definition: RagTime5ClusterManager.hxx:218
RagTime5ClusterManager::readCluster
bool readCluster(RagTime5Zone &zone, std::shared_ptr< Cluster > &cluster, int type=-1)
try to read a cluster zone
RagTime5ClusterManagerInternal::State::State
State()
constructor
Definition: RagTime5ClusterManager.cxx:147
RagTime5ClusterManagerInternal::ClusterInformation::m_name
librevenge::RVNGString m_name
the cluster name
Definition: RagTime5ClusterManager.cxx:142
RagTime5ClusterManagerInternal::GroupCParser::m_fieldName
std::string m_fieldName
the actual field name
Definition: RagTime5ClusterManager.cxx:1813
RagTime5ClusterManagerInternal::RootCParser::parseDataZone
bool parseDataZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f)
parse a data block
Definition: RagTime5ClusterManager.cxx:1015
RagTime5ClusterManagerInternal::ColPatCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
parse a zone
Definition: RagTime5ClusterManager.cxx:647
RagTime5ClusterManager::Cluster::C_ButtonZone
@ C_ButtonZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5ClusterManager::Cluster::C_ColorStyles
@ C_ColorStyles
Definition: RagTime5ClusterManager.hxx:272
MWAWEntry::setId
void setId(int newId)
sets the id
Definition: MWAWEntry.hxx:169
RagTime5ClusterManager::Cluster::C_FormulaPos
@ C_FormulaPos
Definition: RagTime5ClusterManager.hxx:264
RagTime5ClusterManager::Cluster::m_childLink
Link m_childLink
the child link
Definition: RagTime5ClusterManager.hxx:306
RagTime5ClusterManagerInternal::State::m_rootIdList
std::vector< int > m_rootIdList
the root id list
Definition: RagTime5ClusterManager.cxx:158
RagTime5Document::getDataZone
std::shared_ptr< RagTime5Zone > getDataZone(int dataId) const
returns the zone corresponding to a data id (or 0)
Definition: RagTime5Document.cxx:465
RagTime5ClusterManagerInternal::SoundCParser::endZone
void endZone() final
end of a start zone call
Definition: RagTime5ClusterManager.cxx:2008
RagTime5ClusterManager::Cluster::m_nameLink
NameLink m_nameLink
the name link
Definition: RagTime5ClusterManager.hxx:312
RagTime5ClusterManager::Link::operator<<
friend std::ostream & operator<<(std::ostream &o, Link const &z)
operator<<
Definition: RagTime5ClusterManager.hxx:185
RagTime5ClusterManager::ClusterRoot::ClusterRoot
ClusterRoot()
constructor
Definition: RagTime5ClusterManager.hxx:331
RagTime5ClusterManager::ClusterRoot::m_graphicTypeLink
Link m_graphicTypeLink
the graphic type id
Definition: RagTime5ClusterManager.hxx:358
MWAWPosition::Char
@ Char
Definition: MWAWPosition.hxx:51
RagTime5ClusterManager::Cluster::m_linksList
std::vector< Link > m_linksList
the link list
Definition: RagTime5ClusterManager.hxx:318
RagTime5ClusterManager::Cluster::Type
Type
the cluster type
Definition: RagTime5ClusterManager.hxx:263
RagTime5ClusterManagerInternal::ColPatCParser
low level: parser of color pattern cluster : zone 0x8042
Definition: RagTime5ClusterManager.cxx:632
RagTime5Zone::m_name
std::string m_name
the zone name ( mainly used for debugging)
Definition: RagTime5StructManager.hxx:136
RagTime5ClusterManager::ClusterParser::getZoneName
virtual std::string getZoneName(int n, int m=-1) const
return the debug name corresponding to a cluster
Definition: RagTime5ClusterManager.hxx:402
RagTime5ClusterManager::Cluster::m_dataLink
Link m_dataLink
the main data link
Definition: RagTime5ClusterManager.hxx:310
RagTime5ClusterManagerInternal::UnknownCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::Cluster > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:2331
MWAWEntry::end
long end() const
returns the end offset
Definition: MWAWEntry.hxx:88
RagTime5ClusterManagerInternal::RootChildCParser::RootChildCParser
RootChildCParser(RagTime5ClusterManager &parser, int type)
constructor
Definition: RagTime5ClusterManager.cxx:1520
RagTime5ClusterManager::ClusterParser::getNewZoneToParse
virtual int getNewZoneToParse()
returns to new zone to parse.
Definition: RagTime5ClusterManager.hxx:430
RagTime5Document::readClusterLinkList
bool readClusterLinkList(RagTime5Zone &zone, RagTime5ClusterManager::Link const &link, std::vector< RagTime5StructManager::ZoneLink > &listLinks)
try to read a cluster link zone
Definition: RagTime5Document.cxx:1217
RagTime5ClusterManager::RagTime5ClusterManager
RagTime5ClusterManager(RagTime5ClusterManager const &orig)=delete
RagTime5ClusterManager::Link::L_List
@ L_List
Definition: RagTime5ClusterManager.hxx:117
RagTime5ClusterManager::Cluster::m_name
librevenge::RVNGString m_name
the cluster name (if know)
Definition: RagTime5ClusterManager.hxx:304
RagTime5ClusterManager::ClusterRoot
the cluster for root
Definition: RagTime5ClusterManager.hxx:329
RagTime5ClusterManager::setClusterName
void setClusterName(int id, librevenge::RVNGString const &name)
define a cluster name (used to associate graph name)
Definition: RagTime5ClusterManager.cxx:240
RagTime5ClusterManager::ClusterRoot::m_docInfoLink
Link m_docInfoLink
the doc info link
Definition: RagTime5ClusterManager.hxx:354
RagTime5ClusterManager::NameLink::empty
bool empty() const
returns true if all link are empty
Definition: RagTime5ClusterManager.hxx:238
RagTime5ClusterManager::ClusterParser::m_parser
RagTime5ClusterManager & m_parser
the main parser
Definition: RagTime5ClusterManager.hxx:449
RagTime5ClusterManagerInternal::ClusterInformation
cluster information
Definition: RagTime5ClusterManager.cxx:52
RagTime5ClusterManager::Cluster::m_zoneId
int m_zoneId
the zone id
Definition: RagTime5ClusterManager.hxx:300
RagTime5ClusterManager::ClusterParser::operator=
ClusterParser & operator=(ClusterParser const &orig)=delete
RagTime5ClusterManagerInternal::RootChildCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::Cluster > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:1691
RagTime5ClusterManager::Cluster::C_ClusterGProp
@ C_ClusterGProp
Definition: RagTime5ClusterManager.hxx:265
RagTime5ClusterManager::ClusterParser::getCluster
virtual std::shared_ptr< Cluster > getCluster()=0
return the current cluster
RagTime5StructManager::Field::T_LongList
@ T_LongList
Definition: RagTime5StructManager.hxx:244
RagTime5ClusterManager::readCluster
bool readCluster(RagTime5Zone &zone, ClusterParser &parser, bool warnForUnparsed=true)
try to read a cluster zone
Definition: RagTime5ClusterManager.cxx:365
RagTime5ClusterManager::Cluster::C_SpreadsheetZone
@ C_SpreadsheetZone
Definition: RagTime5ClusterManager.hxx:268
RagTime5ClusterManagerInternal::StyleCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::Cluster > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:2300
RagTime5ClusterManager::NameLink::NameLink
NameLink(Link const &lnk)
constructor from list
Definition: RagTime5ClusterManager.hxx:231
RagTime5ClusterManager::ClusterParser::~ClusterParser
virtual ~ClusterParser()
destructor
Definition: RagTime5ClusterManager.cxx:180
libmwaw::DebugFile::addPos
void addPos(long pos)
adds a new position in the file
Definition: MWAWDebug.cxx:53
RagTime5ClusterManager::getClusterDebugName
std::string getClusterDebugName(int id)
returns "data"+id+"A" ( followed by the cluster type and name if know)
Definition: RagTime5ClusterManager.cxx:230
RagTime5ClusterManager::Link::m_fileType
unsigned long m_fileType[2]
the zone type in file
Definition: RagTime5ClusterManager.hxx:216
MWAWEntry::valid
bool valid() const
returns true if the zone length is positive
Definition: MWAWEntry.hxx:99
RagTime5ClusterManager::ClusterParser::endZone
virtual void endZone()
end of a start zone call
Definition: RagTime5ClusterManager.hxx:420
RagTime5ClusterManagerInternal::RootCParser::m_fieldName
std::string m_fieldName
the actual field name
Definition: RagTime5ClusterManager.cxx:1503
RagTime5StructManager
basic class used to store RagTime 5/6 structures
Definition: RagTime5StructManager.hxx:175
RagTime5ClusterManagerInternal::SoundCParser::parseHeaderZone
bool parseHeaderZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f)
parse the header zone
Definition: RagTime5ClusterManager.cxx:1967
RagTime5ClusterManagerInternal::RootChildCParser
try to read a basic root child cluster: either fielddef or fieldpos or a first internal child of the ...
Definition: RagTime5ClusterManager.cxx:1518
RagTime5Zone::m_ids
int m_ids[3]
the zone id
Definition: RagTime5StructManager.hxx:140
RagTime5ClusterManager::Cluster::C_Empty
@ C_Empty
Definition: RagTime5ClusterManager.hxx:276
RagTime5StructManager::readCompressedLong
static bool readCompressedLong(MWAWInputStreamPtr &input, long endPos, long &val)
try to read a compressed long
Definition: RagTime5StructManager.cxx:78
RagTime5ClusterManagerInternal::RootChildCParser::endZone
void endZone() final
end of a start zone call
Definition: RagTime5ClusterManager.cxx:1680
RagTime5Document::readSpreadsheetCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readSpreadsheetCluster(RagTime5Zone &zone, int zoneType)
try to read a spreadsheet cluster (via the spreadsheet manager)
Definition: RagTime5Document.cxx:455
RagTime5ClusterManager::Link
a link to a small zone (or set of zones) in RagTime 5/6 documents
Definition: RagTime5ClusterManager.hxx:113
RagTime5ClusterManager::ClusterRoot::~ClusterRoot
~ClusterRoot() final
destructor
Definition: RagTime5ClusterManager.cxx:184
RagTime5ClusterManagerInternal::RootChildCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
parse a zone
Definition: RagTime5ClusterManager.cxx:1567
RagTime5ClusterManager::readClusterGObjProperties
bool readClusterGObjProperties(RagTime5Zone &zone)
try to read a level 2 child of a cluster (picture resizing, ...)
Definition: RagTime5ClusterManager.cxx:2493
RagTime5ClusterManager::Cluster::C_FormulaDef
@ C_FormulaDef
Definition: RagTime5ClusterManager.hxx:264
libmwaw::DebugFile
an interface used to insert comment in a binary file, written in ascii form (if debug_with_files is n...
Definition: MWAWDebug.hxx:66
RagTime5ClusterManager::NameLink::NameLink
NameLink()
default constructor
Definition: RagTime5ClusterManager.hxx:224
RagTime5ClusterManager::Cluster
the cluster data
Definition: RagTime5ClusterManager.hxx:261
RagTime5ClusterManager::ClusterParser::m_hiLoEndian
bool m_hiLoEndian
zone endian
Definition: RagTime5ClusterManager.hxx:453
RagTime5Document::ascii
libmwaw::DebugFile & ascii()
a DebugFile used to write what we recognize when we parse the document
Definition: RagTime5Document.hxx:132
RagTime5ClusterManagerInternal::StyleCParser::m_fieldName
std::string m_fieldName
the actual field name
Definition: RagTime5ClusterManager.cxx:2302
RagTime5ClusterManager::Link::m_type
Type m_type
the link type
Definition: RagTime5ClusterManager.hxx:206
RagTime5ClusterManager::Cluster::m_type
Type m_type
the cluster type
Definition: RagTime5ClusterManager.hxx:298
RagTime5ClusterManager::ClusterParser::m_type
int m_type
the cluster type
Definition: RagTime5ClusterManager.hxx:451
RagTime5ClusterManager::m_structManager
std::shared_ptr< RagTime5StructManager > m_structManager
the structure manager
Definition: RagTime5ClusterManager.hxx:470
RagTime5ClusterManagerInternal::RootCParser::m_what
int m_what
a index to know which field is parsed : 0: main, 1: filename, 2: list, 3: graph type,...
Definition: RagTime5ClusterManager.cxx:1499
MWAWListenerPtr
std::shared_ptr< MWAWListener > MWAWListenerPtr
a smart pointer of MWAWListener
Definition: libmwaw_internal.hxx:553
MWAWPosition::m_anchorTo
AnchorTo m_anchorTo
anchor position
Definition: MWAWPosition.hxx:270
librevenge
Definition: MWAWDocument.hxx:57
RagTime5ClusterManagerInternal::ColPatCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::Cluster > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:772
RagTime5ClusterManagerInternal::RootCParser::getNewZoneToParse
int getNewZoneToParse() final
returns to new zone to parse.
Definition: RagTime5ClusterManager.cxx:807
RagTime5ClusterManager::Link::L_Unknown
@ L_Unknown
Definition: RagTime5ClusterManager.hxx:119
RagTime5Document::readPictureCluster
std::shared_ptr< RagTime5ClusterManager::Cluster > readPictureCluster(RagTime5Zone &zone, int zoneType)
try to read a picture cluster (via the graphic manager)
Definition: RagTime5Document.cxx:450
RagTime5ClusterManagerInternal::GroupCParser::GroupCParser
GroupCParser(RagTime5ClusterManager &parser, int type)
constructor
Definition: RagTime5ClusterManager.cxx:1703
RagTime5ClusterManagerInternal::GroupCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:1763
RagTime5Document::readUnicodeStringList
bool readUnicodeStringList(RagTime5ClusterManager::NameLink const &link, std::map< int, librevenge::RVNGString > &idToStringMap)
try to read a list of unicode string zone
Definition: RagTime5Document.cxx:843
RagTime5Document::readClusterZone
bool readClusterZone(RagTime5Zone &zone, int type=-1)
try to read a cluster zone
Definition: RagTime5Document.cxx:1132
RagTime5ClusterManager::NameLink::m_decalList
std::vector< long > m_decalList
a list of long used to store decal
Definition: RagTime5ClusterManager.hxx:249
RagTime5ClusterManagerInternal::RootCParser::m_linkId
int m_linkId
the link id : 0: zone[names], 1: field5=doc[info]?, 2: field6, 3: settings, 4: function names,...
Definition: RagTime5ClusterManager.cxx:1501
RagTime5ClusterManager::RagTime5ClusterManager
RagTime5ClusterManager(RagTime5Document &doc)
constructor
Definition: RagTime5ClusterManager.cxx:165
RagTime5ClusterManager::Cluster::C_UnitStyles
@ C_UnitStyles
Definition: RagTime5ClusterManager.hxx:272
RagTime5Document::send
bool send(int zoneId, MWAWListenerPtr listener, MWAWPosition const &pos, int partId=0, int cellId=0, double totalWidth=-1)
try to send a cluster zone (mainly unimplemented)
Definition: RagTime5Document.cxx:2609
RagTime5ClusterManagerInternal::GroupCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::Cluster > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:1811
RagTime5Zone::m_hiLoEndian
bool m_hiLoEndian
true if the endian is hilo
Definition: RagTime5StructManager.hxx:138
RagTime5ClusterManagerInternal::SoundCParser::parseField
bool parseField(RagTime5StructManager::Field const &field, int, libmwaw::DebugStream &f) final
parse a field
Definition: RagTime5ClusterManager.cxx:1934
RagTime5ClusterManager::Cluster::C_Layout
@ C_Layout
Definition: RagTime5ClusterManager.hxx:264
RagTime5ClusterManager::ClusterRoot::m_clusterIds
int m_clusterIds[1]
other cluster id (unknown cluster b, )
Definition: RagTime5ClusterManager.hxx:351
RagTime5StructManager::readDataIdList
static bool readDataIdList(MWAWInputStreamPtr input, int n, std::vector< int > &listIds)
try to read n data id
Definition: RagTime5StructManager.cxx:332
libmwaw::DebugStream
std::stringstream DebugStream
a basic stream (if debug_with_files is not defined, does nothing)
Definition: MWAWDebug.hxx:61
RagTime5ClusterManagerInternal::RootCParser::parseZone
bool parseZone(MWAWInputStreamPtr &input, long fSz, int N, int flag, libmwaw::DebugStream &f) final
parse the header zone
Definition: RagTime5ClusterManager.cxx:877
RagTime5ClusterManagerInternal::StyleCParser::endZone
void endZone() final
end of a start zone call
Definition: RagTime5ClusterManager.cxx:2285
RagTime5ClusterManagerInternal::RootCParser::m_cluster
std::shared_ptr< RagTime5ClusterManager::ClusterRoot > m_cluster
the current cluster
Definition: RagTime5ClusterManager.cxx:1497
RagTime5ClusterManager::Cluster::C_Root
@ C_Root
Definition: RagTime5ClusterManager.hxx:265
RagTime5ClusterManager::Link::m_name
std::string m_name
the link name
Definition: RagTime5ClusterManager.hxx:208
RagTime5ClusterManager::ClusterParser::ClusterParser
ClusterParser(RagTime5ClusterManager &parser, int type, std::string const &zoneName)
constructor
Definition: RagTime5ClusterManager.hxx:383
RagTime5ClusterManager::Cluster::C_Unknown
@ C_Unknown
Definition: RagTime5ClusterManager.hxx:276
RagTime5ClusterManager::Cluster::m_settingLinks
std::vector< Link > m_settingLinks
the settings links
Definition: RagTime5ClusterManager.hxx:316
RagTime5ClusterManager::Link::m_fieldSize
int m_fieldSize
the field size
Definition: RagTime5ClusterManager.hxx:214
RagTime5ClusterManagerInternal::RootCParser
try to read a root cluster: 4001
Definition: RagTime5ClusterManager.cxx:782
RagTime5ClusterManagerInternal::State
Internal: the state of a RagTime5ClusterManager.
Definition: RagTime5ClusterManager.cxx:145
RagTime5ClusterManager::Cluster::m_clusterIdsList
std::vector< int > m_clusterIdsList
the cluster ids
Definition: RagTime5ClusterManager.hxx:320