RVNGHTMLTextGenerator.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) 2002-2005 William Lachance (wrlach@gmail.com)
00011  * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
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 RVNGHTMLTEXTGENERATOR_H
00022 #define RVNGHTMLTEXTGENERATOR_H
00023 
00024 #include "librevenge-generators-api.h"
00025 
00026 #include <librevenge/librevenge.h>
00027 #include <librevenge-stream/librevenge-stream.h>
00028 
00029 namespace librevenge
00030 {
00031 
00032 struct RVNGHTMLTextGeneratorImpl;
00033 
00034 class REVENGE_GENERATORS_API RVNGHTMLTextGenerator : public RVNGTextInterface
00035 {
00036 public:
00037         explicit RVNGHTMLTextGenerator(RVNGString &document);
00038         ~RVNGHTMLTextGenerator();
00039 
00040         void setDocumentMetaData(const RVNGPropertyList &propList);
00041 
00042         void startDocument(const RVNGPropertyList &propList);
00043         void endDocument();
00044 
00045         void defineEmbeddedFont(const RVNGPropertyList &propList);
00046 
00047         void definePageStyle(const RVNGPropertyList &);
00048         void openPageSpan(const RVNGPropertyList &propList);
00049         void closePageSpan();
00050         void openHeader(const RVNGPropertyList &propList);
00051         void closeHeader();
00052         void openFooter(const RVNGPropertyList &propList);
00053         void closeFooter();
00054 
00055         void defineSectionStyle(const RVNGPropertyList &);
00056         void openSection(const RVNGPropertyList &propList);
00057         void closeSection();
00058 
00059         void defineParagraphStyle(const RVNGPropertyList &);
00060         void openParagraph(const RVNGPropertyList &propList);
00061         void closeParagraph();
00062 
00063         void defineCharacterStyle(const RVNGPropertyList &);
00064         void openSpan(const RVNGPropertyList &propList);
00065         void closeSpan();
00066 
00067         void openLink(const RVNGPropertyList &propList);
00068         void closeLink();
00069 
00070         void insertTab();
00071         void insertText(const RVNGString &text);
00072         void insertSpace();
00073         void insertLineBreak();
00074         void insertField(const RVNGPropertyList &propList);
00075 
00076         void openOrderedListLevel(const RVNGPropertyList &propList);
00077         void openUnorderedListLevel(const RVNGPropertyList &propList);
00078         void closeOrderedListLevel();
00079         void closeUnorderedListLevel();
00080         void openListElement(const RVNGPropertyList &propList);
00081         void closeListElement();
00082 
00083         void openFootnote(const RVNGPropertyList &propList);
00084         void closeFootnote();
00085         void openEndnote(const RVNGPropertyList &propList);
00086         void closeEndnote();
00087         void openComment(const RVNGPropertyList &propList);
00088         void closeComment();
00089         void openTextBox(const RVNGPropertyList &propList);
00090         void closeTextBox();
00091 
00092         void openTable(const RVNGPropertyList &propList);
00093         void openTableRow(const RVNGPropertyList &propList);
00094         void closeTableRow();
00095         void openTableCell(const RVNGPropertyList &propList);
00096         void closeTableCell();
00097         void insertCoveredTableCell(const RVNGPropertyList &propList);
00098         void closeTable();
00099 
00100         void openFrame(const RVNGPropertyList &propList);
00101         void closeFrame();
00102 
00103         void openGroup(const librevenge::RVNGPropertyList &propList);
00104         void closeGroup();
00105 
00106         void defineGraphicStyle(const librevenge::RVNGPropertyList &propList);
00107         void drawRectangle(const librevenge::RVNGPropertyList &propList);
00108         void drawEllipse(const librevenge::RVNGPropertyList &propList);
00109         void drawPolygon(const librevenge::RVNGPropertyList &propList);
00110         void drawPolyline(const librevenge::RVNGPropertyList &propList);
00111         void drawPath(const librevenge::RVNGPropertyList &propList);
00112         void drawConnector(const RVNGPropertyList &propList);
00113 
00114         void insertBinaryObject(const RVNGPropertyList &propList);
00115         void insertEquation(const RVNGPropertyList &propList);
00116 
00117 private:
00118         RVNGHTMLTextGeneratorImpl *m_impl;
00119 
00120         // Unimplemented to prevent compiler from creating crasher ones
00121         RVNGHTMLTextGenerator(const RVNGHTMLTextGenerator &);
00122         RVNGHTMLTextGenerator &operator=(const RVNGHTMLTextGenerator &);
00123 };
00124 
00125 }
00126 
00127 #endif /* RVNGHTMLTEXTGENERATOR_H */
00128 
00129 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */