Swiftray  1.0
path-draw.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <QMouseEvent>
5 
6 namespace Controls {
7 
8  constexpr QPointF invalid_point(-1, -1);
9 
10  class PathDraw : public CanvasControl {
11  public:
12  explicit PathDraw(Canvas *canvas);
13 
14  bool mousePressEvent(QMouseEvent *e) override;
15 
16  bool mouseMoveEvent(QMouseEvent *e) override;
17 
18  bool mouseReleaseEvent(QMouseEvent *e) override;
19 
20  bool keyPressEvent(QKeyEvent *e) override;
21 
22  bool hoverEvent(QHoverEvent *e, Qt::CursorShape *cursor) override;
23 
24  void paint(QPainter *painter) override;
25 
26  void exit() override;
27 
28  bool hitTest(QPointF canvas_coord);
29 
30  bool hitOrigin(QPointF canvas_coord);
31 
32  bool isActive() override;
33 
34  private:
35  QPainterPath working_path_;
36  QPointF cursor_;
37  bool is_drawing_curve_;
38  bool is_closing_curve_;
39  QPointF curve_target_;
40  QPointF last_ctrl_pt_;
41  };
42 
43 }
Definition: canvas.h:27
Definition: canvas-control.h:16
Canvas & canvas()
Definition: canvas-control.cpp:34
Definition: path-draw.h:10
bool mousePressEvent(QMouseEvent *e) override
Definition: path-draw.cpp:21
PathDraw(Canvas *canvas)
Definition: path-draw.cpp:14
void paint(QPainter *painter) override
Definition: path-draw.cpp:126
bool hoverEvent(QHoverEvent *e, Qt::CursorShape *cursor) override
Definition: path-draw.cpp:44
bool mouseMoveEvent(QMouseEvent *e) override
Definition: path-draw.cpp:35
bool keyPressEvent(QKeyEvent *e) override
Definition: path-draw.cpp:172
void exit() override
Definition: path-draw.cpp:180
bool hitTest(QPointF canvas_coord)
Definition: path-draw.cpp:108
bool isActive() override
Definition: path-draw.cpp:10
bool mouseReleaseEvent(QMouseEvent *e) override
Definition: path-draw.cpp:50
bool hitOrigin(QPointF canvas_coord)
Definition: path-draw.cpp:99
In-canvas controls with its own painting and event handling functions.
Definition: canvas-control.h:8
constexpr QPointF invalid_point(-1, -1)