KEYSVGGenerator.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 libetonyek 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 KEYSVGGENERATOR_H_INCLUDED
11 #define KEYSVGGENERATOR_H_INCLUDED
12 
13 #include <stdio.h>
14 #include <iostream>
15 #include <sstream>
16 #include <libwpd/libwpd.h>
17 #include <libetonyek/libetonyek.h>
18 
19 namespace libetonyek
20 {
21 
22 class KEYSVGGenerator : public KEYPresentationInterface
23 {
24 public:
25  explicit KEYSVGGenerator(KEYStringVector &vec);
26  virtual ~KEYSVGGenerator();
27 
28  virtual void startDocument(const ::WPXPropertyList &propList);
29  virtual void endDocument();
30 
31  virtual void setDocumentMetaData(const ::WPXPropertyList &propList);
32 
33  virtual void startSlide(const ::WPXPropertyList &propList);
34  virtual void endSlide();
35 
36  virtual void setStyle(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &gradient);
37 
38  virtual void startLayer(const ::WPXPropertyList &propList);
39  virtual void endLayer();
40 
41  virtual void startEmbeddedGraphics(const ::WPXPropertyList & /*propList*/) {}
42  virtual void endEmbeddedGraphics() {}
43 
44  virtual void startGroup(const ::WPXPropertyList &propList);
45  virtual void endGroup();
46 
47  virtual void drawRectangle(const ::WPXPropertyList &propList);
48  virtual void drawEllipse(const ::WPXPropertyList &propList);
49  virtual void drawPolyline(const ::WPXPropertyListVector &vertices);
50  virtual void drawPolygon(const ::WPXPropertyListVector &vertices);
51  virtual void drawPath(const ::WPXPropertyListVector &path);
52  virtual void drawGraphicObject(const ::WPXPropertyList &propList, const ::WPXBinaryData &binaryData);
53 
54  virtual void drawConnector(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path);
55 
56  virtual void startTextObject(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &path);
57  virtual void endTextObject();
58  virtual void insertTab();
59  virtual void insertSpace();
60  virtual void insertText(const WPXString &text);
61  virtual void insertLineBreak();
62 
63  virtual void insertField(const WPXString &type, const ::WPXPropertyList &propList);
64 
65  virtual void openOrderedListLevel(const ::WPXPropertyList &propList);
66  virtual void openUnorderedListLevel(const ::WPXPropertyList &propList);
67  virtual void closeOrderedListLevel();
68  virtual void closeUnorderedListLevel();
69  virtual void openListElement(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &tabStops);
70  virtual void closeListElement();
71 
72  virtual void openParagraph(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &tabStops);
73  virtual void closeParagraph();
74  virtual void openSpan(const ::WPXPropertyList &propList);
75  virtual void closeSpan();
76 
77  virtual void openTable(const ::WPXPropertyList &propList, const ::WPXPropertyListVector &columns);
78  virtual void openTableRow(const ::WPXPropertyList &propList);
79  virtual void closeTableRow();
80  virtual void openTableCell(const ::WPXPropertyList &propList);
81  virtual void closeTableCell();
82  virtual void insertCoveredTableCell(const ::WPXPropertyList &propList);
83  virtual void closeTable();
84 
85  virtual void startComment(const ::WPXPropertyList &propList);
86  virtual void endComment();
87 
88  virtual void startNotes(const ::WPXPropertyList &propList);
89  virtual void endNotes();
90 
91 private:
92  ::WPXPropertyListVector m_gradient;
93  ::WPXPropertyList m_style;
97  void writeStyle(bool isClosed=true);
98  void drawPolySomething(const ::WPXPropertyListVector &vertices, bool isClosed);
99 
100  std::ostringstream m_outputSink;
101  KEYStringVector &m_vec;
102 };
103 
104 } // namespace libetonyek
105 
106 #endif // KEYSVGGENERATOR_H_INCLUDED
107 
108 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */

Generated for libetonyek by doxygen 1.8.3.1