karbon

vstar.h
1/* This file is part of the KDE project
2 Copyright (C) 2001, 2002, 2003 The Karbon Developers
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA.
18*/
19
20#ifndef __VSTAR_H__
21#define __VSTAR_H__
22
23#include "vcomposite.h"
24#include <koffice_export.h>
47class KARBONBASE_EXPORT VStar : public VPath
48{
49public:
50 enum VStarType
51 {
52 star_outline,
53 spoke,
54 wheel,
55 polygon,
56 framed_star,
57 star,
58 gear
59 };
60 VStar( VObject* parent, VState state = edit );
61 VStar( VObject* parent,
62 const KoPoint& center, double outerRadius, double innerRadius,
63 uint edges, double angle = 0.0, uint innerAngle = 0,
64 double roundness = 0.0, VStarType type = star_outline );
65
66 static double getOptimalInnerRadius( uint edges, double outerRadius, uint innerAngle );
67
68 virtual TQString name() const;
69
70
71 virtual void save( TQDomElement& element ) const;
72 virtual void load( const TQDomElement& element );
73
74 virtual VPath* clone() const;
75
76protected:
77 void init();
78
79private:
80 KoPoint m_center;
81 double m_outerRadius;
82 double m_innerRadius;
83 uint m_edges;
84 double m_angle;
85 double m_innerAngle;
86 double m_roundness;
87 VStarType m_type;
88};
89
90#endif
91
VObject(VObject *parent, VState state=edit)
Constructs a new object that is child of parent and has the given state.
Definition vobject.cpp:36
VObject * parent() const
Returns pointer to current parent object.
Definition vobject.h:147
@ edit
visible, active and is currently manipulated by a tool
Definition vobject.h:62
virtual TQString name() const
Returns the name of the object.
Definition vobject.cpp:225
VState state() const
Get the state the object is in.
Definition vobject.h:154
virtual void load(const TQDomElement &element)
Load this object's state from xml and initialize this object accordingly.
virtual void save(TQDomElement &element) const
Save this object's state to xml.
virtual VPath * clone() const
Create an exact copy of this object.