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 *, std::vector<void *> &, int, bool ignoreLayer = false);
26 void AddHoveredToSelection(void);
27 void GetSelection(std::vector<void *> &);
28 void GetHovered(std::vector<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 Rect GetObjectExtents(Object *);
37 void CheckObjectBounds(void);
38 bool HitTestObjects(Point);
39 bool HitTest(Object *, Point);
40 bool HandleObjectClicked(void);
41 void HandleObjectMovement(Point);
44 void DeleteCurrentLayer(int);
45 void HandleLayerToggle(void);
46 void HandleLayerSwap(int, int);
49 void ObjectHovered(Object *);
52 void paintEvent(QPaintEvent * event);
53 void resizeEvent(QResizeEvent * event);
54 void mousePressEvent(QMouseEvent * event);
55 void mouseMoveEvent(QMouseEvent * event);
56 void mouseReleaseEvent(QMouseEvent * event);
57 void wheelEvent(QWheelEvent * event);
58 void keyPressEvent(QKeyEvent * event);
59 void keyReleaseEvent(QKeyEvent * event);
62 QPoint GetAdjustedMousePosition(QMouseEvent * event);
63 QPoint GetAdjustedClientPosition(int x, int y);
67 // uint32_t numSelected;
73 QPixmap gridBackground;
74 double scale; // Window scaling factor
75 int32_t offsetX, offsetY; // Window offsets
78 uint32_t gridPixels; // Grid size in pixels
83 QString informativeText;
86 std::vector<void *> select;
87 std::vector<void *> hover;
88 std::vector<void *> toolObjects;
89 std::vector<Object> toolScratch;
91 Point intersectionPoint;
94 bool hoveringIntersection;
100 #endif // __DRAWINGVIEW_H__