]> Shamusworld >> Repos - architektonas/blob - src/drawingview.h
da1912f39312fbcc20fc6e0d60ed96553f071a5c
[architektonas] / src / drawingview.h
1 #ifndef __DRAWINGVIEW_H__
2 #define __DRAWINGVIEW_H__
3
4 #include <QtGui>
5 #include <stdint.h>
6 #include "action.h"
7 #include "container.h"
8
9 class DrawingView: public QWidget
10 {
11         Q_OBJECT
12
13         public:
14                 DrawingView(QWidget * parent = NULL);
15
16         public:
17                 void SetRotateToolActive(bool state = true);
18 #if 0
19                 void SetAddLineToolActive(bool state = true);
20                 void SetAddCircleToolActive(bool state = true);
21                 void SetAddArcToolActive(bool state = true);
22                 void SetAddDimensionToolActive(bool state = true);
23 #endif
24 //              void SetToolActive(Action * action, bool state = true);
25                 void SetToolActive(Action * action);//, bool state = true);
26                 void SetGridSize(uint32_t);
27                 void UpdateGridBackground(void);
28
29         public slots:
30                 void AddNewObjectToDocument(Object *);
31
32         protected:
33                 void paintEvent(QPaintEvent * event);
34                 void resizeEvent(QResizeEvent * event);
35                 void mousePressEvent(QMouseEvent * event);
36                 void mouseMoveEvent(QMouseEvent * event);
37                 void mouseReleaseEvent(QMouseEvent * event);
38                 void keyPressEvent(QKeyEvent * event);
39                 void keyReleaseEvent(QKeyEvent * event);
40
41         private:
42                 QPoint GetAdjustedMousePosition(QMouseEvent * event);
43                 QPoint GetAdjustedClientPosition(int x, int y);
44 //              Vector SnapPointToGrid(Vector);
45
46         public:
47                 bool useAntialiasing;
48
49         private:
50 //              QBrush * backgroundBrush;
51                 QPixmap gridBackground;
52                 double scale;                                                   // Window scaling factor
53                 int32_t offsetX, offsetY;                               // Window offsets
54         public:
55                 Container document;
56 //              double gridSpacing;                                             // Grid spacing in base units
57                 uint32_t gridPixels;                                    // Grid size in pixels
58 //              double gridBaseUnits;                                   // Grid size in base units
59         private:
60                 bool collided;
61 //Should this go into Object's class variables???
62 //maybe, maybe not... :-P
63                 bool rotateTool;
64                 double rx, ry;
65                 bool scrollDrag;
66                 Vector oldPoint;
67                 bool addLineTool;
68                 bool addCircleTool;
69                 bool addDimensionTool;
70
71         public:
72                 Action * toolAction;
73 };
74
75 #endif  // __DRAWINGVIEW_H__