QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RAction.h
Go to the documentation of this file.
1 #ifndef RACTION_H
2 #define RACTION_H
3 
4 #include <QKeyEvent>
5 #include <QList>
6 #include <QMap>
7 #include <QObject>
8 #include <QString>
9 #include <QSwipeGesture>
10 #include <QPanGesture>
11 #include <QPinchGesture>
12 
13 #include "RDebug.h"
14 #include "REntity.h"
15 #include "RVector.h"
16 
17 class RPropertyEvent;
18 class RGraphicsScene;
19 class RGraphicsView;
20 class RDocumentInterface;
21 class RCommandEvent;
22 class RCoordinateEvent;
23 class RDocument;
24 class REntityPickEvent;
25 class RMouseEvent;
26 class RWheelEvent;
27 class RGuiAction;
28 class RStorage;
29 class RTabletEvent;
30 
40 class RAction {
41 public:
45  enum ClickMode {
60  };
61 
62 public:
63  RAction(RGuiAction* guiAction = NULL);
64  virtual ~RAction();
65 
66  void terminate();
67  bool isTerminated();
68 
69  void setOverride();
70  bool isOverride();
71 
72  void setNoState();
73  bool hasNoState();
74 
75  void setUniqueGroup(const QString& ug);
76  QString getUniqueGroup();
77 
78  void setOverrideBase(RAction* base);
80 
81  virtual RGuiAction* getGuiAction();
82 
84 
85  QList<RGraphicsScene*> getGraphicsScenes();
89 
91  documentInterface = di;
92  }
93 
100  clickMode = m;
101  }
102 
108  return clickMode;
109  }
110 
114  virtual void beginEvent() = 0;
118  virtual void setGraphicsView(RGraphicsView* view) = 0;
122  virtual void finishEvent() = 0;
127  virtual void suspendEvent() = 0;
132  virtual void resumeEvent() = 0;
138  virtual void escapeEvent() = 0;
139 
140  virtual void keyPressEvent(QKeyEvent& event) = 0;
141 
142  virtual void keyReleaseEvent(QKeyEvent& event) = 0;
143 
147  virtual void mousePressEvent(RMouseEvent& event) = 0;
148 
152  virtual void mouseMoveEvent(RMouseEvent& event) = 0;
153 
157  virtual void mouseReleaseEvent(RMouseEvent& event) = 0;
158 
162  virtual void mouseDoubleClickEvent(RMouseEvent& event) = 0;
163 
167  virtual void wheelEvent(RWheelEvent& event) = 0;
168 
172  virtual void tabletEvent(RTabletEvent& event) = 0;
173 
177  virtual void swipeGestureEvent(QSwipeGesture& gesture) = 0;
178 
182  virtual void panGestureEvent(QPanGesture& gesture) = 0;
183 
187  virtual void pinchGestureEvent(QPinchGesture& gesture) = 0;
188 
192  virtual void commandEvent(RCommandEvent& event) = 0;
193 
197  virtual void commandEventPreview(RCommandEvent& event) = 0;
198 
205  virtual void coordinateEvent(RCoordinateEvent& event) = 0;
206 
212  virtual void coordinateEventPreview(RCoordinateEvent& event) = 0;
213 
217  virtual void entityPickEvent(REntityPickEvent& event) = 0;
218 
222  virtual void entityPickEventPreview(REntityPickEvent& event) = 0;
223 
227  virtual void propertyChangeEvent(RPropertyEvent& event) = 0;
228 
229  RVector snap(RMouseEvent& event);
230 
231 protected:
233  bool override;
234 
239  bool noState;
240 
241  QString uniqueGroup;
246 };
247 
249 Q_DECLARE_METATYPE(RAction::ClickMode)
250 
251 #endif