1 #ifndef __DRAWINGVIEW_H__
2 #define __DRAWINGVIEW_H__
9 enum { ToolMouseDown, ToolMouseMove, ToolMouseUp, ToolKeyDown, ToolKeyUp, ToolCleanup };
13 class DrawingView: public QWidget
18 DrawingView(QWidget * parent = NULL);
21 void SetGridSize(uint32_t);
22 void UpdateGridBackground(void);
23 Point SnapPointToGrid(Point);
24 Point SnapPointToAngle(Point);
25 void RenderObjects(Painter *, VPVector &, int, bool ignoreLayer = false);
26 void AddHoveredToSelection(void);
27 VPVector GetSelection(void);
28 VPVector GetHovered(void);
29 void ToolHandler(int, Point);
30 void ToolDraw(Painter *);
31 void LineHandler(int, Point);
32 void CircleHandler(int, Point);
33 void ArcHandler(int, Point);
34 void RotateHandler(int, Point);
35 void MirrorHandler(int, Point);
36 void DimensionHandler(int, Point);
37 void TriangulateHandler(int, Point);
38 void TrimHandler(int, Point);
39 void ParallelHandler(int, Point);
40 Rect GetObjectExtents(Object *);
41 void CheckObjectBounds(void);
42 bool HitTestObjects(Point);
43 bool HitTest(Object *, Point);
44 bool HandleObjectClicked(void);
45 void HandleObjectMovement(Point);
46 void AddDimensionTo(void * obj);
49 void DeleteCurrentLayer(int);
50 void HandleLayerToggle(void);
51 void HandleLayerSwap(int, int);
52 void HandlePenWidth(float);
53 void HandlePenStyle(int);
54 void HandlePenColor(uint32_t);
55 void HandlePenStamp(void);
58 void ObjectHovered(Object *);
59 void ObjectSelected(Object *);
62 void focusOutEvent(QFocusEvent * event);
63 void paintEvent(QPaintEvent * event);
64 void resizeEvent(QResizeEvent * event);
65 void mousePressEvent(QMouseEvent * event);
66 void mouseMoveEvent(QMouseEvent * event);
67 void mouseReleaseEvent(QMouseEvent * event);
68 void wheelEvent(QWheelEvent * event);
69 void keyPressEvent(QKeyEvent * event);
70 void keyReleaseEvent(QKeyEvent * event);
73 QPoint GetAdjustedMousePosition(QMouseEvent * event);
74 QPoint GetAdjustedClientPosition(int x, int y);
84 QPixmap gridBackground;
85 double scale; // Window scaling factor
86 int32_t offsetX, offsetY; // Window offsets
89 uint32_t gridPixels; // Grid size in pixels
94 Vector oldScrollPoint;
95 QString informativeText;
100 std::vector<Object> toolScratch;
101 VPVector toolScratch2;
103 Object * toolObj[32];
104 Point intersectionPoint;
106 bool hoverPointValid;
107 bool hoveringIntersection;
114 #endif // __DRAWINGVIEW_H__