CDRSVGGenerator.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 libcdr 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 __CDRSVGGENERATOR_H__
11 #define __CDRSVGGENERATOR_H__
12 
13 #include <stdio.h>
14 #include <iostream>
15 #include <sstream>
16 #include <libwpd/libwpd.h>
17 #include <libwpg/libwpg.h>
18 #include <libcdr/libcdr.h>
19 
20 namespace libcdr
21 {
22 
23 class CDRSVGGenerator : public libwpg::WPGPaintInterface
24 {
25 public:
28 
29  void startGraphics(const ::WPXPropertyList &propList);
30  void endGraphics();
31  void startLayer(const ::WPXPropertyList &propList);
32  void endLayer();
33  void startEmbeddedGraphics(const ::WPXPropertyList & /*propList*/) {}
35 
36  void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient);
37 
38  void drawRectangle(const ::WPXPropertyList &propList);
39  void drawEllipse(const ::WPXPropertyList &propList);
40  void drawPolyline(const ::WPXPropertyListVector &vertices);
41  void drawPolygon(const ::WPXPropertyListVector &vertices);
42  void drawPath(const ::WPXPropertyListVector &path);
43  void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData);
44  void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path);
45  void endTextObject();
46  void startTextLine(const ::WPXPropertyList & /* propList */) {}
47  void endTextLine() {}
48  void startTextSpan(const ::WPXPropertyList &propList);
49  void endTextSpan();
50  void insertText(const ::WPXString &str);
51 
52 private:
53  ::WPXPropertyListVector m_gradient;
54  ::WPXPropertyList m_style;
58  void writeStyle(bool isClosed=true);
59  void drawPolySomething(const ::WPXPropertyListVector &vertices, bool isClosed);
60 
61  std::ostringstream m_outputSink;
63 };
64 
65 } // namespace libcdr
66 
67 #endif // __CDRSVGGENERATOR_H__
68 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
int m_gradientIndex
Definition: CDRSVGGenerator.h:55
void drawPolySomething(const ::WPXPropertyListVector &vertices, bool isClosed)
Definition: CDRSVGGenerator.cpp:354
void startEmbeddedGraphics(const ::WPXPropertyList &)
Definition: CDRSVGGenerator.h:33
void drawPolygon(const ::WPXPropertyListVector &vertices)
Definition: CDRSVGGenerator.cpp:349
void writeStyle(bool isClosed=true)
Definition: CDRSVGGenerator.cpp:580
CDRStringVector & m_vec
Definition: CDRSVGGenerator.h:62
void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path)
Definition: CDRSVGGenerator.cpp:479
void endTextObject()
Definition: CDRSVGGenerator.cpp:539
::WPXPropertyList m_style
Definition: CDRSVGGenerator.h:54
int m_patternIndex
Definition: CDRSVGGenerator.h:56
::WPXPropertyListVector m_gradient
Definition: CDRSVGGenerator.h:53
void startGraphics(const ::WPXPropertyList &propList)
Definition: CDRSVGGenerator.cpp:51
void startLayer(const ::WPXPropertyList &propList)
Definition: CDRSVGGenerator.cpp:304
void drawPolyline(const ::WPXPropertyListVector &vertices)
Definition: CDRSVGGenerator.cpp:344
void insertText(const ::WPXString &str)
Definition: CDRSVGGenerator.cpp:573
void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData)
Definition: CDRSVGGenerator.cpp:439
~CDRSVGGenerator()
Definition: CDRSVGGenerator.cpp:47
void endEmbeddedGraphics()
Definition: CDRSVGGenerator.h:34
Definition: CDRStringVector.h:19
int m_shadowIndex
Definition: CDRSVGGenerator.h:57
Definition: CDRSVGGenerator.h:23
CDRSVGGenerator(CDRStringVector &vec)
Definition: CDRSVGGenerator.cpp:43
void drawEllipse(const ::WPXPropertyList &propList)
Definition: CDRSVGGenerator.cpp:330
void endGraphics()
Definition: CDRSVGGenerator.cpp:61
void endTextLine()
Definition: CDRSVGGenerator.h:47
std::ostringstream m_outputSink
Definition: CDRSVGGenerator.h:61
void endLayer()
Definition: CDRSVGGenerator.cpp:314
void drawPath(const ::WPXPropertyListVector &path)
Definition: CDRSVGGenerator.cpp:387
void drawRectangle(const ::WPXPropertyList &propList)
Definition: CDRSVGGenerator.cpp:319
void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient)
Definition: CDRSVGGenerator.cpp:68
void endTextSpan()
Definition: CDRSVGGenerator.cpp:568
void startTextSpan(const ::WPXPropertyList &propList)
Definition: CDRSVGGenerator.cpp:544
void startTextLine(const ::WPXPropertyList &)
Definition: CDRSVGGenerator.h:46

Generated for libcdr by doxygen 1.8.6