src/tools/basetool.h

Wed, 25 May 2022 13:49:45 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Wed, 25 May 2022 13:49:45 +0300
changeset 190
3dbdc243f053
parent 188
64ea7282611e
permissions
-rw-r--r--

add missing file

#pragma once
#include <QMouseEvent>
#include "../main.h"
#include "../ui/canvas.h"

class Document;

class BaseTool : public QObject
{
	Q_OBJECT

public:
	BaseTool(Document* document);

	virtual QString name() const = 0;
	virtual QString toolTip() const = 0;
	virtual bool mouseClick(Canvas*, QMouseEvent*) { return false; }
	virtual bool mouseDoubleClicked(QMouseEvent*, QMouseEvent*) { return false; }
	virtual bool mouseMove(Document*, Canvas*, QMouseEvent*) { return false; }
	virtual bool keyReleased(Document*, Canvas*, QKeyEvent*) { return false; }
	virtual QWidget* toolWidget() { return nullptr; }
	virtual void selectionChanged(const QSet<ldraw::id_t>&) {}
	virtual void reset() {}
	virtual void overpaint(Canvas*, QPainter*) const {}
	virtual QString iconName() const;
Q_SIGNALS:
	void desiredGridChange(const glm::mat4& matrix);
protected:
	QWidget* const parentWidget;
	Document* const document;
};

mercurial