RVNGDrawingInterface.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) 2004 Marc Oude Kotte (marc@solcon.nl)
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 RVNGDRAWINGINTERFACE_H
00022 #define RVNGDRAWINGINTERFACE_H
00023 
00024 #include "RVNGPropertyList.h"
00025 #include "RVNGPropertyListVector.h"
00026 #include "RVNGBinaryData.h"
00027 
00028 namespace librevenge
00029 {
00030 
00031 class RVNGDrawingInterface
00032 {
00033 public:
00034         virtual ~RVNGDrawingInterface() {}
00035 
00036         // none of the other callback functions will be called before this function is called
00037         virtual void startDocument(const RVNGPropertyList &propList) = 0;
00038 
00039         // none of the other callback functions will be called after this function is called
00040         virtual void endDocument() = 0;
00041 
00097         virtual void setDocumentMetaData(const RVNGPropertyList &propList) = 0;
00098 
00109         virtual void defineEmbeddedFont(const RVNGPropertyList &propList) = 0;
00110 
00111         virtual void startPage(const RVNGPropertyList &propList) = 0;
00112 
00113         virtual void endPage() = 0;
00114 
00115         virtual void startMasterPage(const RVNGPropertyList &propList) = 0;
00116 
00117         virtual void endMasterPage() = 0;
00118 
00119         virtual void setStyle(const RVNGPropertyList &propList) = 0;
00120 
00121         virtual void startLayer(const RVNGPropertyList &propList) = 0;
00122 
00123         virtual void endLayer() = 0;
00124 
00125         virtual void startEmbeddedGraphics(const RVNGPropertyList &propList) = 0;
00126 
00127         virtual void endEmbeddedGraphics() = 0;
00128 
00129         virtual void openGroup(const RVNGPropertyList &propList) = 0;
00130 
00131         virtual void closeGroup() = 0;
00132 
00133         // Different primitive shapes
00134         virtual void drawRectangle(const RVNGPropertyList &propList) = 0;
00135 
00136         virtual void drawEllipse(const RVNGPropertyList &propList) = 0;
00137 
00138         virtual void drawPolygon(const RVNGPropertyList &propList) = 0;
00139 
00140         virtual void drawPolyline(const RVNGPropertyList &propList) = 0;
00141 
00142         virtual void drawPath(const RVNGPropertyList &propList) = 0;
00143 
00154         virtual void drawGraphicObject(const RVNGPropertyList &propList) = 0;
00155 
00167         virtual void drawConnector(const RVNGPropertyList &propList) = 0;
00168 
00169         // Embedded text object
00170         virtual void startTextObject(const RVNGPropertyList &propList) = 0;
00171         virtual void endTextObject() = 0;
00183         virtual void startTableObject(const RVNGPropertyList &propList) = 0;
00191         virtual void openTableRow(const RVNGPropertyList &propList) = 0;
00195         virtual void closeTableRow() = 0;
00210         virtual void openTableCell(const RVNGPropertyList &propList) = 0;
00214         virtual void closeTableCell() = 0;
00221         virtual void insertCoveredTableCell(const RVNGPropertyList &propList) = 0;
00225         virtual void endTableObject() = 0;
00226 
00230         virtual void insertTab() = 0;
00231 
00235         virtual void insertSpace() = 0;
00236 
00241         virtual void insertText(const RVNGString &text) = 0;
00242 
00246         virtual void insertLineBreak() = 0;
00247 
00255         virtual void insertField(const RVNGPropertyList &propList) = 0;
00256 
00269         virtual void openOrderedListLevel(const RVNGPropertyList &propList) = 0;
00270 
00280         virtual void openUnorderedListLevel(const RVNGPropertyList &propList) = 0;
00281 
00285         virtual void closeOrderedListLevel() = 0;
00286 
00290         virtual void closeUnorderedListLevel() = 0;
00291 
00309         virtual void openListElement(const RVNGPropertyList &propList) = 0;
00310 
00314         virtual void closeListElement() = 0;
00315 
00316         virtual void defineParagraphStyle(const RVNGPropertyList &propList) = 0;
00327         virtual void openParagraph(const RVNGPropertyList &propList) = 0;
00328 
00332         virtual void closeParagraph() = 0;
00333 
00334         virtual void defineCharacterStyle(const RVNGPropertyList &propList) = 0;
00341         virtual void openSpan(const RVNGPropertyList &propList) = 0;
00342 
00346         virtual void closeSpan() = 0;
00347 
00354         virtual void openLink(const RVNGPropertyList &propList) = 0;
00355 
00359         virtual void closeLink() = 0;
00360 };
00361 
00362 }
00363 
00364 #endif // __RVNGPAINTINTERFACE_H__
00365 
00366 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */