1 #pragma once |
1 #pragma once |
2 #include <QMouseEvent> |
2 #include <QMouseEvent> |
3 #include "../main.h" |
3 #include "../main.h" |
|
4 #include "../ui/canvas.h" |
4 |
5 |
5 class BaseTool : public QObject |
6 class BaseTool : public QObject |
6 { |
7 { |
7 Q_OBJECT |
8 Q_OBJECT |
8 |
9 |
9 public: |
10 public: |
10 struct MouseEventData |
|
11 { |
|
12 QMouseEvent* ev; |
|
13 Qt::KeyboardModifiers keymods; |
|
14 bool mouseMoved; |
|
15 Qt::MouseButtons releasedButtons; |
|
16 }; |
|
17 |
|
18 BaseTool(QObject* parent = nullptr); |
11 BaseTool(QObject* parent = nullptr); |
19 |
12 |
20 virtual QString name() const = 0; |
13 virtual QString name() const = 0; |
21 virtual QString toolTip() const = 0; |
14 virtual QString toolTip() const = 0; |
22 virtual bool mousePressed(QMouseEvent*) { return false; } |
15 virtual bool mousePressed(QMouseEvent*) { return false; } |
23 virtual bool mouseReleased(MouseEventData const&) { return false; } |
16 virtual bool mouseClick(const Canvas::MouseClickInfo&) { return false; } |
24 virtual bool mouseDoubleClicked(QMouseEvent*) { return false; } |
17 virtual bool mouseDoubleClicked(QMouseEvent*) { return false; } |
25 virtual bool mouseMoved(QMouseEvent*) { return false; } |
18 virtual bool mouseMoved(QMouseEvent*) { return false; } |
26 virtual bool keyReleased(QKeyEvent*) { return false; } |
19 virtual bool keyReleased(QKeyEvent*) { return false; } |
27 }; |
20 }; |
28 |
21 |