]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actiondrawarc.h
Initial import
[architektonas] / src / actions / rs_actiondrawarc.h
1 /****************************************************************************
2 ** $Id: rs_actiondrawarc.h 1062 2004-01-16 21:51:20Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
12 **
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #ifndef RS_ACTIONDRAWARC_H
28 #define RS_ACTIONDRAWARC_H
29
30 #include "rs_previewactioninterface.h"
31 #include "rs_arc.h"
32
33 /**
34  * This action class can handle user events to draw
35  * simple arcs with the center, radius, start- and endangle given.
36  *
37  * @author Andrew Mustun
38  */
39 class RS_ActionDrawArc: public RS_PreviewActionInterface
40 {
41 //      //Q_OBJECT
42         public:
43                 /**
44                 * Action States.
45                 */
46                 enum Status {
47                         SetCenter,       /**< Setting the center point. */
48                         SetRadius,       /**< Setting the radius. */
49                         SetAngle1,       /**< Setting the startpoint.  */
50                         SetAngle2,       /**< Setting the endpoint. */
51                         SetIncAngle,     /**< Setting the included angle. */
52                         SetChordLength   /**< Setting carc chord length. */
53                 };
54
55         public:
56                 RS_ActionDrawArc(RS_EntityContainer & container, RS_GraphicView & graphicView);
57                 ~RS_ActionDrawArc();
58
59                 static QAction * createGUIAction(RS2::ActionType /*type*/, QObject * /*parent*/);
60                 virtual RS2::ActionType rtti();
61                 void reset();
62
63                 virtual void init(int status = 0);
64                 virtual void trigger();
65
66                 virtual void mouseMoveEvent(QMouseEvent * e);
67                 virtual void mouseReleaseEvent(QMouseEvent * e);
68
69                 virtual void coordinateEvent(RS_CoordinateEvent * e);
70                 virtual void commandEvent(RS_CommandEvent * e);
71                 virtual QStringList getAvailableCommands();
72
73                 virtual void hideOptions();
74                 virtual void showOptions();
75
76                 virtual void updateMouseButtonHints();
77                 virtual void updateMouseCursor();
78                 virtual void updateToolBar();
79
80                 bool isReversed();
81                 void setReversed(bool r);
82
83         protected:
84                 /**
85                  * Arc data defined so far.
86                  */
87                 RS_ArcData data;
88                 /**
89                  * Commands
90                  */
91                 /*QString cmdReversed;
92                 QString cmdReversed2;
93                 QString cmdReversed3;
94                 */
95 };
96
97 #endif