ABWOutputElements.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 libabw 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 ABWOUTPUTELEMENTS_H
00011 #define ABWOUTPUTELEMENTS_H
00012 
00013 #include <list>
00014 #include <map>
00015 #include <libwpd/libwpd.h>
00016 
00017 namespace libabw
00018 {
00019 
00020 class ABWOutputElement;
00021 
00022 class ABWOutputElements
00023 {
00024 public:
00025   ABWOutputElements();
00026   virtual ~ABWOutputElements();
00027   void append(const ABWOutputElements &elements);
00028   void write(WPXDocumentInterface *iface) const;
00029   void addCloseEndnote();
00030   void addCloseFooter();
00031   void addCloseFootnote();
00032   void addCloseFrame();
00033   void addCloseHeader();
00034   void addCloseLink();
00035   void addCloseListElement();
00036   void addCloseOrderedListLevel();
00037   void addClosePageSpan();
00038   void addCloseParagraph();
00039   void addCloseSection();
00040   void addCloseSpan();
00041   void addCloseTable();
00042   void addCloseTableCell();
00043   void addCloseTableRow();
00044   void addCloseUnorderedListLevel();
00045   void addInsertBinaryObject(const WPXPropertyList &propList, const WPXBinaryData &data);
00046   void addInsertCoveredTableCell(const WPXPropertyList &propList);
00047   void addInsertLineBreak();
00048   void addInsertSpace();
00049   void addInsertTab();
00050   void addInsertText(const WPXString &text);
00051   void addOpenEndnote(const WPXPropertyList &propList);
00052   void addOpenFooter(const WPXPropertyList &propList, int id);
00053   void addOpenFootnote(const WPXPropertyList &propList);
00054   void addOpenFrame(const WPXPropertyList &propList);
00055   void addOpenHeader(const WPXPropertyList &propList, int id);
00056   void addOpenLink(const WPXPropertyList &propList);
00057   void addOpenListElement(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops);
00058   void addOpenOrderedListLevel(const WPXPropertyList &propList);
00059   void addOpenPageSpan(const WPXPropertyList &propList,
00060                        int footer, int footerLeft, int footerFirst, int footerLast,
00061                        int header, int headerLeft, int headerFirst, int headerLast);
00062   void addOpenParagraph(const WPXPropertyList &propList, const WPXPropertyListVector &tabStops);
00063   void addOpenSection(const WPXPropertyList &propList, const WPXPropertyListVector &columns);
00064   void addOpenSpan(const WPXPropertyList &propList);
00065   void addOpenTable(const WPXPropertyList &propList, const WPXPropertyListVector &columns);
00066   void addOpenTableCell(const WPXPropertyList &propList);
00067   void addOpenTableRow(const WPXPropertyList &propList);
00068   void addOpenUnorderedListLevel(const WPXPropertyList &propList);
00069   void addStartDocument(const WPXPropertyList &propList);
00070   bool empty() const
00071   {
00072     return m_bodyElements.empty();
00073   }
00074 private:
00075   ABWOutputElements(const ABWOutputElements &);
00076   ABWOutputElements &operator=(const ABWOutputElements &);
00077   std::list<ABWOutputElement *> m_bodyElements;
00078   std::map<int, std::list<ABWOutputElement *> > m_headerElements;
00079   std::map<int, std::list<ABWOutputElement *> > m_footerElements;
00080   std::list<ABWOutputElement *> *m_elements;
00081 };
00082 
00083 
00084 } // namespace libabw
00085 
00086 #endif /* ABWOUTPUTELEMENTS_H */
00087 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */