]> Shamusworld >> Repos - architektonas/blob - src/actions/actiondrawpolyline.h
171e5ea7a8cde99b42833494aba6442720daeda5
[architektonas] / src / actions / actiondrawpolyline.h
1 #ifndef __ACTIONDRAWPOLYLINE_H__
2 #define __ACTIONDRAWPOLYLINE_H__
3
4 #include "actioninterface.h"
5 #include "vector.h"
6
7 class Polyline;
8
9 /**
10  * This class handles polyline creation.
11  *
12  * @author James Hammons
13  */
14 class ActionDrawPolyline: public ActionInterface
15 {
16         public:
17                 /** Action States */
18                 enum Status
19                 {
20                         SetFirstPoint = 0,      /**< Setting the first point.  */
21                         SetNextPoint            /**< Setting the next point. */
22                 };
23
24         public:
25                 ActionDrawPolyline(EntityContainer & container, GraphicView & graphicView);
26                 ~ActionDrawPolyline();
27
28                 virtual RS2::ActionType rtti();
29                 virtual void trigger();
30                 virtual void mouseMoveEvent(QMouseEvent * e);
31                 virtual void mousePressEvent(QMouseEvent * e);
32                 virtual void mouseReleaseEvent(QMouseEvent * e);
33                 virtual void updateMouseButtonHints();
34                 virtual void updateMouseCursor();
35                 virtual void updateToolBar();
36                 virtual void showOptions();
37                 virtual void hideOptions();
38                 void close();
39                 void undo();
40
41         protected:
42                 Vector vertex;
43                 Polyline * polyline;
44                 /** Start point of the series of lines. Used for close function. */
45                 Vector start;
46                 /** Point history (for undo) */
47 //This probably won't work, because of arc segments...
48                 QList<Vector *> history;
49 };
50
51 #endif  // __ACTIONDRAWPOLYLINE_H__