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: */