IWORKShape.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2/*
3 * This file is part of the libetonyek project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 */
9
10#ifndef IWORKSHAPE_H_INCLUDED
11#define IWORKSHAPE_H_INCLUDED
12
13#include <memory>
14
15#include "IWORKPath_fwd.h"
16#include "IWORKStyle.h"
17#include "IWORKText_fwd.h"
18
19 namespace libetonyek
20{
21
22 struct IWORKSize;
23
26 struct IWORKShape
27{
28 IWORKGeometryPtr_t m_geometry;
29 IWORKStylePtr_t m_style;
30 boost::optional<int> m_order;
31 boost::optional<unsigned> m_resizeFlags;
32 IWORKPathPtr_t m_path;
33 IWORKTextPtr_t m_text;
34 bool m_locked;
35
36 IWORKShape();
37};
38
39 typedef std::shared_ptr<IWORKShape> IWORKShapePtr_t;
40
43 IWORKPathPtr_t makePolygonPath(const IWORKSize &size, unsigned edges);
44 IWORKPathPtr_t makeRoundedRectanglePath(const IWORKSize &size, double radius);
45
46 IWORKPathPtr_t makeArrowPath(const IWORKSize &size, double headWidth, double stemThickness);
47 IWORKPathPtr_t makeDoubleArrowPath(const IWORKSize &size, double headWidth, double stemThickness);
48 IWORKPathPtr_t makeStarPath(const IWORKSize &size, unsigned points, double innerRadius);
49
50 IWORKPathPtr_t makeCalloutPath(const IWORKSize &size, double radius, double tailSize, double tailX, double tailY);
51 IWORKPathPtr_t makeQuoteBubblePath(const IWORKSize &size, double radius, double tailSize, double tailX, double tailY);
52
53}
54
55#endif // IWORKSHAPE_H_INCLUDED
56
57/* vim:set shiftwidth=2 softtabstop=2 expandtab: */
IWORKPath_fwd.h
IWORKStyle.h
IWORKText_fwd.h
libetonyek::IWORKToken::size
@ size
Definition IWORKToken.h:402
libetonyek::IWORKToken::tailSize
@ tailSize
Definition IWORKToken.h:624
libetonyek::KEY1Token::radius
@ radius
Definition KEY1Token.h:185
libetonyek
Definition IWORKBezierElement.cpp:21
libetonyek::makeDoubleArrowPath
IWORKPathPtr_t makeDoubleArrowPath(const IWORKSize &size, const double headWidth, const double stemThickness)
Definition IWORKShape.cpp:235
libetonyek::IWORKTextPtr_t
std::shared_ptr< IWORKText > IWORKTextPtr_t
Definition IWORKText_fwd.h:22
libetonyek::makeQuoteBubblePath
IWORKPathPtr_t makeQuoteBubblePath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition IWORKShape.cpp:432
libetonyek::makeArrowPath
IWORKPathPtr_t makeArrowPath(const IWORKSize &size, const double headWidth, const double stemThickness)
Definition IWORKShape.cpp:218
libetonyek::makePolygonPath
IWORKPathPtr_t makePolygonPath(const IWORKSize &size, const unsigned edges)
Path creator functions for stock shapes.
Definition IWORKShape.cpp:177
libetonyek::makeCalloutPath
IWORKPathPtr_t makeCalloutPath(const IWORKSize &size, const double radius, const double tailSize, const double tailX, const double tailY)
Definition IWORKShape.cpp:290
libetonyek::IWORKPathPtr_t
std::shared_ptr< IWORKPath > IWORKPathPtr_t
Definition IWORKPath_fwd.h:22
libetonyek::IWORKGeometryPtr_t
std::shared_ptr< IWORKGeometry > IWORKGeometryPtr_t
Definition IWORKTypes_fwd.h:45
libetonyek::makeStarPath
IWORKPathPtr_t makeStarPath(const IWORKSize &size, const unsigned points, const double innerRadius)
Definition IWORKShape.cpp:260
libetonyek::IWORKShapePtr_t
std::shared_ptr< IWORKShape > IWORKShapePtr_t
Definition IWORKShape.h:39
libetonyek::makeRoundedRectanglePath
IWORKPathPtr_t makeRoundedRectanglePath(const IWORKSize &size, const double radius)
Definition IWORKShape.cpp:191
libetonyek::IWORKStylePtr_t
std::shared_ptr< IWORKStyle > IWORKStylePtr_t
Definition IWORKStyle_fwd.h:23
libetonyek::IWORKShape::m_path
IWORKPathPtr_t m_path
Definition IWORKShape.h:32
libetonyek::IWORKShape::m_locked
bool m_locked
Definition IWORKShape.h:34
libetonyek::IWORKShape::m_text
IWORKTextPtr_t m_text
Definition IWORKShape.h:33
libetonyek::IWORKShape::m_order
boost::optional< int > m_order
Definition IWORKShape.h:30
libetonyek::IWORKShape::m_geometry
IWORKGeometryPtr_t m_geometry
Definition IWORKShape.h:28
libetonyek::IWORKShape::m_resizeFlags
boost::optional< unsigned > m_resizeFlags
Definition IWORKShape.h:31
libetonyek::IWORKShape::IWORKShape
IWORKShape()
Definition IWORKShape.cpp:31
libetonyek::IWORKShape::m_style
IWORKStylePtr_t m_style
Definition IWORKShape.h:29
libetonyek::IWORKSize
Definition IWORKTypes.h:45