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);
53 bool extractStencils();
57 void readEllipticalArcTo(librevenge::RVNGInputStream *input);
58 void readForeignData(librevenge::RVNGInputStream *input);
59 void readEllipse(librevenge::RVNGInputStream *input);
60 virtual void readLine(librevenge::RVNGInputStream *input);
61 virtual void readFillAndShadow(librevenge::RVNGInputStream *input);
62 virtual void readGeomList(librevenge::RVNGInputStream *input);
63 void readGeometry(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);
68 void readPolylineTo(librevenge::RVNGInputStream *input);
69 void readInfiniteLine(librevenge::RVNGInputStream *input);
70 void readShapeData(librevenge::RVNGInputStream *input);
71 void readXFormData(librevenge::RVNGInputStream *input);
72 virtual void readXForm1D(librevenge::RVNGInputStream *input);
73 void readTxtXForm(librevenge::RVNGInputStream *input);
74 void readShapeId(librevenge::RVNGInputStream *input);
75 virtual void readShapeList(librevenge::RVNGInputStream *input);
76 void readForeignDataType(librevenge::RVNGInputStream *input);
77 void readPageProps(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);
90 virtual void readTabsDataList(librevenge::RVNGInputStream *input);
91 virtual void readTabsData(librevenge::RVNGInputStream *input);
93 void readNameList(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);
102 virtual void readStyleSheet(librevenge::RVNGInputStream *input);
103 void readPageSheet(librevenge::RVNGInputStream *input);
105 void readSplineStart(librevenge::RVNGInputStream *input);
106 void readSplineKnot(librevenge::RVNGInputStream *input);
108 void readStencilShape(librevenge::RVNGInputStream *input);
110 void readOLEList(librevenge::RVNGInputStream *input);
111 void readOLEData(librevenge::RVNGInputStream *input);
113 virtual void readNameIDX(librevenge::RVNGInputStream *input);
114 virtual void readNameIDX123(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);
125 void parseMetaData();
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);
134 virtual void readPointer(librevenge::RVNGInputStream *input,
Pointer &ptr);
135 virtual void readPointerInfo(librevenge::RVNGInputStream *input,
unsigned ptrType,
unsigned shift,
unsigned &listSize,
int &pointerCount);
136 virtual bool getChunkHeader(librevenge::RVNGInputStream *input);
137 void _handleLevelChange(
unsigned level);
138 Colour _colourFromIndex(
unsigned idx);
140 void _nameFromId(
VSDName &name,
unsigned id,
unsigned level);
142 virtual unsigned getUInt(librevenge::RVNGInputStream *input);
143 virtual int getInt(librevenge::RVNGInputStream *input);
191 #endif // __VSDPARSER_H__ librevenge::RVNGInputStream * m_input
Definition: VSDParser.h:145
Definition: VSDStencils.h:27
unsigned m_currentLevel
Definition: VSDParser.h:151
librevenge::RVNGInputStream * m_container
Definition: VSDParser.h:147
bool m_isShapeStarted
Definition: VSDParser.h:167
bool m_isBackgroundPage
Definition: VSDParser.h:166
VSDShapeList m_shapeList
Definition: VSDParser.h:150
unsigned Offset
Definition: VSDParser.h:41
unsigned m_currentLayerListLevel
Definition: VSDParser.h:161
Definition: VSDTypes.h:70
Definition: VSDParser.h:34
ChunkHeader m_header
Definition: VSDParser.h:148
double m_shadowOffsetX
Definition: VSDParser.h:169
std::vector< Colour > m_colours
Definition: VSDParser.h:164
librevenge::RVNGDrawingInterface * m_painter
Definition: VSDParser.h:146
VSDName m_currentPageName
Definition: VSDParser.h:178
unsigned m_currentShapeLevel
Definition: VSDParser.h:158
std::map< unsigned, VSDName > m_fonts
Definition: VSDParser.h:175
Definition: VSDStencils.h:78
Definition: VSDParser.h:47
Definition: VSDCollector.h:20
std::map< unsigned, VSDTabStop > * m_currentTabSet
Definition: VSDParser.h:180
unsigned Length
Definition: VSDParser.h:42
VSDStencil * m_currentStencil
Definition: VSDParser.h:154
unsigned m_currentShapeID
Definition: VSDParser.h:159
VSDGeometryList * m_currentGeometryList
Definition: VSDParser.h:172
unsigned ListSize
Definition: VSDParser.h:44
double m_shadowOffsetY
Definition: VSDParser.h:170
bool m_isStencilStarted
Definition: VSDParser.h:156
std::map< unsigned, std::map< unsigned, VSDName > > m_namesMapMap
Definition: VSDParser.h:177
Definition: VSDStencils.h:62
Definition: libvisio_utils.h:48
unsigned m_currentGeomListCount
Definition: VSDParser.h:173
VSDStencils m_stencils
Definition: VSDParser.h:153
unsigned Type
Definition: VSDParser.h:40
Definition: VSDShapeList.h:19
VSDShape m_shape
Definition: VSDParser.h:155
unsigned short Format
Definition: VSDParser.h:43
bool m_extractStencils
Definition: VSDParser.h:163
Definition: VSDTypes.h:170
VSDCollector * m_collector
Definition: VSDParser.h:149
Pointer()
Definition: VSDParser.h:36
Pointer & operator=(const Pointer &ptr)=default
Definition: VSDGeometryList.h:47
bool m_isInStyles
Definition: VSDParser.h:157
std::map< unsigned, VSDName > m_names
Definition: VSDParser.h:176