/* libvisio * Version: MPL 1.1 / GPLv2+ / LGPLv2+ * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License or as specified alternatively below. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * Major Contributor(s): * Copyright (C) 2011 Fridrich Strba * Copyright (C) 2011 Eilidh McAdam * * * All Rights Reserved. * * For minor contributions see the git repository. * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPLv2+"), or * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable * instead of those above. */ #ifndef __VSDXSTENCILS_H__ #define __VSDXSTENCILS_H__ #include #include #include "VSDXStyles.h" #include "VSDXGeometryList.h" #include "VSDXTypes.h" namespace libvisio { class VSDXStencilShape { public: VSDXStencilShape(); VSDXStencilShape(const VSDXStencilShape &shape); ~VSDXStencilShape(); VSDXStencilShape &operator=(const VSDXStencilShape &shape); std::vector m_geometries; ForeignData * m_foreign; unsigned m_lineStyleID, m_fillStyleID; VSDXLineStyle * m_lineStyle; VSDXFillStyle * m_fillStyle; WPXString m_text; std::vector m_charFormats; std::map m_nurbsData; std::map m_polylineData; }; class VSDXStencil { public: VSDXStencil(); VSDXStencil(const VSDXStencil &stencil); ~VSDXStencil(); VSDXStencil &operator=(const VSDXStencil &stencil); void addStencilShape(unsigned id, const VSDXStencilShape &shape); const VSDXStencilShape *getStencilShape(unsigned id) const; std::map m_shapes; double m_shadowOffsetX; double m_shadowOffsetY; }; class VSDXStencils { public: VSDXStencils(); ~VSDXStencils(); void addStencil(unsigned idx, const VSDXStencil &stencil); const VSDXStencil *getStencil(unsigned idx) const; unsigned count() const { return m_stencils.size(); } private: std::map m_stencils; }; } // namespace libvisio #endif // __VSDXSTENCILS_H__