]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actiondimangular.h
Initial import
[architektonas] / src / actions / rs_actiondimangular.h
1 /****************************************************************************
2 ** $Id: rs_actiondimangular.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_ACTIONDIMANGULAR_H
28 #define RS_ACTIONDIMANGULAR_H
29
30 #include "rs_actiondimension.h"
31 #include "rs_dimangular.h"
32
33
34 /**
35  * This action class can handle user events to draw angular dimensions.
36  *
37  * @author Andrew Mustun
38  */
39 class RS_ActionDimAngular : public RS_ActionDimension {
40         //Q_OBJECT
41 private:
42     enum Status {
43         SetLine1,      /**< Choose 1st line. */
44         SetLine2,      /**< Choose 2nd line. */
45         SetPos,        /**< Choose position. */
46                 SetText        /**< Setting text label in consle. */
47     };
48
49 public:
50     RS_ActionDimAngular(RS_EntityContainer& container,
51                               RS_GraphicView& graphicView);
52     ~RS_ActionDimAngular() {}
53         
54         static QAction* createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/);
55
56         virtual RS2::ActionType rtti() {
57                 return RS2::ActionDimAngular;
58         }
59
60         virtual void reset();
61         
62     virtual void trigger();
63         
64     virtual void mouseMoveEvent(QMouseEvent* e);
65     virtual void mouseReleaseEvent(QMouseEvent* e);
66
67         virtual void coordinateEvent(RS_CoordinateEvent* e);
68     virtual void commandEvent(RS_CommandEvent* e);
69         virtual QStringList getAvailableCommands();
70         
71     virtual void hideOptions();
72     virtual void showOptions();
73
74     virtual void updateMouseButtonHints();
75
76 private:
77     /** 1st chosen line */
78     RS_Line* line1;
79     /** 2nd chosen line */
80     RS_Line* line2;
81         /** Center of arc */
82         Vector center;
83     /** Data of new dimension */
84     RS_DimAngularData edata;
85         /** Last status before entering text. */
86         Status lastStatus;
87 };
88
89 #endif