]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actiondimleader.h
Initial import
[architektonas] / src / actions / rs_actiondimleader.h
1 /****************************************************************************
2 ** $Id: rs_actiondimleader.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_ACTIONDIMLEADER_H
28 #define RS_ACTIONDIMLEADER_H
29
30 #include "rs_previewactioninterface.h"
31 #include "rs_leader.h"
32
33 /**
34  * This action class can handle user events to draw
35  * leaders (arrows).
36  *
37  * @author Andrew Mustun
38  */
39 class RS_ActionDimLeader: public RS_PreviewActionInterface
40 {
41 //hm    //Q_OBJECT
42         public:
43                 /**
44                 * Action States.
45                 */
46                 enum Status {
47                         SetStartpoint,   /**< Setting the startpoint.  */
48                         SetEndpoint      /**< Setting the endpoint. */
49                 };
50
51         public:
52                 RS_ActionDimLeader(RS_EntityContainer & container, RS_GraphicView & graphicView);
53                 ~RS_ActionDimLeader();
54
55                 static QAction * createGUIAction(RS2::ActionType /*type*/, QObject * /*parent*/);
56
57                 virtual RS2::ActionType rtti();
58                 void reset();
59                 virtual void init(int status = 0);
60                 virtual void trigger();
61                 virtual void mouseMoveEvent(QMouseEvent * e);
62                 virtual void mouseReleaseEvent(QMouseEvent * e);
63                 virtual void keyPressEvent(QKeyEvent *);
64                 virtual void coordinateEvent(RS_CoordinateEvent * e);
65                 virtual void commandEvent(RS_CommandEvent * e);
66                 virtual QStringList getAvailableCommands();
67                 virtual void showOptions();
68                 virtual void hideOptions();
69                 virtual void updateMouseButtonHints();
70                 virtual void updateMouseCursor();
71                 virtual void updateToolBar();
72
73         protected:
74                 /**
75                  * Leader entity.
76                  */
77                 RS_Leader * leader;
78                 /**
79                  * Points set so far.
80                  */
81         //      Q3PtrList<Vector> points;
82                 QList<Vector *> points;
83 };
84
85 #endif