OdpGenerator.hxx
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
00002 /* libodfgen
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) 2006 Ariya Hidayat (ariya@kde.org)
00011  *
00012  * For minor contributions see the git repository.
00013  *
00014  * Alternatively, the contents of this file may be used under the terms
00015  * of the GNU Lesser General Public License Version 2.1 or later
00016  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
00017  * applicable instead of those above.
00018  *
00019  * For further information visit http://libwpd.sourceforge.net
00020  */
00021 
00022 /* "This product is not manufactured, approved, or supported by
00023  * Corel Corporation or Corel Corporation Limited."
00024  */
00025 #ifndef LIBODFGEN_ODPGENERATOR_HXX_INCLUDED
00026 #define LIBODFGEN_ODPGENERATOR_HXX_INCLUDED
00027 
00028 #include <librevenge/librevenge.h>
00029 
00030 #include "libodfgen-api.hxx"
00031 #include "OdfDocumentHandler.hxx"
00032 
00033 class OdfGenerator;
00034 class OdpGeneratorPrivate;
00035 
00041 class ODFGENAPI OdpGenerator : public librevenge::RVNGPresentationInterface
00042 {
00043 public:
00044         OdpGenerator();
00045         ~OdpGenerator();
00046         void addDocumentHandler(OdfDocumentHandler *pHandler, const OdfStreamType streamType);
00047         librevenge::RVNGStringVector getObjectNames() const;
00048         bool getObjectContent(librevenge::RVNGString const &objectName, OdfDocumentHandler *pHandler);
00049 
00050         void startDocument(const ::librevenge::RVNGPropertyList &propList);
00051         void endDocument();
00052         void setDocumentMetaData(const ::librevenge::RVNGPropertyList &propList);
00053         void defineEmbeddedFont(const librevenge::RVNGPropertyList &propList);
00054         void startSlide(const ::librevenge::RVNGPropertyList &propList);
00055         void endSlide();
00056         void startMasterSlide(const ::librevenge::RVNGPropertyList &propList);
00057         void endMasterSlide();
00058         void setSlideTransition(const ::librevenge::RVNGPropertyList &propList);
00059         void startLayer(const ::librevenge::RVNGPropertyList &propList);
00060         void endLayer();
00061         void startEmbeddedGraphics(const ::librevenge::RVNGPropertyList &propList);
00062         void endEmbeddedGraphics();
00063         void openGroup(const ::librevenge::RVNGPropertyList &propList);
00064         void closeGroup();
00065 
00066         void setStyle(const ::librevenge::RVNGPropertyList &propList);
00067 
00068         void drawRectangle(const ::librevenge::RVNGPropertyList &propList);
00069         void drawEllipse(const ::librevenge::RVNGPropertyList &propList);
00070         void drawPolyline(const ::librevenge::RVNGPropertyList &propList);
00071         void drawPolygon(const ::librevenge::RVNGPropertyList &propList);
00072         void drawPath(const ::librevenge::RVNGPropertyList &propList);
00073         void drawGraphicObject(const ::librevenge::RVNGPropertyList &propList);
00074         void drawConnector(const ::librevenge::RVNGPropertyList &propList);
00075 
00076         void startTextObject(const ::librevenge::RVNGPropertyList &propList);
00077         void endTextObject();
00078         void defineParagraphStyle(const librevenge::RVNGPropertyList &propList);
00079         void openParagraph(const ::librevenge::RVNGPropertyList &propList);
00080         void closeParagraph();
00081         void defineCharacterStyle(const librevenge::RVNGPropertyList &propList);
00082         void openSpan(const ::librevenge::RVNGPropertyList &propList);
00083         void closeSpan();
00084 
00085         void openLink(const librevenge::RVNGPropertyList &propList);
00086         void closeLink();
00087 
00088         void insertText(const ::librevenge::RVNGString &str);
00089         void insertTab();
00090         void insertSpace();
00091         void insertLineBreak();
00092         void insertField(const ::librevenge::RVNGPropertyList &propList);
00093 
00094         void openOrderedListLevel(const ::librevenge::RVNGPropertyList &propList);
00095         void openUnorderedListLevel(const ::librevenge::RVNGPropertyList &propList);
00096         void closeOrderedListLevel();
00097         void closeUnorderedListLevel();
00098         void openListElement(const ::librevenge::RVNGPropertyList &propList);
00099         void closeListElement();
00100 
00101         void startTableObject(const ::librevenge::RVNGPropertyList &propList);
00102         void openTableRow(const ::librevenge::RVNGPropertyList &propList);
00103         void closeTableRow();
00104         void openTableCell(const ::librevenge::RVNGPropertyList &propList);
00105         void closeTableCell();
00106         void insertCoveredTableCell(const ::librevenge::RVNGPropertyList &propList);
00107         void endTableObject();
00108 
00109         void startComment(const ::librevenge::RVNGPropertyList &propList);
00110         void endComment();
00111 
00112         void startNotes(const ::librevenge::RVNGPropertyList &propList);
00113         void endNotes();
00114 
00115         void defineChartStyle(const ::librevenge::RVNGPropertyList &propList);
00116         void openChart(const ::librevenge::RVNGPropertyList &propList);
00117         void closeChart();
00118         void openChartTextObject(const ::librevenge::RVNGPropertyList &propList);
00119         void closeChartTextObject();
00120         void openChartPlotArea(const ::librevenge::RVNGPropertyList &propList);
00121         void closeChartPlotArea();
00122         void insertChartAxis(const ::librevenge::RVNGPropertyList &propList);
00123         void openChartSeries(const ::librevenge::RVNGPropertyList &propList);
00124         void closeChartSeries();
00125 
00126         void openAnimationSequence(const ::librevenge::RVNGPropertyList &propList);
00127         void closeAnimationSequence();
00128         void openAnimationGroup(const ::librevenge::RVNGPropertyList &propList);
00129         void closeAnimationGroup();
00130         void openAnimationIteration(const ::librevenge::RVNGPropertyList &propList);
00131         void closeAnimationIteration();
00132         void insertMotionAnimation(const ::librevenge::RVNGPropertyList &propList);
00133         void insertColorAnimation(const ::librevenge::RVNGPropertyList &propList);
00134         void insertAnimation(const ::librevenge::RVNGPropertyList &propList);
00135         void insertEffect(const ::librevenge::RVNGPropertyList &propList);
00136 
00143         void registerEmbeddedImageHandler(const librevenge::RVNGString &mimeType, OdfEmbeddedImage imageHandler);
00150         void registerEmbeddedObjectHandler(const librevenge::RVNGString &mimeType, OdfEmbeddedObject objectHandler);
00151 
00153         void initStateWith(OdfGenerator const &orig);
00154 private:
00155         // disable copying
00156         OdpGenerator(OdpGenerator const &);
00157         OdpGenerator &operator=(OdpGenerator const &);
00158 
00159         OdpGeneratorPrivate *mpImpl;
00160 };
00161 
00162 #endif // LIBODFGEN_ODPGENERATOR_HXX_INCLUDED
00163 
00164 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */