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 DrawBackground(Painter *);
22 // void SetGridSize(uint32_t);
23 // void SetGridSize(double);
24 // void UpdateGridBackground(void);
25 // void UpdateGridBackgroundF(void);
26 Point SnapPointToGrid(Point);
27 Point SnapPointToAngle(Point);
28 void RenderObjects(Painter *, VPVector &, int, bool ignoreLayer = false);
29 void AddHoveredToSelection(void);
30 VPVector GetSelection(void);
31 VPVector GetHovered(void);
32 void ToolHandler(int, Point);
33 void ToolDraw(Painter *);
34 void LineHandler(int, Point);
35 void CircleHandler(int, Point);
36 void ArcHandler(int, Point);
37 void RotateHandler(int, Point);
38 void MirrorHandler(int, Point);
39 void DimensionHandler(int, Point);
40 void TriangulateHandler(int, Point);
41 void TrimHandler(int, Point);
42 void ParallelHandler(int, Point);
43 Rect GetObjectExtents(Object *);
44 void CheckObjectBounds(void);
45 bool HitTestObjects(Point);
46 bool HitTest(Object *, Point);
47 bool HandleObjectClicked(void);
48 void HandleObjectMovement(Point);
49 void AddDimensionTo(void * obj);
52 void DeleteCurrentLayer(int);
53 void HandleLayerToggle(void);
54 void HandleLayerSwap(int, int);
55 void HandlePenWidth(float);
56 void HandlePenStyle(int);
57 void HandlePenColor(uint32_t);
58 void HandlePenStamp(QAction *);
59 void HandlePenDropper(QAction *);
62 void ObjectHovered(Object *);
63 void ObjectSelected(Object *);
64 void NeedZoomUpdate(void);
67 void focusOutEvent(QFocusEvent * event);
68 void focusInEvent(QFocusEvent * event);
69 void paintEvent(QPaintEvent * event);
70 void resizeEvent(QResizeEvent * event);
71 void mousePressEvent(QMouseEvent * event);
72 void mouseMoveEvent(QMouseEvent * event);
73 void mouseReleaseEvent(QMouseEvent * event);
74 void wheelEvent(QWheelEvent * event);
75 void keyPressEvent(QKeyEvent * event);
76 void keyReleaseEvent(QKeyEvent * event);
79 void HandleLayerSwap(int, int, VPVector &);
80 void DrawSubGrid(Painter *, uint32_t, double, Vector, Vector);
81 QPoint GetAdjustedMousePosition(QMouseEvent * event);
82 QPoint GetAdjustedClientPosition(int x, int y);
92 QPixmap gridBackground;
93 double scale; // Window scaling factor
94 int32_t offsetX, offsetY; // Window offsets
100 uint32_t gridPixels; // Grid size in pixels
101 double gridPixelsF; // Grid size in pixels (float)
107 Vector oldScrollPoint;
108 QString informativeText;
112 VPVector toolObjects;
113 std::vector<Object> toolScratch;
114 VPVector toolScratch2;
116 Object * toolObj[32];
117 Point intersectionPoint;
119 bool hoverPointValid;
120 bool hoveringIntersection;
125 bool scrollWheelSeen;
128 #endif // __DRAWINGVIEW_H__