]> Shamusworld >> Repos - architektonas/blob - src/actions/actiondrawpolyline.h
6902f40d3d29fdcd6ff8abd16175044e77e7433c
[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 void trigger();
29                 virtual void mouseMoveEvent(QMouseEvent * e);
30                 virtual void mousePressEvent(QMouseEvent * e);
31                 virtual void mouseReleaseEvent(QMouseEvent * e);
32                 virtual void updateMouseButtonHints();
33                 virtual void updateMouseCursor();
34                 virtual void updateToolBar();
35                 void close();
36                 void undo();
37
38         protected:
39                 Vector vertex;
40                 Polyline * polyline;
41                 /** Start point of the series of lines. Used for close function. */
42                 Vector start;
43                 /** Point history (for undo) */
44 //This probably won't work, because of arc segments...
45                 QList<Vector *> history;
46 };
47
48 #endif  // __ACTIONDRAWPOLYLINE_H__