1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-13 17:17:37 +00:00
serenity/Applications/PaintBrush/Tool.h

25 lines
651 B
C++

#pragma once
#include "PaintableWidget.h"
class Tool {
public:
virtual ~Tool();
virtual const char* class_name() const = 0;
virtual void on_mousedown(GMouseEvent&) {}
virtual void on_mousemove(GMouseEvent&) {}
virtual void on_mouseup(GMouseEvent&) {}
virtual void on_contextmenu(GContextMenuEvent&) {}
virtual void on_second_paint(GPaintEvent&) {}
virtual void on_keydown(GKeyEvent&) {}
virtual void on_keyup(GKeyEvent&) {}
void clear() { m_widget = nullptr; }
void setup(PaintableWidget& widget) { m_widget = widget.make_weak_ptr(); }
protected:
Tool();
WeakPtr<PaintableWidget> m_widget;
};