10#ifndef __VSDPARSER_H__
11#define __VSDPARSER_H__
19#include <librevenge/librevenge.h>
50 explicit VSDParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter, librevenge::RVNGInputStream *container =
nullptr);
59 void readEllipse(librevenge::RVNGInputStream *input);
60 virtual void readLine(librevenge::RVNGInputStream *input);
62 virtual void readGeomList(librevenge::RVNGInputStream *input);
64 void readMoveTo(librevenge::RVNGInputStream *input);
65 void readLineTo(librevenge::RVNGInputStream *input);
66 void readArcTo(librevenge::RVNGInputStream *input);
67 void readNURBSTo(librevenge::RVNGInputStream *input);
72 virtual void readXForm1D(librevenge::RVNGInputStream *input);
74 void readShapeId(librevenge::RVNGInputStream *input);
75 virtual void readShapeList(librevenge::RVNGInputStream *input);
78 virtual void readShape(librevenge::RVNGInputStream *input);
79 void readColours(librevenge::RVNGInputStream *input);
80 void readFont(librevenge::RVNGInputStream *input);
81 void readFontIX(librevenge::RVNGInputStream *input);
82 virtual void readCharList(librevenge::RVNGInputStream *input);
83 virtual void readParaList(librevenge::RVNGInputStream *input);
84 virtual void readPropList(librevenge::RVNGInputStream *input);
85 virtual void readPage(librevenge::RVNGInputStream *input);
86 virtual void readText(librevenge::RVNGInputStream *input);
87 virtual void readCharIX(librevenge::RVNGInputStream *input);
88 virtual void readParaIX(librevenge::RVNGInputStream *input);
89 virtual void readTextBlock(librevenge::RVNGInputStream *input);
91 virtual void readTabsData(librevenge::RVNGInputStream *input);
94 virtual void readName(librevenge::RVNGInputStream *input);
96 virtual void readNameList2(librevenge::RVNGInputStream *input);
97 virtual void readName2(librevenge::RVNGInputStream *input);
99 virtual void readFieldList(librevenge::RVNGInputStream *input);
100 virtual void readTextField(librevenge::RVNGInputStream *input);
110 void readOLEList(librevenge::RVNGInputStream *input);
111 void readOLEData(librevenge::RVNGInputStream *input);
113 virtual void readNameIDX(librevenge::RVNGInputStream *input);
116 virtual void readMisc(librevenge::RVNGInputStream *input);
118 virtual void readLayerList(librevenge::RVNGInputStream *input);
119 virtual void readLayer(librevenge::RVNGInputStream *input);
120 virtual void readLayerMem(librevenge::RVNGInputStream *input);
123 bool parseDocument(librevenge::RVNGInputStream *input,
unsigned shift);
128 void handleStreams(librevenge::RVNGInputStream *input,
unsigned ptrType,
unsigned shift,
unsigned level, std::set<unsigned> &visited);
129 void handleStream(
const Pointer &ptr,
unsigned idx,
unsigned level, std::set<unsigned> &visited);
130 void handleChunks(librevenge::RVNGInputStream *input,
unsigned level);
131 void handleChunk(librevenge::RVNGInputStream *input);
132 void handleBlob(librevenge::RVNGInputStream *input,
unsigned shift,
unsigned level);
135 virtual void readPointerInfo(librevenge::RVNGInputStream *input,
unsigned ptrType,
unsigned shift,
unsigned &listSize,
int &pointerCount);
142 virtual unsigned getUInt(librevenge::RVNGInputStream *input);
143 virtual int getInt(librevenge::RVNGInputStream *input);
Definition VSDCollector.h:21
Definition VSDGeometryList.h:48
Definition VSDTypes.h:171
virtual bool getChunkHeader(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:51
void readOLEList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:781
virtual void readShape(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1283
virtual void readCharList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:960
void _handleLevelChange(unsigned level)
Definition VSDParser.cpp:716
virtual int getInt(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2303
bool parseMain()
Definition VSDParser.cpp:107
virtual void readPointerInfo(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount)
Definition VSDParser.cpp:211
virtual void readPage(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1088
void readStencilShape(librevenge::RVNGInputStream *input)
void readSplineKnot(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1699
bool m_isBackgroundPage
Definition VSDParser.h:166
void handleChunk(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:461
void readForeignDataType(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1226
void readFontIX(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1776
void readXFormData(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1141
librevenge::RVNGInputStream * m_container
Definition VSDParser.h:147
virtual void readTextField(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2178
VSDGeometryList * m_currentGeometryList
Definition VSDParser.h:172
double m_shadowOffsetX
Definition VSDParser.h:169
void handleChunks(librevenge::RVNGInputStream *input, unsigned level)
Definition VSDParser.cpp:443
unsigned m_currentGeomListCount
Definition VSDParser.h:173
void readNameList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1711
virtual void readPointer(librevenge::RVNGInputStream *input, Pointer &ptr)
Definition VSDParser.cpp:202
void readArcTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1128
virtual void readNameIDX(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:814
virtual void readParaIX(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1999
void parseMetaData()
Definition VSDParser.cpp:154
void readEllipticalArcTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:747
void readTxtXForm(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1175
virtual void readText(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1909
std::map< unsigned, std::map< unsigned, VSDName > > m_namesMapMap
Definition VSDParser.h:177
void handleBlob(librevenge::RVNGInputStream *input, unsigned shift, unsigned level)
Definition VSDParser.cpp:427
void handleStreams(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned level, std::set< unsigned > &visited)
Definition VSDParser.cpp:222
librevenge::RVNGInputStream * m_input
Definition VSDParser.h:145
void readNURBSTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1343
bool m_extractStencils
Definition VSDParser.h:163
void readShapeId(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1194
bool m_isStencilStarted
Definition VSDParser.h:156
void readPageProps(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1254
virtual void readGeomList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:930
VSDParser & operator=(const VSDParser &)
bool parseDocument(librevenge::RVNGInputStream *input, unsigned shift)
Definition VSDParser.cpp:180
virtual void readParaList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:982
void readLineTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1117
Colour _colourFromIndex(unsigned idx)
Definition VSDParser.cpp:2291
virtual void readTabsData(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:800
bool m_isShapeStarted
Definition VSDParser.h:167
void readColours(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1740
VSDParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter, librevenge::RVNGInputStream *container=nullptr)
Definition VSDParser.cpp:26
unsigned m_currentShapeLevel
Definition VSDParser.h:158
void handleStream(const Pointer &ptr, unsigned idx, unsigned level, std::set< unsigned > &visited)
Definition VSDParser.cpp:293
unsigned m_currentShapeID
Definition VSDParser.h:159
virtual void readTextBlock(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:895
virtual void readLayerList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1028
ChunkHeader m_header
Definition VSDParser.h:148
VSDShapeList m_shapeList
Definition VSDParser.h:150
unsigned m_currentLevel
Definition VSDParser.h:151
virtual void readLine(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:871
virtual void readShapeList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1202
VSDStencil * m_currentStencil
Definition VSDParser.h:154
VSDParser(const VSDParser &)
virtual ~VSDParser()
Definition VSDParser.cpp:35
void _flushShape()
Definition VSDParser.cpp:637
std::map< unsigned, VSDName > m_fonts
Definition VSDParser.h:175
bool extractStencils()
Definition VSDParser.cpp:196
VSDName m_currentPageName
Definition VSDParser.h:178
void readOLEData(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:785
unsigned m_currentLayerListLevel
Definition VSDParser.h:161
VSDCollector * m_collector
Definition VSDParser.h:149
void _nameFromId(VSDName &name, unsigned id, unsigned level)
Definition VSDParser.cpp:39
virtual void readStyleSheet(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1891
double m_shadowOffsetY
Definition VSDParser.h:170
virtual void readMisc(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2247
virtual void readCharIX(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1931
VSDShape m_shape
Definition VSDParser.h:155
void readForeignData(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:767
VSDStencils m_stencils
Definition VSDParser.h:153
void readGeometry(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1095
bool m_isInStyles
Definition VSDParser.h:157
virtual unsigned getUInt(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2298
virtual void readName2(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2163
virtual void readNameList2(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1716
void readPolylineTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1502
void readEllipse(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:852
void readMoveTo(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1106
void readSplineStart(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1684
virtual void readXForm1D(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1161
virtual void readPropList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1004
void readPageSheet(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1903
virtual void readLayer(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1048
void readInfiniteLine(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1601
virtual void readLayerMem(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1071
virtual void readNameIDX123(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:836
std::map< unsigned, VSDName > m_names
Definition VSDParser.h:176
std::map< unsigned, VSDTabStop > * m_currentTabSet
Definition VSDParser.h:180
librevenge::RVNGDrawingInterface * m_painter
Definition VSDParser.h:146
virtual void readName(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2152
std::vector< Colour > m_colours
Definition VSDParser.h:164
void readShapeData(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1615
void readFont(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1759
virtual void readFillAndShadow(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:2084
virtual void readFieldList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1721
virtual void readTabsDataList(librevenge::RVNGInputStream *input)
Definition VSDParser.cpp:1008
Definition VSDShapeList.h:20
Definition VSDStencils.h:28
Definition VSDStencils.h:64
Definition VSDStencils.h:80
Definition libvisio_utils.h:47
Definition VSDParser.h:35
unsigned Type
Definition VSDParser.h:40
unsigned Offset
Definition VSDParser.h:41
unsigned short Format
Definition VSDParser.h:43
unsigned Length
Definition VSDParser.h:42
Pointer & operator=(const Pointer &ptr)=default
Pointer()
Definition VSDParser.h:36
unsigned ListSize
Definition VSDParser.h:44
Pointer(const Pointer &ptr)=default