/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* * This file is part of the libvisio project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef __VSDCHARACTERLIST_H__ #define __VSDCHARACTERLIST_H__ #include #include #include #include "VSDTypes.h" #include "VSDStyles.h" namespace libvisio { class VSDCharacterListElement; class VSDCollector; class VSDCharacterList { public: VSDCharacterList(); VSDCharacterList(const VSDCharacterList &charList); ~VSDCharacterList(); VSDCharacterList &operator=(const VSDCharacterList &charList); void addCharIX(unsigned id, unsigned level, unsigned charCount, const boost::optional &font, const boost::optional &fontColour, const boost::optional &fontSize, const boost::optional &bold, const boost::optional &italic, const boost::optional &underline, const boost::optional &doubleunderline, const boost::optional &strikeout, const boost::optional &doublestrikeout, const boost::optional &allcaps, const boost::optional &initcaps, const boost::optional &smallcaps, const boost::optional &superscript, const boost::optional &subscript, const boost::optional &scaleWidth); void addCharIX(unsigned id, unsigned level, const VSDOptionalCharStyle &style); unsigned getCharCount(unsigned id) const; void setCharCount(unsigned id, unsigned charCount); void resetCharCount(); unsigned getLevel() const; void setElementsOrder(const std::vector &m_elementsOrder); void handle(VSDCollector *collector) const; void clear(); bool empty() const { return (m_elements.empty()); } private: std::map> m_elements; std::vector m_elementsOrder; }; } // namespace libvisio #endif // __VSDCHARACTERLIST_H__ /* vim:set shiftwidth=2 softtabstop=2 expandtab: */