VSDXCharacterList.h
Go to the documentation of this file.
00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
00002 /* libvisio
00003  * Version: MPL 1.1 / GPLv2+ / LGPLv2+
00004  *
00005  * The contents of this file are subject to the Mozilla Public License Version
00006  * 1.1 (the "License"); you may not use this file except in compliance with
00007  * the License or as specified alternatively below. You may obtain a copy of
00008  * the License at http://www.mozilla.org/MPL/
00009  *
00010  * Software distributed under the License is distributed on an "AS IS" basis,
00011  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
00012  * for the specific language governing rights and limitations under the
00013  * License.
00014  *
00015  * Major Contributor(s):
00016  * Copyright (C) 2011 Fridrich Strba <fridrich.strba@bluewin.ch>
00017  * Copyright (C) 2011 Eilidh McAdam <tibbylickle@gmail.com>
00018  *
00019  *
00020  * All Rights Reserved.
00021  *
00022  * For minor contributions see the git repository.
00023  *
00024  * Alternatively, the contents of this file may be used under the terms of
00025  * either the GNU General Public License Version 2 or later (the "GPLv2+"), or
00026  * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
00027  * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
00028  * instead of those above.
00029  */
00030 
00031 #ifndef __VSDXCHARACTERLIST_H__
00032 #define __VSDXCHARACTERLIST_H__
00033 
00034 #include <vector>
00035 #include <map>
00036 
00037 namespace libvisio
00038 {
00039 
00040 class VSDXCharacterListElement;
00041 class VSDXCollector;
00042 
00043 class VSDXCharacterList
00044 {
00045 public:
00046   VSDXCharacterList();
00047   VSDXCharacterList(const VSDXCharacterList &charList);
00048   ~VSDXCharacterList();
00049   VSDXCharacterList &operator=(const VSDXCharacterList &charList);
00050   void addCharIX(unsigned id, unsigned level, unsigned charCount, unsigned short fontID, Colour fontColour, unsigned langId, double fontSize,
00051                  bool bold, bool italic, bool underline, bool doubleunderline, bool strikeout, bool doublestrikeout,
00052                  bool allcaps, bool initcaps, bool smallcaps, bool superscript, bool subscript, WPXString fontFace);
00053   void setElementsOrder(const std::vector<unsigned> &m_elementsOrder);
00054   void handle(VSDXCollector *collector);
00055   void clear();
00056   bool empty() const
00057   {
00058     return (!m_elements.size());
00059   }
00060 private:
00061   std::map<unsigned, VSDXCharacterListElement *> m_elements;
00062   std::vector<unsigned> m_elementsOrder;
00063 };
00064 
00065 } // namespace libvisio
00066 
00067 #endif // __VSDXCHARACTERLIST_H__
00068 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */