src/tools/basetool.h

changeset 191
d355d4c52d51
parent 190
3dbdc243f053
child 192
e6faeffed1d1
equal deleted inserted replaced
190:3dbdc243f053 191:d355d4c52d51
1 #pragma once
2 #include <QMouseEvent>
3 #include "../main.h"
4 #include "../ui/canvas.h"
5
6 class Document;
7
8 class BaseTool : public QObject
9 {
10 Q_OBJECT
11
12 public:
13 BaseTool(Document* document);
14
15 virtual QString name() const = 0;
16 virtual QString toolTip() const = 0;
17 virtual bool mouseClick(Canvas*, QMouseEvent*) { return false; }
18 virtual bool mouseDoubleClicked(QMouseEvent*, QMouseEvent*) { return false; }
19 virtual bool mouseMove(Document*, Canvas*, QMouseEvent*) { return false; }
20 virtual bool keyReleased(Document*, Canvas*, QKeyEvent*) { return false; }
21 virtual QWidget* toolWidget() { return nullptr; }
22 virtual void selectionChanged(const QSet<ldraw::id_t>&) {}
23 virtual void reset() {}
24 virtual void overpaint(Canvas*, QPainter*) const {}
25 virtual QString iconName() const;
26 Q_SIGNALS:
27 void desiredGridChange(const glm::mat4& matrix);
28 protected:
29 QWidget* const parentWidget;
30 Document* const document;
31 };
32

mercurial