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 void RenderObjects(Painter *, std::vector<void *> &, int, bool ignoreLayer = false);
25 void AddHoveredToSelection(void);
26 void GetSelection(std::vector<void *> &);
27 void GetHovered(std::vector<void *> &);
28 void ToolHandler(int, Point);
29 void ToolDraw(Painter *);
30 void LineHandler(int, Point);
31 void CircleHandler(int, Point);
32 void ArcHandler(int, Point);
33 void RotateHandler(int, Point);
34 void MirrorHandler(int, Point);
35 Rect GetObjectExtents(Object *);
36 void CheckObjectBounds(void);
37 bool HitTestObjects(Point);
38 bool HitTest(Object *, Point);
39 void HandleObjectMovement(Point);
42 void DeleteCurrentLayer(int);
43 void HandleLayerToggle(void);
44 void HandleLayerSwap(int, int);
47 void ObjectHovered(Object *);
50 void paintEvent(QPaintEvent * event);
51 void resizeEvent(QResizeEvent * event);
52 void mousePressEvent(QMouseEvent * event);
53 void mouseMoveEvent(QMouseEvent * event);
54 void mouseReleaseEvent(QMouseEvent * event);
55 void wheelEvent(QWheelEvent * event);
56 void keyPressEvent(QKeyEvent * event);
57 void keyReleaseEvent(QKeyEvent * event);
60 QPoint GetAdjustedMousePosition(QMouseEvent * event);
61 QPoint GetAdjustedClientPosition(int x, int y);
65 // uint32_t numSelected;
71 QPixmap gridBackground;
72 double scale; // Window scaling factor
73 int32_t offsetX, offsetY; // Window offsets
76 uint32_t gridPixels; // Grid size in pixels
81 QString informativeText;
84 std::vector<void *> select;
85 std::vector<void *> hover;
86 std::vector<void *> toolObjects;
87 std::vector<Object> toolScratch;
89 Point intersectionPoint;
90 bool hoveringIntersection;
95 #endif // __DRAWINGVIEW_H__