IWORKOutputElements.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 libetonyek 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 IWORKOUTPUTELEMENTS_H_INCLUDED
00011 #define IWORKOUTPUTELEMENTS_H_INCLUDED
00012 
00013 #include <deque>
00014 
00015 #include <boost/shared_ptr.hpp>
00016 #include <boost/unordered_map.hpp>
00017 
00018 #include <librevenge/librevenge.h>
00019 
00020 #include "IWORKTypes_fwd.h"
00021 
00022 namespace libetonyek
00023 {
00024 
00025 class IWORKDocumentInterface;
00026 class IWORKFormula;
00027 class IWORKOutputElement;
00028 
00029 
00030 class IWORKOutputElements
00031 {
00032   typedef std::deque<boost::shared_ptr<IWORKOutputElement> > ElementList_t;
00033 
00034 public:
00035   IWORKOutputElements();
00036 
00037   void append(const IWORKOutputElements &elements);
00038   void write(IWORKDocumentInterface *iface) const;
00039   void clear();
00040   bool empty() const;
00041 
00042   void addCloseComment();
00043   void addCloseEndnote();
00044   void addCloseFooter();
00045   void addCloseFootnote();
00046   void addCloseFrame();
00047   void addCloseHeader();
00048   void addCloseLink();
00049   void addCloseListElement();
00050   void addCloseOrderedListLevel();
00051   void addCloseParagraph();
00052   void addCloseSection();
00053   void addCloseSpan();
00054   void addCloseTable();
00055   void addCloseTableCell();
00056   void addCloseTableRow();
00057   void addCloseUnorderedListLevel();
00058   void addDrawGraphicObject(const librevenge::RVNGPropertyList &propList);
00059   void addDrawPath(const librevenge::RVNGPropertyList &propList);
00060   void addDrawPolyline(const librevenge::RVNGPropertyList &propList);
00061   void addEndLayer();
00062   void addEndNotes();
00063   void addEndTextObject();
00064   void addInsertBinaryObject(const librevenge::RVNGPropertyList &propList);
00065   void addInsertCoveredTableCell(const librevenge::RVNGPropertyList &propList);
00066   void addInsertLineBreak();
00067   void addInsertSpace();
00068   void addInsertTab();
00069   void addInsertText(const librevenge::RVNGString &text);
00070   void addOpenComment(const librevenge::RVNGPropertyList &propList);
00071   void addOpenEndnote(const librevenge::RVNGPropertyList &propList);
00072   void addOpenFormulaCell(const librevenge::RVNGPropertyList &propList, const IWORKFormula &formula, const IWORKTableNameMapPtr_t &tableNameMap);
00073   void addOpenFooter(const librevenge::RVNGPropertyList &propList);
00074   void addOpenFootnote(const librevenge::RVNGPropertyList &propList);
00075   void addOpenFrame(const librevenge::RVNGPropertyList &propList);
00076   void addOpenHeader(const librevenge::RVNGPropertyList &propList);
00077   void addOpenLink(const librevenge::RVNGPropertyList &propList);
00078   void addOpenListElement(const librevenge::RVNGPropertyList &propList);
00079   void addOpenOrderedListLevel(const librevenge::RVNGPropertyList &propList);
00080   void addOpenParagraph(const librevenge::RVNGPropertyList &propList);
00081   void addOpenSection(const librevenge::RVNGPropertyList &propList);
00082   void addOpenSpan(const librevenge::RVNGPropertyList &propList);
00083   void addOpenTable(const librevenge::RVNGPropertyList &propList);
00084   void addOpenTableCell(const librevenge::RVNGPropertyList &propList);
00085   void addOpenTableRow(const librevenge::RVNGPropertyList &propList);
00086   void addOpenUnorderedListLevel(const librevenge::RVNGPropertyList &propList);
00087   void addSetStyle(const librevenge::RVNGPropertyList &propList);
00088   void addStartLayer(const librevenge::RVNGPropertyList &propList);
00089   void addStartNotes(const librevenge::RVNGPropertyList &propList);
00090   void addStartTextObject(const librevenge::RVNGPropertyList &propList);
00091 
00092 private:
00093   ElementList_t m_elements;
00094 };
00095 
00096 }
00097 
00098 #endif /* IWORKOUTPUTELEMENTS_H_INCLUDED */
00099 
00100 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */