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