1 #ifndef __DRAWINGVIEW_H__
2 #define __DRAWINGVIEW_H__
8 enum { ToolMouseDown, ToolMouseMove, ToolMouseUp, ToolKeyDown, ToolKeyUp, ToolCleanup };
12 class DrawingView: public QWidget
17 DrawingView(QWidget * parent = NULL);
20 void SetGridSize(uint32_t);
21 void UpdateGridBackground(void);
22 Point SnapPointToGrid(Point);
23 void RenderObjects(Painter *, std::vector<void *> &, int);
24 void AddHoveredToSelection(void);
25 void GetSelection(std::vector<void *> &);
26 void GetHovered(std::vector<void *> &);
27 void ToolHandler(int, Point);
28 void ToolDraw(Painter *);
29 void LineHandler(int, Point);
30 void CircleHandler(int, Point);
31 void ArcHandler(int, Point);
32 void RotateHandler(int, Point);
33 void MirrorHandler(int, Point);
34 void CheckObjectBounds(void);
35 bool HitTestObjects(Point);
36 void HandleObjectMovement(Point);
39 void SetCurrentLayer(int);
40 void DeleteCurrentLayer(int);
41 void HandleLayerToggle(void);
42 void HandleLayerSwap(int, int);
45 void paintEvent(QPaintEvent * event);
46 void resizeEvent(QResizeEvent * event);
47 void mousePressEvent(QMouseEvent * event);
48 void mouseMoveEvent(QMouseEvent * event);
49 void mouseReleaseEvent(QMouseEvent * event);
50 void wheelEvent(QWheelEvent * event);
51 void keyPressEvent(QKeyEvent * event);
52 void keyReleaseEvent(QKeyEvent * event);
55 QPoint GetAdjustedMousePosition(QMouseEvent * event);
56 QPoint GetAdjustedClientPosition(int x, int y);
66 QPixmap gridBackground;
67 double scale; // Window scaling factor
68 int32_t offsetX, offsetY; // Window offsets
71 uint32_t gridPixels; // Grid size in pixels
76 QString informativeText;
79 std::vector<void *> select;
80 std::vector<void *> hover;
81 std::vector<void *> toolObjects;
82 std::vector<Object> toolScratch;
84 Point intersectionPoint;
85 bool hoveringIntersection;
88 // static Container document;
91 #endif // __DRAWINGVIEW_H__