RVNGTextDrawingGenerator.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  * Alternatively, the contents of this file may be used under the terms
00010  * of the GNU Lesser General Public License Version 2.1 or later
00011  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
00012  * applicable instead of those above.
00013  */
00014 
00015 #ifndef RVNGTEXTDRAWINGGENERATOR_H
00016 #define RVNGTEXTDRAWINGGENERATOR_H
00017 
00018 #include "librevenge-generators-api.h"
00019 
00020 #include <librevenge-stream/librevenge-stream.h>
00021 #include <librevenge/librevenge.h>
00022 
00023 namespace librevenge
00024 {
00025 
00026 struct RVNGTextDrawingGeneratorImpl;
00027 
00028 class REVENGE_GENERATORS_API RVNGTextDrawingGenerator : public RVNGDrawingInterface
00029 {
00030         // disable copying
00031         RVNGTextDrawingGenerator(const RVNGTextDrawingGenerator &other);
00032         RVNGTextDrawingGenerator &operator=(const RVNGTextDrawingGenerator &other);
00033 
00034 public:
00035         explicit RVNGTextDrawingGenerator(RVNGStringVector &pages);
00036         ~RVNGTextDrawingGenerator();
00037 
00038         void startDocument(const RVNGPropertyList &propList);
00039         void endDocument();
00040         void setDocumentMetaData(const RVNGPropertyList &propList);
00041         void defineEmbeddedFont(const RVNGPropertyList &propList);
00042         void startPage(const RVNGPropertyList &);
00043         void endPage();
00044         void startMasterPage(const RVNGPropertyList &propList);
00045         void endMasterPage();
00046         void startLayer(const RVNGPropertyList &);
00047         void endLayer();
00048         void startEmbeddedGraphics(const RVNGPropertyList &);
00049         void endEmbeddedGraphics();
00050 
00051         void openGroup(const RVNGPropertyList &propList);
00052         void closeGroup();
00053 
00054         void setStyle(const RVNGPropertyList &);
00055 
00056         void drawRectangle(const RVNGPropertyList &);
00057         void drawEllipse(const RVNGPropertyList &);
00058         void drawPolyline(const RVNGPropertyList &);
00059         void drawPolygon(const RVNGPropertyList &);
00060         void drawPath(const RVNGPropertyList &);
00061         void drawGraphicObject(const RVNGPropertyList &);
00062         void drawConnector(const RVNGPropertyList &propList);
00063         void startTextObject(const RVNGPropertyList &);
00064         void endTextObject();
00065 
00066         void startTableObject(const RVNGPropertyList &propList);
00067         void openTableRow(const RVNGPropertyList &propList);
00068         void closeTableRow();
00069         void openTableCell(const RVNGPropertyList &propList);
00070         void closeTableCell();
00071         void insertCoveredTableCell(const RVNGPropertyList &propList);
00072         void endTableObject();
00073 
00074         void openOrderedListLevel(const RVNGPropertyList &propList);
00075         void closeOrderedListLevel();
00076         void openUnorderedListLevel(const RVNGPropertyList &propList);
00077         void closeUnorderedListLevel();
00078 
00079         void openListElement(const RVNGPropertyList &propList);
00080         void closeListElement();
00081 
00082         void defineParagraphStyle(const RVNGPropertyList &propList);
00083         void openParagraph(const RVNGPropertyList &propList);
00084         void closeParagraph();
00085 
00086         void defineCharacterStyle(const RVNGPropertyList &propList);
00087         void openSpan(const RVNGPropertyList &propList);
00088         void closeSpan();
00089 
00090         void openLink(const RVNGPropertyList &propList);
00091         void closeLink();
00092 
00093         void insertTab();
00094         void insertSpace();
00095         void insertText(const RVNGString &text);
00096         void insertLineBreak();
00097         void insertField(const RVNGPropertyList &propList);
00098 
00099 private:
00100         RVNGTextDrawingGeneratorImpl *m_impl;
00101 };
00102 
00103 }
00104 
00105 #endif // RVNGTEXTDRAWINGGENERATOR_H
00106 
00107 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */