RVNGTextSpreadsheetGenerator.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
00002 /* librevenge
00003  * Version: MPL 2.0 / LGPLv2.1+
00004  *
00005  * This Source Code Form is subject to the terms of the Mozilla Public
00006  * License, v. 2.0. If a copy of the MPL was not distributed with this
00007  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008  *
00009  * Major Contributor(s):
00010 * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
00011 * Copyright (C) 2002-2003 Marc Maurer (uwog@uwog.net)
00012  *
00013  * For minor contributions see the git repository.
00014  *
00015  * Alternatively, the contents of this file may be used under the terms
00016  * of the GNU Lesser General Public License Version 2.1 or later
00017  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
00018  * applicable instead of those above.
00019 */
00020 
00021 #ifndef RVNGTEXTSPREADSHEETGENERATOR_H
00022 #define RVNGTEXTSPREADSHEETGENERATOR_H
00023 
00024 #include "librevenge-generators-api.h"
00025 
00026 #include <librevenge/librevenge.h>
00027 #include <librevenge-stream/librevenge-stream.h>
00028 
00029 namespace librevenge
00030 {
00031 
00032 struct RVNGTextSpreadsheetGeneratorImpl;
00037 class REVENGE_GENERATORS_API RVNGTextSpreadsheetGenerator : public RVNGSpreadsheetInterface
00038 {
00040         RVNGTextSpreadsheetGenerator(const RVNGTextSpreadsheetGenerator &other);
00042         RVNGTextSpreadsheetGenerator &operator=(const RVNGTextSpreadsheetGenerator &other);
00043 
00044 public:
00045         explicit RVNGTextSpreadsheetGenerator(RVNGStringVector &sheets, const bool isInfo=false);
00046         ~RVNGTextSpreadsheetGenerator();
00047 
00048         void setDocumentMetaData(const RVNGPropertyList &propList);
00049 
00050         void startDocument(const RVNGPropertyList &propList);
00051         void endDocument();
00052 
00053         void defineEmbeddedFont(const RVNGPropertyList &propList);
00054 
00055         // sheet
00056         void defineSheetNumberingStyle(const RVNGPropertyList &propList);
00057         void openSheet(const RVNGPropertyList &propList);
00058         void closeSheet();
00059         void openSheetRow(const RVNGPropertyList &propList);
00060         void closeSheetRow();
00061         void openSheetCell(const RVNGPropertyList &propList);
00062         void closeSheetCell();
00063 
00064         // chart
00065         void defineChartStyle(const RVNGPropertyList &propList);
00066         void openChart(const RVNGPropertyList &propList);
00067         void closeChart();
00068         void openChartTextObject(const RVNGPropertyList &propList);
00069         void closeChartTextObject();
00070         void openChartPlotArea(const RVNGPropertyList &propList);
00071         void closeChartPlotArea();
00072         void insertChartAxis(const RVNGPropertyList &axis);
00073         void openChartSerie(const librevenge::RVNGPropertyList &series);
00074         void closeChartSerie();
00075 
00076         void definePageStyle(const RVNGPropertyList &propList);
00077         void openPageSpan(const RVNGPropertyList &propList);
00078         void closePageSpan();
00079         void openHeader(const RVNGPropertyList &propList);
00080         void closeHeader();
00081         void openFooter(const RVNGPropertyList &propList);
00082         void closeFooter();
00083 
00084         void defineSectionStyle(const RVNGPropertyList &propList);
00085         void openSection(const RVNGPropertyList &propList);
00086         void closeSection();
00087 
00088         void defineParagraphStyle(const RVNGPropertyList &propList);
00089         void openParagraph(const RVNGPropertyList &propList);
00090         void closeParagraph();
00091 
00092         void defineCharacterStyle(const RVNGPropertyList &propList);
00093         void openSpan(const RVNGPropertyList &propList);
00094         void closeSpan();
00095 
00096         void openLink(const RVNGPropertyList &propList);
00097         void closeLink();
00098 
00099         void insertTab();
00100         void insertSpace();
00101         void insertText(const RVNGString &text);
00102         void insertLineBreak();
00103         void insertField(const RVNGPropertyList &propList);
00104 
00105         void openOrderedListLevel(const RVNGPropertyList &propList);
00106         void openUnorderedListLevel(const RVNGPropertyList &propList);
00107         void closeOrderedListLevel();
00108         void closeUnorderedListLevel();
00109         void openListElement(const RVNGPropertyList &propList);
00110         void closeListElement();
00111 
00112         void openFootnote(const RVNGPropertyList &propList);
00113         void closeFootnote();
00114         void openEndnote(const RVNGPropertyList &propList);
00115         void closeEndnote();
00116         void openComment(const RVNGPropertyList &propList);
00117         void closeComment();
00118 
00119         void openTextBox(const RVNGPropertyList &propList);
00120         void closeTextBox();
00121 
00122         void openTable(const RVNGPropertyList &propList);
00123         void openTableRow(const RVNGPropertyList &propList);
00124         void closeTableRow();
00125         void openTableCell(const RVNGPropertyList &propList);
00126         void closeTableCell();
00127         void insertCoveredTableCell(const RVNGPropertyList &propList);
00128         void closeTable();
00129 
00130         void openFrame(const RVNGPropertyList &propList);
00131         void closeFrame();
00132 
00133         void insertBinaryObject(const RVNGPropertyList &propList);
00134 
00135         // drawing function
00136         void openGroup(const RVNGPropertyList &propList);
00137         void closeGroup();
00138 
00139         void defineGraphicStyle(const RVNGPropertyList &propList);
00140         void drawRectangle(const RVNGPropertyList &propList);
00141         void drawEllipse(const RVNGPropertyList &propList);
00142         void drawPolygon(const RVNGPropertyList &propList);
00143         void drawPolyline(const RVNGPropertyList &propList);
00144         void drawPath(const RVNGPropertyList &propList);
00145         void drawConnector(const RVNGPropertyList &propList);
00146 
00147         void insertEquation(const RVNGPropertyList &propList);
00148 private:
00149         RVNGTextSpreadsheetGeneratorImpl *m_impl;
00150 };
00151 
00152 }
00153 
00154 #endif /* RVNGTEXTSPREADSHEETGENERATOR_H */
00155 
00156 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */