VDXParser.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 libvisio 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 __VDXPARSER_H__
11 #define __VDXPARSER_H__
12 
13 #include <librevenge/librevenge.h>
14 #include "VSDXMLParserBase.h"
15 
16 namespace libvisio
17 {
18 
19 class VSDCollector;
20 
22 {
28 
29 public:
30  explicit VDXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
31  ~VDXParser() override;
32  bool parseMain() override;
33  bool extractStencils() override;
34 
35 private:
36  VDXParser();
37  VDXParser(const VDXParser &);
38  VDXParser &operator=(const VDXParser &);
39 
40  // Helper functions
41 
42  xmlChar *readStringData(xmlTextReaderPtr reader) override;
43 
44  int getElementToken(xmlTextReaderPtr reader) override;
45  int getElementDepth(xmlTextReaderPtr reader) override;
46 
47  // Functions to read the DatadiagramML document structure
48 
49  bool processXmlDocument(librevenge::RVNGInputStream *input);
50  void processXmlNode(xmlTextReaderPtr reader);
51 
52  // Functions reading the DiagramML document content
53 
54  void readLine(xmlTextReaderPtr reader);
55  void readFillAndShadow(xmlTextReaderPtr reader);
56  void readXFormData(xmlTextReaderPtr reader);
57  void readMisc(xmlTextReaderPtr reader);
58  void readTxtXForm(xmlTextReaderPtr reader);
59  void readXForm1D(xmlTextReaderPtr reader);
60  void readPageProps(xmlTextReaderPtr reader);
61  void readFonts(xmlTextReaderPtr reader);
62  void readTextBlock(xmlTextReaderPtr reader);
63  void readForeignInfo(xmlTextReaderPtr reader);
64  void readLayerMem(xmlTextReaderPtr reader);
65  void readTabs(xmlTextReaderPtr reader);
66  void readTab(xmlTextReaderPtr reader);
67 
68  void getBinaryData(xmlTextReaderPtr reader) override;
69 
70  // Private data
71 
72  librevenge::RVNGInputStream *m_input;
73  librevenge::RVNGDrawingInterface *m_painter;
74 };
75 
76 } // namespace libvisio
77 
78 #endif // __VDXPARSER_H__
79 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void readTextBlock(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:828
bool parseMain() override
Definition: VDXParser.cpp:33
int getElementDepth(xmlTextReaderPtr reader) override
Definition: VDXParser.cpp:931
~VDXParser() override
Definition: VDXParser.cpp:29
Definition: VDXParser.h:21
void readXFormData(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:510
void getBinaryData(xmlTextReaderPtr reader) override
Definition: VDXParser.cpp:936
bool processXmlDocument(librevenge::RVNGInputStream *input)
Definition: VDXParser.cpp:72
int readStringData(VSDName &text, xmlTextReaderPtr reader)
Definition: VSDXMLParserBase.cpp:2073
int readBoolData(boost::optional< bool > &value, xmlTextReaderPtr reader)
Definition: VSDXMLParserBase.cpp:2141
void readPageProps(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:730
void processXmlNode(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:93
VDXParser & operator=(const VDXParser &)
void readTxtXForm(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:596
void readLayerMem(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:569
int readDoubleData(boost::optional< double > &value, xmlTextReaderPtr reader)
Definition: VSDXMLParserBase.cpp:2089
void readFonts(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:796
void readMisc(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:467
librevenge::RVNGInputStream * m_input
Definition: VDXParser.h:72
void readTabs(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:1007
void readLine(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:314
void readForeignInfo(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:952
int readLongData(boost::optional< long > &value, xmlTextReaderPtr reader)
Definition: VSDXMLParserBase.cpp:2115
int readExtendedColourData(Colour &value, long &idx, xmlTextReaderPtr reader)
Definition: VSDXMLParserBase.cpp:2180
void readFillAndShadow(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:379
Definition: libvisio_utils.h:48
Definition: VSDXMLParserBase.h:30
librevenge::RVNGDrawingInterface * m_painter
Definition: VDXParser.h:73
int getElementToken(xmlTextReaderPtr reader) override
Definition: VDXParser.cpp:926
void readXForm1D(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:675
void readTab(xmlTextReaderPtr reader)
Definition: VDXParser.cpp:1038
bool extractStencils() override
Definition: VDXParser.cpp:66
xmlChar * readStringData(xmlTextReaderPtr reader) override
Definition: VDXParser.cpp:910

Generated for libvisio by doxygen 1.8.8