EBOOKOutputElements.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /*
00003  * This file is part of the libe-book project.
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 
00010 #ifndef EBOOKOUTPUTELEMENTS_H
00011 #define EBOOKOUTPUTELEMENTS_H
00012 
00013 #include <list>
00014 #include <map>
00015 
00016 #include <librevenge/librevenge.h>
00017 
00018 namespace libebook
00019 {
00020 
00021 class EBOOKOutputElement;
00022 
00023 class EBOOKOutputElements
00024 {
00025 public:
00026   EBOOKOutputElements();
00027   virtual ~EBOOKOutputElements();
00028   void append(const EBOOKOutputElements &elements);
00029   void write(librevenge::RVNGTextInterface *iface) const;
00030   void addCloseEndnote();
00031   void addCloseFooter();
00032   void addCloseFootnote();
00033   void addCloseFrame();
00034   void addCloseHeader();
00035   void addCloseLink();
00036   void addCloseListElement();
00037   void addCloseOrderedListLevel();
00038   void addClosePageSpan();
00039   void addCloseParagraph();
00040   void addCloseSection();
00041   void addCloseSpan();
00042   void addCloseTable();
00043   void addCloseTableCell();
00044   void addCloseTableRow();
00045   void addCloseUnorderedListLevel();
00046   void addInsertBinaryObject(const librevenge::RVNGPropertyList &propList);
00047   void addInsertCoveredTableCell(const librevenge::RVNGPropertyList &propList);
00048   void addInsertLineBreak();
00049   void addInsertSpace();
00050   void addInsertTab();
00051   void addInsertText(const librevenge::RVNGString &text);
00052   void addOpenEndnote(const librevenge::RVNGPropertyList &propList);
00053   void addOpenFooter(const librevenge::RVNGPropertyList &propList, int id);
00054   void addOpenFootnote(const librevenge::RVNGPropertyList &propList);
00055   void addOpenFrame(const librevenge::RVNGPropertyList &propList);
00056   void addOpenHeader(const librevenge::RVNGPropertyList &propList, int id);
00057   void addOpenLink(const librevenge::RVNGPropertyList &propList);
00058   void addOpenListElement(const librevenge::RVNGPropertyList &propList);
00059   void addOpenOrderedListLevel(const librevenge::RVNGPropertyList &propList);
00060   void addOpenPageSpan(const librevenge::RVNGPropertyList &propList);
00061   void addOpenPageSpan(const librevenge::RVNGPropertyList &propList,
00062                        int footer, int footerLeft, int footerFirst, int footerLast,
00063                        int header, int headerLeft, int headerFirst, int headerLast);
00064   void addOpenParagraph(const librevenge::RVNGPropertyList &propList);
00065   void addOpenSection(const librevenge::RVNGPropertyList &propList);
00066   void addOpenSpan(const librevenge::RVNGPropertyList &propList);
00067   void addOpenTable(const librevenge::RVNGPropertyList &propList);
00068   void addOpenTableCell(const librevenge::RVNGPropertyList &propList);
00069   void addOpenTableRow(const librevenge::RVNGPropertyList &propList);
00070   void addOpenUnorderedListLevel(const librevenge::RVNGPropertyList &propList);
00071   void addStartDocument(const librevenge::RVNGPropertyList &propList);
00072   bool empty() const
00073   {
00074     return m_bodyElements.empty();
00075   }
00076 private:
00077   EBOOKOutputElements(const EBOOKOutputElements &);
00078   EBOOKOutputElements &operator=(const EBOOKOutputElements &);
00079   std::list<EBOOKOutputElement *> m_bodyElements;
00080   std::map<int, std::list<EBOOKOutputElement *> > m_headerElements;
00081   std::map<int, std::list<EBOOKOutputElement *> > m_footerElements;
00082   std::list<EBOOKOutputElement *> *m_elements;
00083 };
00084 
00085 }
00086 
00087 #endif /* EBOOKOUTPUTELEMENTS_H */
00088 
00089 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */