VSDCollector.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 VSDCOLLECTOR_H
11 #define VSDCOLLECTOR_H
12 
13 #include <vector>
14 #include <boost/optional.hpp>
15 #include "VSDParser.h"
16 
17 namespace libvisio
18 {
19 
21 {
22 public:
24  virtual ~VSDCollector() {}
25 
26  virtual void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc) = 0;
27  virtual void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData) = 0;
28  virtual void collectOLEList(unsigned id, unsigned level) = 0;
29  virtual void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData) = 0;
30  virtual void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop) = 0;
31  virtual void collectLine(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
32  const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
33  const boost::optional<unsigned char> &lineCap) = 0;
34  virtual void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
35  const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
36  const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
37  const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY) = 0;
38  virtual void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
39  const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
40  const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
41  const boost::optional<Colour> &shfgc) = 0;
42  virtual void collectThemeReference(unsigned level, const boost::optional<long> &lineColour, const boost::optional<long> &fillColour,
43  const boost::optional<long> &shadowColour, const boost::optional<long> &fontColour) = 0;
44  virtual void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow) = 0;
45  virtual void collectMoveTo(unsigned id, unsigned level, double x, double y) = 0;
46  virtual void collectLineTo(unsigned id, unsigned level, double x, double y) = 0;
47  virtual void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow) = 0;
48  virtual void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree,
49  const std::vector<std::pair<double, double> > &ctrlPnts, const std::vector<double> &kntVec, const std::vector<double> &weights) = 0;
50  virtual void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID) = 0;
51  virtual void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, const NURBSData &data) = 0;
52  virtual void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector<std::pair<double, double> > &points) = 0;
53  virtual void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned dataID) = 0;
54  virtual void collectPolylineTo(unsigned id, unsigned level, double x, double y, const PolylineData &data) = 0;
55  virtual void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, unsigned degree, double lastKnot,
56  std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights) = 0;
57  virtual void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points) = 0;
58  virtual void collectXFormData(unsigned level, const XForm &xform) = 0;
59  virtual void collectTxtXForm(unsigned level, const XForm &txtxform) = 0;
60  virtual void collectShapesOrder(unsigned id, unsigned level, const std::vector<unsigned> &shapeIds) = 0;
61  virtual void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height) = 0;
62  virtual void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale) = 0;
63  virtual void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName) = 0;
64  virtual void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle) = 0;
65  virtual void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree) = 0;
66  virtual void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot) = 0;
67  virtual void collectSplineEnd() = 0;
68  virtual void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2) = 0;
69  virtual void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) = 0;
70  virtual void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) = 0;
71  virtual void collectRelLineTo(unsigned id, unsigned level, double x, double y) = 0;
72  virtual void collectRelMoveTo(unsigned id, unsigned level, double x, double y) = 0;
73  virtual void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b) = 0;
74 
75  virtual void collectUnhandledChunk(unsigned id, unsigned level) = 0;
76 
77  virtual void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format) = 0;
78  virtual void collectCharIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
79  const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
80  const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
81  const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
82  const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
83  const boost::optional<bool> &subscript) = 0;
84  virtual void collectDefaultCharStyle(unsigned charCount, const boost::optional<VSDName> &font, const boost::optional<Colour> &fontColour,
85  const boost::optional<double> &fontSize, const boost::optional<bool> &bold, const boost::optional<bool> &italic,
86  const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline, const boost::optional<bool> &strikeout,
87  const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps, const boost::optional<bool> &initcaps,
88  const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript, const boost::optional<bool> &subscript) = 0;
89  virtual void collectParaIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
90  const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
91  const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
92  const boost::optional<unsigned> &flags) = 0;
93  virtual void collectDefaultParaStyle(unsigned charCount, const boost::optional<double> &indFirst, const boost::optional<double> &indLeft,
94  const boost::optional<double> &indRight, const boost::optional<double> &spLine, const boost::optional<double> &spBefore,
95  const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align, const boost::optional<unsigned> &flags) = 0;
96  virtual void collectTextBlock(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
97  const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
98  const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
99  const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
100  const boost::optional<unsigned char> &textDirection) = 0;
101  virtual void collectNameList(unsigned id, unsigned level) = 0;
102  virtual void collectName(unsigned id, unsigned level, const librevenge::RVNGBinaryData &name, TextFormat format) = 0;
103  virtual void collectPageSheet(unsigned id, unsigned level) = 0;
104  virtual void collectMisc(unsigned level, const VSDMisc &misc) = 0;
105 
106  // Style collectors
107  virtual void collectStyleSheet(unsigned id, unsigned level,unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle) = 0;
108  virtual void collectLineStyle(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
109  const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
110  const boost::optional<unsigned char> &lineCap) = 0;
111  virtual void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
112  const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
113  const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
114  const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY) = 0;
115  virtual void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
116  const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
117  const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
118  const boost::optional<Colour> &shfgc) = 0;
119  virtual void collectCharIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
120  const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
121  const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
122  const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
123  const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
124  const boost::optional<bool> &subscript) = 0;
125  virtual void collectParaIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
126  const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
127  const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
128  const boost::optional<unsigned> &flags) = 0;
129  virtual void collectTextBlockStyle(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
130  const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
131  const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
132  const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
133  const boost::optional<unsigned char> &textDirection) = 0;
134  virtual void collectStyleThemeReference(unsigned level, const boost::optional<long> &lineColour, const boost::optional<long> &fillColour,
135  const boost::optional<long> &shadowColour, const boost::optional<long> &fontColour) = 0;
136 
137  // Field list
138  virtual void collectFieldList(unsigned id, unsigned level) = 0;
139  virtual void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId) = 0;
140  virtual void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId) = 0;
141 
142  // Temporary hack
143  virtual void startPage(unsigned pageId) = 0;
144  virtual void endPage() = 0;
145  virtual void endPages() = 0;
146 
147 private:
148  VSDCollector(const VSDCollector &);
150 };
151 
152 } // namespace libvisio
153 
154 #endif /* VSDCOLLECTOR_H */
155 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
virtual void collectLineTo(unsigned id, unsigned level, double x, double y)=0
virtual void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop)=0
virtual void collectParaIX(unsigned id, unsigned level, unsigned charCount, const boost::optional< double > &indFirst, const boost::optional< double > &indLeft, const boost::optional< double > &indRight, const boost::optional< double > &spLine, const boost::optional< double > &spBefore, const boost::optional< double > &spAfter, const boost::optional< unsigned char > &align, const boost::optional< unsigned > &flags)=0
virtual void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree)=0
virtual void collectMisc(unsigned level, const VSDMisc &misc)=0
virtual void endPage()=0
virtual void collectPageSheet(unsigned id, unsigned level)=0
virtual void collectOLEList(unsigned id, unsigned level)=0
VSDCollector()
Definition: VSDCollector.h:23
Definition: VSDTypes.h:80
virtual void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId)=0
virtual void collectRelLineTo(unsigned id, unsigned level, double x, double y)=0
virtual void collectDefaultParaStyle(unsigned charCount, const boost::optional< double > &indFirst, const boost::optional< double > &indLeft, const boost::optional< double > &indRight, const boost::optional< double > &spLine, const boost::optional< double > &spBefore, const boost::optional< double > &spAfter, const boost::optional< unsigned char > &align, const boost::optional< unsigned > &flags)=0
virtual void collectSplineEnd()=0
virtual void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree, const std::vector< std::pair< double, double > > &ctrlPnts, const std::vector< double > &kntVec, const std::vector< double > &weights)=0
virtual void collectCharIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional< VSDName > &font, const boost::optional< Colour > &fontColour, const boost::optional< double > &fontSize, const boost::optional< bool > &bold, const boost::optional< bool > &italic, const boost::optional< bool > &underline, const boost::optional< bool > &doubleunderline, const boost::optional< bool > &strikeout, const boost::optional< bool > &doublestrikeout, const boost::optional< bool > &allcaps, const boost::optional< bool > &initcaps, const boost::optional< bool > &smallcaps, const boost::optional< bool > &superscript, const boost::optional< bool > &subscript)=0
virtual void collectShapesOrder(unsigned id, unsigned level, const std::vector< unsigned > &shapeIds)=0
virtual void collectLineStyle(unsigned level, const boost::optional< double > &strokeWidth, const boost::optional< Colour > &c, const boost::optional< unsigned char > &linePattern, const boost::optional< unsigned char > &startMarker, const boost::optional< unsigned char > &endMarker, const boost::optional< unsigned char > &lineCap)=0
Definition: VSDTypes.h:190
virtual void startPage(unsigned pageId)=0
virtual void collectUnhandledChunk(unsigned id, unsigned level)=0
virtual void collectMoveTo(unsigned id, unsigned level, double x, double y)=0
virtual void collectTextBlock(unsigned level, const boost::optional< double > &leftMargin, const boost::optional< double > &rightMargin, const boost::optional< double > &topMargin, const boost::optional< double > &bottomMargin, const boost::optional< unsigned char > &verticalAlign, const boost::optional< bool > &isBgFilled, const boost::optional< Colour > &bgColour, const boost::optional< double > &defaultTabStop, const boost::optional< unsigned char > &textDirection)=0
virtual void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height)=0
virtual void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format)=0
virtual void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData)=0
Definition: VSDCollector.h:20
virtual void collectTxtXForm(unsigned level, const XForm &txtxform)=0
virtual void endPages()=0
virtual void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc)=0
virtual void collectFieldList(unsigned id, unsigned level)=0
virtual void collectThemeReference(unsigned level, const boost::optional< long > &lineColour, const boost::optional< long > &fillColour, const boost::optional< long > &shadowColour, const boost::optional< long > &fontColour)=0
virtual void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle)=0
virtual void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData)=0
virtual void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2)=0
virtual void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot)=0
virtual void collectNameList(unsigned id, unsigned level)=0
virtual void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, unsigned degree, double lastKnot, std::vector< std::pair< double, double > > controlPoints, std::vector< double > knotVector, std::vector< double > weights)=0
virtual void collectParaIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional< double > &indFirst, const boost::optional< double > &indLeft, const boost::optional< double > &indRight, const boost::optional< double > &spLine, const boost::optional< double > &spBefore, const boost::optional< double > &spAfter, const boost::optional< unsigned char > &align, const boost::optional< unsigned > &flags)=0
virtual void collectCharIX(unsigned id, unsigned level, unsigned charCount, const boost::optional< VSDName > &font, const boost::optional< Colour > &fontColour, const boost::optional< double > &fontSize, const boost::optional< bool > &bold, const boost::optional< bool > &italic, const boost::optional< bool > &underline, const boost::optional< bool > &doubleunderline, const boost::optional< bool > &strikeout, const boost::optional< bool > &doublestrikeout, const boost::optional< bool > &allcaps, const boost::optional< bool > &initcaps, const boost::optional< bool > &smallcaps, const boost::optional< bool > &superscript, const boost::optional< bool > &subscript)=0
TextFormat
Definition: VSDTypes.h:142
virtual void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName)=0
virtual void collectFillAndShadow(unsigned level, const boost::optional< Colour > &colourFG, const boost::optional< Colour > &colourBG, const boost::optional< unsigned char > &fillPattern, const boost::optional< double > &fillFGTransparency, const boost::optional< double > &fillBGTransparency, const boost::optional< unsigned char > &shadowPattern, const boost::optional< Colour > &shfgc, const boost::optional< double > &shadowOffsetX, const boost::optional< double > &shadowOffsetY)=0
virtual void collectFillStyle(unsigned level, const boost::optional< Colour > &colourFG, const boost::optional< Colour > &colourBG, const boost::optional< unsigned char > &fillPattern, const boost::optional< double > &fillFGTransparency, const boost::optional< double > &fillBGTransparency, const boost::optional< unsigned char > &shadowPattern, const boost::optional< Colour > &shfgc, const boost::optional< double > &shadowOffsetX, const boost::optional< double > &shadowOffsetY)=0
virtual void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId)=0
virtual void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale)=0
virtual void collectStyleThemeReference(unsigned level, const boost::optional< long > &lineColour, const boost::optional< long > &fillColour, const boost::optional< long > &shadowColour, const boost::optional< long > &fontColour)=0
virtual void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d)=0
virtual void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector< std::pair< double, double > > &points)=0
virtual void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow)=0
virtual void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d)=0
virtual ~VSDCollector()
Definition: VSDCollector.h:24
Definition: VSDTypes.h:107
VSDCollector & operator=(const VSDCollector &)
virtual void collectRelMoveTo(unsigned id, unsigned level, double x, double y)=0
virtual void collectStyleSheet(unsigned id, unsigned level, unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle)=0
Definition: VSDTypes.h:22
virtual void collectLine(unsigned level, const boost::optional< double > &strokeWidth, const boost::optional< Colour > &c, const boost::optional< unsigned char > &linePattern, const boost::optional< unsigned char > &startMarker, const boost::optional< unsigned char > &endMarker, const boost::optional< unsigned char > &lineCap)=0
virtual void collectDefaultCharStyle(unsigned charCount, const boost::optional< VSDName > &font, const boost::optional< Colour > &fontColour, const boost::optional< double > &fontSize, const boost::optional< bool > &bold, const boost::optional< bool > &italic, const boost::optional< bool > &underline, const boost::optional< bool > &doubleunderline, const boost::optional< bool > &strikeout, const boost::optional< bool > &doublestrikeout, const boost::optional< bool > &allcaps, const boost::optional< bool > &initcaps, const boost::optional< bool > &smallcaps, const boost::optional< bool > &superscript, const boost::optional< bool > &subscript)=0
Definition: VSDTypes.h:163
virtual void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow)=0
virtual void collectName(unsigned id, unsigned level, const librevenge::RVNGBinaryData &name, TextFormat format)=0
virtual void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b)=0
virtual void collectTextBlockStyle(unsigned level, const boost::optional< double > &leftMargin, const boost::optional< double > &rightMargin, const boost::optional< double > &topMargin, const boost::optional< double > &bottomMargin, const boost::optional< unsigned char > &verticalAlign, const boost::optional< bool > &isBgFilled, const boost::optional< Colour > &bgColour, const boost::optional< double > &defaultTabStop, const boost::optional< unsigned char > &textDirection)=0
virtual void collectXFormData(unsigned level, const XForm &xform)=0

Generated for libvisio by doxygen 1.8.6