FHSVGGenerator.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 libfreehand 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 __FHSVGGENERATOR_H__
11 #define __FHSVGGENERATOR_H__
12 
13 #include <stdio.h>
14 #include <iostream>
15 #include <sstream>
16 #include <libwpd/libwpd.h>
17 #include <libwpg/libwpg.h>
18 #include <libfreehand/libfreehand.h>
19 
20 namespace libfreehand
21 {
22 
23 class FHSVGGenerator : public libwpg::WPGPaintInterface
24 {
25 public:
26  FHSVGGenerator(FHStringVector &vec);
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;
62  FHStringVector &m_vec;
63 };
64 
65 } // namespace libfreehand
66 
67 #endif // __FHSVGGENERATOR_H__
68 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */
void endLayer()
Definition: FHSVGGenerator.cpp:312
void startGraphics(const ::WPXPropertyList &propList)
Definition: FHSVGGenerator.cpp:50
void drawPolyline(const ::WPXPropertyListVector &vertices)
Definition: FHSVGGenerator.cpp:343
void endTextLine()
Definition: FHSVGGenerator.h:47
void drawRectangle(const ::WPXPropertyList &propList)
Definition: FHSVGGenerator.cpp:317
int m_shadowIndex
Definition: FHSVGGenerator.h:57
FHSVGGenerator(FHStringVector &vec)
Definition: FHSVGGenerator.cpp:42
std::ostringstream m_outputSink
Definition: FHSVGGenerator.h:61
Definition: FHSVGGenerator.h:23
void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData)
Definition: FHSVGGenerator.cpp:438
void drawPolySomething(const ::WPXPropertyListVector &vertices, bool isClosed)
Definition: FHSVGGenerator.cpp:353
void drawPolygon(const ::WPXPropertyListVector &vertices)
Definition: FHSVGGenerator.cpp:348
int m_gradientIndex
Definition: FHSVGGenerator.h:55
void endEmbeddedGraphics()
Definition: FHSVGGenerator.h:34
void endTextObject()
Definition: FHSVGGenerator.cpp:467
void endTextSpan()
Definition: FHSVGGenerator.cpp:496
void startEmbeddedGraphics(const ::WPXPropertyList &)
Definition: FHSVGGenerator.h:33
void drawPath(const ::WPXPropertyListVector &path)
Definition: FHSVGGenerator.cpp:386
void writeStyle(bool isClosed=true)
Definition: FHSVGGenerator.cpp:508
void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path)
Definition: FHSVGGenerator.cpp:452
void drawEllipse(const ::WPXPropertyList &propList)
Definition: FHSVGGenerator.cpp:328
void insertText(const ::WPXString &str)
Definition: FHSVGGenerator.cpp:501
FHStringVector & m_vec
Definition: FHSVGGenerator.h:62
int m_patternIndex
Definition: FHSVGGenerator.h:56
::WPXPropertyList m_style
Definition: FHSVGGenerator.h:54
void startTextSpan(const ::WPXPropertyList &propList)
Definition: FHSVGGenerator.cpp:472
void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient)
Definition: FHSVGGenerator.cpp:67
::WPXPropertyListVector m_gradient
Definition: FHSVGGenerator.h:53
void endGraphics()
Definition: FHSVGGenerator.cpp:60
~FHSVGGenerator()
Definition: FHSVGGenerator.cpp:46
void startTextLine(const ::WPXPropertyList &)
Definition: FHSVGGenerator.h:46
void startLayer(const ::WPXPropertyList &propList)
Definition: FHSVGGenerator.cpp:304

Generated for libfreehand by doxygen 1.8.5