]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actioneditcopy.h
94d0ca5bf21a8974b32cde6c49127d89a526c903
[architektonas] / src / actions / rs_actioneditcopy.h
1 #ifndef RS_ACTIONEDITCOPY_H
2 #define RS_ACTIONEDITCOPY_H
3
4 #include "rs_actioninterface.h"
5
6 /**
7  * This action class can handle user events for copying or cutting entities
8  * to the clipboard.
9  *
10  * @author Andrew Mustun
11  */
12 class RS_ActionEditCopy: public RS_ActionInterface
13 {
14         //Q_OBJECT
15         public:
16                 /**
17                 * Action States.
18                 */
19                 enum Status {
20                         SetReferencePoint    /**< Setting the reference point. */
21                 };
22
23         public:
24                 RS_ActionEditCopy(bool copy,
25                                                 RS_EntityContainer& container,
26                                                 RS_GraphicView& graphicView);
27                 ~RS_ActionEditCopy();
28
29                 static QAction* createGUIAction(RS2::ActionType type, QObject* parent);
30
31                 virtual void init(int status=0);
32
33                 virtual void trigger();
34
35                 virtual void mouseMoveEvent(QMouseEvent * e);
36                 virtual void mouseReleaseEvent(QMouseEvent * e);
37
38                 virtual void coordinateEvent(RS_CoordinateEvent * e);
39
40                 virtual void updateMouseButtonHints();
41                 virtual void updateMouseCursor();
42                 virtual void updateToolBar();
43
44         protected:
45                 /** Copy (true) or cut (false) */
46                 bool copy;
47
48                 Vector referencePoint;
49 };
50
51 #endif