00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libcdr 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 __CDROUTPUTELEMENTLIST_H__ 00011 #define __CDROUTPUTELEMENTLIST_H__ 00012 00013 #include <map> 00014 #include <list> 00015 #include <vector> 00016 #include <librevenge/librevenge.h> 00017 #include <librevenge/librevenge.h> 00018 00019 namespace libcdr 00020 { 00021 00022 class CDROutputElement; 00023 00024 class CDROutputElementList 00025 { 00026 public: 00027 CDROutputElementList(); 00028 CDROutputElementList(const CDROutputElementList &elementList); 00029 CDROutputElementList &operator=(const CDROutputElementList &elementList); 00030 virtual ~CDROutputElementList(); 00031 void draw(librevenge::RVNGDrawingInterface *painter) const; 00032 void addStyle(const librevenge::RVNGPropertyList &propList); 00033 void addPath(const librevenge::RVNGPropertyList &propList); 00034 void addGraphicObject(const librevenge::RVNGPropertyList &propList); 00035 void addStartTextObject(const librevenge::RVNGPropertyList &propList); 00036 void addOpenParagraph(const librevenge::RVNGPropertyList &propList); 00037 void addOpenSpan(const librevenge::RVNGPropertyList &propList); 00038 void addInsertText(const librevenge::RVNGString &text); 00039 void addCloseSpan(); 00040 void addCloseParagraph(); 00041 void addEndTextObject(); 00042 void addStartGroup(const librevenge::RVNGPropertyList &propList); 00043 void addEndGroup(); 00044 bool empty() const 00045 { 00046 return m_elements.empty(); 00047 } 00048 private: 00049 std::vector<CDROutputElement *> m_elements; 00050 }; 00051 00052 00053 } // namespace libcdr 00054 00055 #endif // __CDROUTPUTELEMENTLIST_H__ 00056 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */