VSDXParser.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 __VSDXPARSER_H__
11#define __VSDXPARSER_H__
12
13#include <librevenge/librevenge.h>
14#include "VSDXTheme.h"
15#include "VSDXMLParserBase.h"
16
17namespace libvisio
18{
19
20class VSDCollector;
21
23{
29
30
31public:
32 explicit VSDXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
33 ~VSDXParser() override;
34 bool parseMain() override;
35 bool extractStencils() override;
36
37private:
41
42 // Helper functions
43
44 xmlChar *readStringData(xmlTextReaderPtr reader) override;
45
46 int getElementToken(xmlTextReaderPtr reader) override;
47 int getElementDepth(xmlTextReaderPtr reader) override;
48
49 int skipSection(xmlTextReaderPtr reader);
50
51 // Functions parsing the Visio 2013 OPC document structure
52
53 bool parseDocument(librevenge::RVNGInputStream *input, const char *name);
54 bool parseMasters(librevenge::RVNGInputStream *input, const char *name);
55 bool parseMaster(librevenge::RVNGInputStream *input, const char *name);
56 bool parsePages(librevenge::RVNGInputStream *input, const char *name);
57 bool parsePage(librevenge::RVNGInputStream *input, const char *name);
58 bool parseTheme(librevenge::RVNGInputStream *input, const char *name);
59 void parseMetaData(librevenge::RVNGInputStream *input, VSDXRelationships &rels);
60 void processXmlDocument(librevenge::RVNGInputStream *input, VSDXRelationships &rels);
61 void processXmlNode(xmlTextReaderPtr reader);
62
63 // Functions reading the Visio 2013 OPC document content
64
65 void extractBinaryData(librevenge::RVNGInputStream *input, const char *name);
66
67 void readPageSheetProperties(xmlTextReaderPtr reader);
68
69 void readStyleProperties(xmlTextReaderPtr reader);
70
71 void readShapeProperties(xmlTextReaderPtr reader);
72
73 void getBinaryData(xmlTextReaderPtr reader) override;
74
75 void readLayer(xmlTextReaderPtr reader);
76 void readParagraph(xmlTextReaderPtr reader);
77 void readCharacter(xmlTextReaderPtr reader);
78 void readFonts(xmlTextReaderPtr reader);
79 void readTabs(xmlTextReaderPtr reader);
80 void readTabRow(xmlTextReaderPtr reader);
81
82 // Private data
83
84 librevenge::RVNGInputStream *m_input;
85 librevenge::RVNGDrawingInterface *m_painter;
89};
90
91} // namespace libvisio
92
93#endif // __VSDXPARSER_H__
94/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
Definition VSDCollector.h:21
int readStringData(VSDName &text, xmlTextReaderPtr reader)
Definition VSDXMLParserBase.cpp:2074
int readDoubleData(boost::optional< double > &value, xmlTextReaderPtr reader)
Definition VSDXMLParserBase.cpp:2090
int readBoolData(boost::optional< bool > &value, xmlTextReaderPtr reader)
Definition VSDXMLParserBase.cpp:2142
int readExtendedColourData(Colour &value, long &idx, xmlTextReaderPtr reader)
Definition VSDXMLParserBase.cpp:2181
int readLongData(boost::optional< long > &value, xmlTextReaderPtr reader)
Definition VSDXMLParserBase.cpp:2116
VSDXMLParserBase()
Definition VSDXMLParserBase.cpp:29
bool parseDocument(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:113
void readShapeProperties(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:948
void readTabs(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1360
VSDXRelationships * m_rels
Definition VSDXParser.h:87
int getElementToken(xmlTextReaderPtr reader) override
Definition VSDXParser.cpp:563
librevenge::RVNGDrawingInterface * m_painter
Definition VSDXParser.h:85
void readCharacter(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1445
bool extractStencils() override
Definition VSDXParser.cpp:107
int m_currentDepth
Definition VSDXParser.h:86
VSDXTheme m_currentTheme
Definition VSDXParser.h:88
VSDXParser & operator=(const VSDXParser &)
int skipSection(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1492
bool parseMasters(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:167
xmlChar * readStringData(xmlTextReaderPtr reader) override
Definition VSDXParser.cpp:552
void processXmlNode(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:372
void extractBinaryData(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:531
void parseMetaData(librevenge::RVNGInputStream *input, VSDXRelationships &rels)
Definition VSDXParser.cpp:263
VSDXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter)
Definition VSDXParser.cpp:51
void readStyleProperties(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:706
librevenge::RVNGInputStream * m_input
Definition VSDXParser.h:84
void processXmlDocument(librevenge::RVNGInputStream *input, VSDXRelationships &rels)
Definition VSDXParser.cpp:298
void readFonts(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:675
bool parseMaster(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:187
bool parsePages(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:207
VSDXParser(const VSDXParser &)
void getBinaryData(xmlTextReaderPtr reader) override
Definition VSDXParser.cpp:1466
void readPageSheetProperties(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:605
bool parsePage(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:227
void readTabRow(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1388
int getElementDepth(xmlTextReaderPtr reader) override
Definition VSDXParser.cpp:943
~VSDXParser() override
Definition VSDXParser.cpp:61
void readLayer(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1318
bool parseMain() override
Definition VSDXParser.cpp:65
bool parseTheme(librevenge::RVNGInputStream *input, const char *name)
Definition VSDXParser.cpp:247
void readParagraph(xmlTextReaderPtr reader)
Definition VSDXParser.cpp:1339
Definition VSDXMLHelper.h:57
Definition VSDXTheme.h:77
Definition libvisio_utils.h:49

Generated for libvisio by doxygen 1.14.0