RVNGCSVSpreadsheetGenerator.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* librevenge
3 * Version: MPL 2.0 / LGPLv2.1+
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 * Major Contributor(s):
10 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
11 * Copyright (C) 2002-2004 Marc Maurer (uwog@uwog.net)
12 *
13 * For minor contributions see the git repository.
14 *
15 * Alternatively, the contents of this file may be used under the terms
16 * of the GNU Lesser General Public License Version 2.1 or later
17 * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
18 * applicable instead of those above.
19 */
20
21 #ifndef RVNGCSVSPREADSHEETGENERATOR_H
22 #define RVNGCSVSPREADSHEETGENERATOR_H
23
24 #include "librevenge-generators-api.h"
25
26 #include <librevenge/librevenge.h>
27 #include <librevenge-stream/librevenge-stream.h>
28
29 namespace librevenge
30 {
31
32 struct RVNGCSVSpreadsheetGeneratorImpl;
37 class REVENGE_GENERATORS_API RVNGCSVSpreadsheetGenerator : public RVNGSpreadsheetInterface
38 {
40 RVNGCSVSpreadsheetGenerator(const RVNGCSVSpreadsheetGenerator &other);
42 RVNGCSVSpreadsheetGenerator &operator=(const RVNGCSVSpreadsheetGenerator &other);
43
44 public:
53 explicit RVNGCSVSpreadsheetGenerator(RVNGStringVector &sheets, bool generateFormula=false);
55 ~RVNGCSVSpreadsheetGenerator();
61 void setSeparators(char fieldSep=',', char textSep='"', char decimalSep='.');
63 void setDTFormats(RVNGString const &date="%m/%d/%y", RVNGString const &time="%H:%M:%S");
64 void setDocumentMetaData(const RVNGPropertyList &propList);
65 void defineEmbeddedFont(const RVNGPropertyList &propList);
66
67 void startDocument(const RVNGPropertyList &propList);
68 void endDocument();
69
70 // sheet
71 void defineSheetNumberingStyle(const RVNGPropertyList &propList);
72 void openSheet(const RVNGPropertyList &propList);
73 void closeSheet();
74 void openSheetRow(const RVNGPropertyList &propList);
75 void closeSheetRow();
76 void openSheetCell(const RVNGPropertyList &propList);
77 void closeSheetCell();
78
79 // chart
80 void defineChartStyle(const RVNGPropertyList &propList);
81 void openChart(const RVNGPropertyList &propList);
82 void closeChart();
83 void openChartTextObject(const RVNGPropertyList &propList);
84 void closeChartTextObject();
85 void openChartPlotArea(const RVNGPropertyList &propList);
86 void closeChartPlotArea();
87 void insertChartAxis(const RVNGPropertyList &axis);
88 void openChartSerie(const librevenge::RVNGPropertyList &series);
89 void closeChartSerie();
90
91 void definePageStyle(const RVNGPropertyList &propList);
92 void openPageSpan(const RVNGPropertyList &propList);
93 void closePageSpan();
94 void openHeader(const RVNGPropertyList &propList);
95 void closeHeader();
96 void openFooter(const RVNGPropertyList &propList);
97 void closeFooter();
98
99 void defineParagraphStyle(const RVNGPropertyList &propList);
100 void openParagraph(const RVNGPropertyList &propList);
101 void closeParagraph();
102
103 void defineCharacterStyle(const RVNGPropertyList &propList);
104 void openSpan(const RVNGPropertyList &propList);
105 void closeSpan();
106
107 void openLink(const RVNGPropertyList &propList);
108 void closeLink();
109
110 void defineSectionStyle(const RVNGPropertyList &propList);
111 void openSection(const RVNGPropertyList &propList);
112 void closeSection();
113
114 void insertTab();
115 void insertSpace();
116 void insertText(const RVNGString &text);
117 void insertLineBreak();
118 void insertField(const RVNGPropertyList &propList);
119
120 void openOrderedListLevel(const RVNGPropertyList &propList);
121 void openUnorderedListLevel(const RVNGPropertyList &propList);
122 void closeOrderedListLevel();
123 void closeUnorderedListLevel();
124 void openListElement(const RVNGPropertyList &propList);
125 void closeListElement();
126
127 void openFootnote(const RVNGPropertyList &propList);
128 void closeFootnote();
129 void openEndnote(const RVNGPropertyList &propList);
130 void closeEndnote();
131 void openComment(const RVNGPropertyList &propList);
132 void closeComment();
133
134 void openTextBox(const RVNGPropertyList &propList);
135 void closeTextBox();
136
137 void openTable(const RVNGPropertyList &propList);
138 void openTableRow(const RVNGPropertyList &propList);
139 void closeTableRow();
140 void openTableCell(const RVNGPropertyList &propList);
141 void closeTableCell();
142 void insertCoveredTableCell(const RVNGPropertyList &propList);
143 void closeTable();
144
145 void openFrame(const RVNGPropertyList &propList);
146 void closeFrame();
147
148 void insertBinaryObject(const RVNGPropertyList &propList);
149
150 // drawing function
151 void openGroup(const RVNGPropertyList &propList);
152 void closeGroup();
153
154 void defineGraphicStyle(const RVNGPropertyList &propList);
155 void drawRectangle(const RVNGPropertyList &propList);
156 void drawEllipse(const RVNGPropertyList &propList);
157 void drawPolygon(const RVNGPropertyList &propList);
158 void drawPolyline(const RVNGPropertyList &propList);
159 void drawPath(const RVNGPropertyList &propList);
160 void drawConnector(const RVNGPropertyList &propList);
161
162 void insertEquation(const RVNGPropertyList &propList);
163
164 private:
166 RVNGCSVSpreadsheetGeneratorImpl *m_impl;
167 };
168
169 }
170
171 #endif /* RVNGCSVSPREADSHEETGENERATOR_H */
172
173 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
librevenge
Definition: RVNGBinaryData.cpp:38
librevenge::RVNGCSVSpreadsheetGenerator
A CSV generator for spreadsheet documents.
Definition: RVNGCSVSpreadsheetGenerator.h:37
librevenge::RVNGSpreadsheetInterface
Pure virtual class containing all the callback functions that can be made by a spreadsheet parser...
Definition: RVNGSpreadsheetInterface.h:49
librevenge-generators-api.h
librevenge::RVNGCSVSpreadsheetGeneratorImpl
Definition: RVNGCSVSpreadsheetGenerator.cpp:48
librevenge.h
librevenge::RVNGCSVSpreadsheetGenerator::m_impl
RVNGCSVSpreadsheetGeneratorImpl * m_impl
the internal storage data
Definition: RVNGCSVSpreadsheetGenerator.h:166
REVENGE_GENERATORS_API
#define REVENGE_GENERATORS_API
Definition: librevenge-generators-api.h:34
librevenge::RVNGPropertyList
Definition: RVNGPropertyList.h:38
librevenge::RVNGString
UTF-8 string.
Definition: RVNGString.h:33
librevenge-stream.h
librevenge::RVNGStringVector
Definition: RVNGStringVector.h:32