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) 2002-2005 William Lachance (wrlach@gmail.com) 00011 * Copyright (C) 2002 Marc Maurer (uwog@uwog.net) 00012 * Copyright (C) 2006 Fridrich Strba (fridrich.strba@bluewin.ch) 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 RVNGTEXTINTERFACE_H 00023 #define RVNGTEXTINTERFACE_H 00024 00025 #include "RVNGPropertyList.h" 00026 #include "RVNGPropertyListVector.h" 00027 00028 namespace librevenge 00029 { 00030 00037 class RVNGInputStream; 00038 00039 class RVNGTextInterface 00040 { 00041 public: 00042 virtual ~RVNGTextInterface() {} 00043 00099 virtual void setDocumentMetaData(const RVNGPropertyList &propList) = 0; 00100 00104 virtual void startDocument(const RVNGPropertyList &propList) = 0; 00105 00109 virtual void endDocument() = 0; 00110 00111 virtual void definePageStyle(const RVNGPropertyList &propList) = 0; 00112 00123 virtual void defineEmbeddedFont(const RVNGPropertyList &propList) = 0; 00124 00139 virtual void openPageSpan(const RVNGPropertyList &propList) = 0; 00143 virtual void closePageSpan() = 0; 00144 00150 virtual void openHeader(const RVNGPropertyList &propList) = 0; 00154 virtual void closeHeader() = 0; 00155 00161 virtual void openFooter(const RVNGPropertyList &propList) = 0; 00165 virtual void closeFooter() = 0; 00166 00167 virtual void defineParagraphStyle(const RVNGPropertyList &propList) = 0; 00168 00180 virtual void openParagraph(const RVNGPropertyList &propList) = 0; 00184 virtual void closeParagraph() = 0; 00185 00186 virtual void defineCharacterStyle(const RVNGPropertyList &propList) = 0; 00187 00193 virtual void openSpan(const RVNGPropertyList &propList) = 0; 00197 virtual void closeSpan() = 0; 00204 virtual void openLink(const RVNGPropertyList &propList) = 0; 00208 virtual void closeLink() = 0; 00209 00210 virtual void defineSectionStyle(const RVNGPropertyList &propList) = 0; 00211 00224 virtual void openSection(const RVNGPropertyList &propList) = 0; 00228 virtual void closeSection() = 0; 00229 00233 virtual void insertTab() = 0; 00237 virtual void insertSpace() = 0; 00242 virtual void insertText(const RVNGString &text) = 0; 00246 virtual void insertLineBreak() = 0; 00247 00255 virtual void insertField(const RVNGPropertyList &propList) = 0; 00256 00269 virtual void openOrderedListLevel(const RVNGPropertyList &propList) = 0; 00279 virtual void openUnorderedListLevel(const RVNGPropertyList &propList) = 0; 00283 virtual void closeOrderedListLevel() = 0; 00287 virtual void closeUnorderedListLevel() = 0; 00305 virtual void openListElement(const RVNGPropertyList &propList) = 0; 00309 virtual void closeListElement() = 0; 00310 00316 virtual void openFootnote(const RVNGPropertyList &propList) = 0; 00320 virtual void closeFootnote() = 0; 00321 00327 virtual void openEndnote(const RVNGPropertyList &propList) = 0; 00331 virtual void closeEndnote() = 0; 00332 00337 virtual void openComment(const RVNGPropertyList &propList) = 0; 00341 virtual void closeComment() = 0; 00342 00347 virtual void openTextBox(const RVNGPropertyList &propList) = 0; 00351 virtual void closeTextBox() = 0; 00352 00364 virtual void openTable(const RVNGPropertyList &propList) = 0; 00372 virtual void openTableRow(const RVNGPropertyList &propList) = 0; 00376 virtual void closeTableRow() = 0; 00391 virtual void openTableCell(const RVNGPropertyList &propList) = 0; 00395 virtual void closeTableCell() = 0; 00402 virtual void insertCoveredTableCell(const RVNGPropertyList &propList) = 0; 00406 virtual void closeTable() = 0; 00422 virtual void openFrame(const RVNGPropertyList &propList) = 0; 00426 virtual void closeFrame() = 0; 00437 virtual void insertBinaryObject(const RVNGPropertyList &propList) = 0; 00444 virtual void insertEquation(const RVNGPropertyList &propList) = 0; 00445 00446 // group 00447 virtual void openGroup(const librevenge::RVNGPropertyList &propList) = 0; 00448 virtual void closeGroup() = 0; 00449 00450 // Different primitive shapes 00451 virtual void defineGraphicStyle(const librevenge::RVNGPropertyList &propList) = 0; 00452 00453 virtual void drawRectangle(const RVNGPropertyList &propList) = 0; 00454 virtual void drawEllipse(const RVNGPropertyList &propList) = 0; 00455 virtual void drawPolygon(const RVNGPropertyList &propList) = 0; 00456 virtual void drawPolyline(const RVNGPropertyList &propList) = 0; 00457 virtual void drawPath(const RVNGPropertyList &propList) = 0; 00458 00470 virtual void drawConnector(const RVNGPropertyList &propList) = 0; 00471 }; 00472 00473 } 00474 00475 #endif /* RVNGTEXTINTERFACE_H */ 00476 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */