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: */