| 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 |