]> Shamusworld >> Repos - architektonas/blob - src/drawingview.h
b296f28e64c887f2a8276d5a775cd76f178fe5f6
[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                 void SetAddLineToolActive(bool state = true);
19                 void SetAddCircleToolActive(bool state = true);
20                 void SetAddArcToolActive(bool state = true);
21                 void SetAddDimensionToolActive(bool state = true);
22                 void SetGridSize(uint32_t);
23                 void UpdateGridBackground(void);
24
25         public slots:
26                 void AddNewObjectToDocument(Object *);
27
28         protected:
29                 void paintEvent(QPaintEvent * event);
30                 void resizeEvent(QResizeEvent * event);
31                 void mousePressEvent(QMouseEvent * event);
32                 void mouseMoveEvent(QMouseEvent * event);
33                 void mouseReleaseEvent(QMouseEvent * event);
34
35         private:
36                 QPoint GetAdjustedMousePosition(QMouseEvent * event);
37                 QPoint GetAdjustedClientPosition(int x, int y);
38                 Vector SnapPointToGrid(Vector);
39
40         public:
41                 bool useAntialiasing;
42
43         private:
44 //              QBrush * backgroundBrush;
45                 QPixmap gridBackground;
46                 double scale;                                                   // Window scaling factor
47                 int32_t offsetX, offsetY;                               // Window offsets
48         public:
49                 Container document;
50                 double gridSpacing;                                             // Grid spacing in base units
51                 uint32_t gridPixels;                                    // Grid size in pixels
52 //              double gridBaseUnits;                                   // Grid size in base units
53         private:
54                 bool collided;
55 //Should this go into Object's class variables???
56                 bool rotateTool;
57                 double rx, ry;
58                 bool scrollDrag;
59                 Vector oldPoint;
60                 bool addLineTool;
61                 bool addCircleTool;
62                 bool addDimensionTool;
63 //              bool selectionInProgress;
64 //              QRectF selection;
65
66         public:
67                 Action * toolAction;
68 };
69
70 #endif  // __DRAWINGVIEW_H__