10 #ifndef VSDCOLLECTOR_H
11 #define VSDCOLLECTOR_H
14 #include <boost/optional.hpp>
27 virtual void collectEllipticalArcTo(
unsigned id,
unsigned level,
double x3,
double y3,
double x2,
double y2,
double angle,
double ecc) = 0;
28 virtual void collectForeignData(
unsigned level,
const librevenge::RVNGBinaryData &binaryData) = 0;
30 virtual void collectOLEData(
unsigned id,
unsigned level,
const librevenge::RVNGBinaryData &oleData) = 0;
31 virtual void collectEllipse(
unsigned id,
unsigned level,
double cx,
double cy,
double xleft,
double yleft,
double xtop,
double ytop) = 0;
32 virtual void collectLine(
unsigned level,
const boost::optional<double> &strokeWidth,
const boost::optional<Colour> &c,
const boost::optional<unsigned char> &linePattern,
33 const boost::optional<unsigned char> &startMarker,
const boost::optional<unsigned char> &endMarker,
34 const boost::optional<unsigned char> &lineCap,
const boost::optional<double> &rounding,
35 const boost::optional<long> &qsLineColour,
const boost::optional<long> &qsLineMatrix) = 0;
36 virtual void collectFillAndShadow(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
37 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
38 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
39 const boost::optional<Colour> &shfgc,
const boost::optional<double> &shadowOffsetX,
const boost::optional<double> &shadowOffsetY,
40 const boost::optional<long> &qsFc,
const boost::optional<long> &qsSc,
const boost::optional<long> &qsLm) = 0;
41 virtual void collectFillAndShadow(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
42 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
43 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
44 const boost::optional<Colour> &shfgc) = 0;
45 virtual void collectGeometry(
unsigned id,
unsigned level,
bool noFill,
bool noLine,
bool noShow) = 0;
46 virtual void collectMoveTo(
unsigned id,
unsigned level,
double x,
double y) = 0;
47 virtual void collectLineTo(
unsigned id,
unsigned level,
double x,
double y) = 0;
48 virtual void collectArcTo(
unsigned id,
unsigned level,
double x2,
double y2,
double bow) = 0;
49 virtual void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
unsigned char xType,
unsigned char yType,
unsigned degree,
50 const std::vector<std::pair<double, double> > &ctrlPnts,
const std::vector<double> &kntVec,
const std::vector<double> &weights) = 0;
51 virtual void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
double knot,
double knotPrev,
double weight,
double weightPrev,
unsigned dataID) = 0;
52 virtual void collectNURBSTo(
unsigned id,
unsigned level,
double x2,
double y2,
double knot,
double knotPrev,
double weight,
double weightPrev,
const NURBSData &data) = 0;
53 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;
54 virtual void collectPolylineTo(
unsigned id,
unsigned level,
double x,
double y,
unsigned dataID) = 0;
56 virtual void collectShapeData(
unsigned id,
unsigned level,
unsigned char xType,
unsigned char yType,
unsigned degree,
double lastKnot,
57 std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights) = 0;
58 virtual void collectShapeData(
unsigned id,
unsigned level,
unsigned char xType,
unsigned char yType, std::vector<std::pair<double, double> > points) = 0;
61 virtual void collectShapesOrder(
unsigned id,
unsigned level,
const std::vector<unsigned> &shapeIds) = 0;
62 virtual void collectForeignDataType(
unsigned level,
unsigned foreignType,
unsigned foreignFormat,
double offsetX,
double offsetY,
double width,
double height) = 0;
63 virtual void collectPageProps(
unsigned id,
unsigned level,
double pageWidth,
double pageHeight,
double shadowOffsetX,
double shadowOffsetY,
double scale) = 0;
64 virtual void collectPage(
unsigned id,
unsigned level,
unsigned backgroundPageID,
bool isBackgroundPage,
const VSDName &pageName) = 0;
65 virtual void collectShape(
unsigned id,
unsigned level,
unsigned parent,
unsigned masterPage,
unsigned masterShape,
unsigned lineStyle,
unsigned fillStyle,
unsigned textStyle) = 0;
66 virtual void collectSplineStart(
unsigned id,
unsigned level,
double x,
double y,
double secondKnot,
double firstKnot,
double lastKnot,
unsigned degree) = 0;
67 virtual void collectSplineKnot(
unsigned id,
unsigned level,
double x,
double y,
double knot) = 0;
69 virtual void collectInfiniteLine(
unsigned id,
unsigned level,
double x1,
double y1,
double x2,
double y2) = 0;
70 virtual void collectRelCubBezTo(
unsigned id,
unsigned level,
double x,
double y,
double a,
double b,
double c,
double d) = 0;
71 virtual void collectRelEllipticalArcTo(
unsigned id,
unsigned level,
double x,
double y,
double a,
double b,
double c,
double d) = 0;
72 virtual void collectRelLineTo(
unsigned id,
unsigned level,
double x,
double y) = 0;
73 virtual void collectRelMoveTo(
unsigned id,
unsigned level,
double x,
double y) = 0;
74 virtual void collectRelQuadBezTo(
unsigned id,
unsigned level,
double x,
double y,
double a,
double b) = 0;
78 virtual void collectText(
unsigned level,
const librevenge::RVNGBinaryData &textStream,
TextFormat format) = 0;
79 virtual void collectCharIX(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<VSDName> &font,
80 const boost::optional<Colour> &fontColour,
const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
81 const boost::optional<bool> &italic,
const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
82 const boost::optional<bool> &strikeout,
const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
83 const boost::optional<bool> &initcaps,
const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
84 const boost::optional<bool> &subscript,
const boost::optional<double> &scaleWidth) = 0;
85 virtual void collectDefaultCharStyle(
unsigned charCount,
const boost::optional<VSDName> &font,
const boost::optional<Colour> &fontColour,
86 const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
const boost::optional<bool> &italic,
87 const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
const boost::optional<bool> &strikeout,
88 const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
const boost::optional<bool> &initcaps,
89 const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
const boost::optional<bool> &subscript,
90 const boost::optional<double> &scaleWidth) = 0;
91 virtual void collectParaIX(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<double> &indFirst,
92 const boost::optional<double> &indLeft,
const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
93 const boost::optional<double> &spBefore,
const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
94 const boost::optional<unsigned char> &bullet,
const boost::optional<VSDName> &bulletStr,
95 const boost::optional<VSDName> &bulletFont,
const boost::optional<double> &bulletFontSize,
96 const boost::optional<double> &textPosAfterBullet,
const boost::optional<unsigned> &flags) = 0;
97 virtual void collectDefaultParaStyle(
unsigned charCount,
const boost::optional<double> &indFirst,
const boost::optional<double> &indLeft,
98 const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
const boost::optional<double> &spBefore,
99 const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
100 const boost::optional<unsigned char> &bullet,
const boost::optional<VSDName> &bulletStr,
101 const boost::optional<VSDName> &bulletFont,
const boost::optional<double> &bulletFontSize,
102 const boost::optional<double> &textPosAfterBullet,
const boost::optional<unsigned> &flags) = 0;
103 virtual void collectTextBlock(
unsigned level,
const boost::optional<double> &leftMargin,
const boost::optional<double> &rightMargin,
104 const boost::optional<double> &topMargin,
const boost::optional<double> &bottomMargin,
105 const boost::optional<unsigned char> &verticalAlign,
const boost::optional<bool> &isBgFilled,
106 const boost::optional<Colour> &bgColour,
const boost::optional<double> &defaultTabStop,
107 const boost::optional<unsigned char> &textDirection) = 0;
109 virtual void collectName(
unsigned id,
unsigned level,
const librevenge::RVNGBinaryData &name,
TextFormat format) = 0;
114 virtual void collectTabsDataList(
unsigned level,
const std::map<unsigned, VSDTabSet> &tabSets) = 0;
117 virtual void collectStyleSheet(
unsigned id,
unsigned level,
unsigned parentLineStyle,
unsigned parentFillStyle,
unsigned parentTextStyle) = 0;
118 virtual void collectLineStyle(
unsigned level,
const boost::optional<double> &strokeWidth,
const boost::optional<Colour> &c,
const boost::optional<unsigned char> &linePattern,
119 const boost::optional<unsigned char> &startMarker,
const boost::optional<unsigned char> &endMarker,
120 const boost::optional<unsigned char> &lineCap,
const boost::optional<double> &rounding,
121 const boost::optional<long> &qsLineColour,
const boost::optional<long> &qsLineMatrix) = 0;
122 virtual void collectFillStyle(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
123 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
124 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
125 const boost::optional<Colour> &shfgc,
const boost::optional<double> &shadowOffsetX,
const boost::optional<double> &shadowOffsetY,
126 const boost::optional<long> &qsFillColour,
const boost::optional<long> &qsShadowColour,
127 const boost::optional<long> &qsFillMatrix) = 0;
128 virtual void collectFillStyle(
unsigned level,
const boost::optional<Colour> &colourFG,
const boost::optional<Colour> &colourBG,
129 const boost::optional<unsigned char> &fillPattern,
const boost::optional<double> &fillFGTransparency,
130 const boost::optional<double> &fillBGTransparency,
const boost::optional<unsigned char> &shadowPattern,
131 const boost::optional<Colour> &shfgc) = 0;
132 virtual void collectCharIXStyle(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<VSDName> &font,
133 const boost::optional<Colour> &fontColour,
const boost::optional<double> &fontSize,
const boost::optional<bool> &bold,
134 const boost::optional<bool> &italic,
const boost::optional<bool> &underline,
const boost::optional<bool> &doubleunderline,
135 const boost::optional<bool> &strikeout,
const boost::optional<bool> &doublestrikeout,
const boost::optional<bool> &allcaps,
136 const boost::optional<bool> &initcaps,
const boost::optional<bool> &smallcaps,
const boost::optional<bool> &superscript,
137 const boost::optional<bool> &subscript,
const boost::optional<double> &scaleWidth) = 0;
138 virtual void collectParaIXStyle(
unsigned id,
unsigned level,
unsigned charCount,
const boost::optional<double> &indFirst,
139 const boost::optional<double> &indLeft,
const boost::optional<double> &indRight,
const boost::optional<double> &spLine,
140 const boost::optional<double> &spBefore,
const boost::optional<double> &spAfter,
const boost::optional<unsigned char> &align,
141 const boost::optional<unsigned char> &bullet,
const boost::optional<VSDName> &bulletStr,
142 const boost::optional<VSDName> &bulletFont,
const boost::optional<double> &bulletFontSize,
143 const boost::optional<double> &textPosAfterBullet,
const boost::optional<unsigned> &flags) = 0;
144 virtual void collectTextBlockStyle(
unsigned level,
const boost::optional<double> &leftMargin,
const boost::optional<double> &rightMargin,
145 const boost::optional<double> &topMargin,
const boost::optional<double> &bottomMargin,
146 const boost::optional<unsigned char> &verticalAlign,
const boost::optional<bool> &isBgFilled,
147 const boost::optional<Colour> &bgColour,
const boost::optional<double> &defaultTabStop,
148 const boost::optional<unsigned char> &textDirection) = 0;
152 virtual void collectTextField(
unsigned id,
unsigned level,
int nameId,
int formatStringId) = 0;
153 virtual void collectNumericField(
unsigned id,
unsigned level,
unsigned short format,
unsigned short cellType,
double number,
int formatStringId) = 0;
156 virtual void collectMetaData(
const librevenge::RVNGPropertyList &metaData) = 0;
159 virtual void startPage(
unsigned pageId) = 0;