mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 18:27:35 +00:00
HackStudio: Introduce a Tool class with subs CursorTool and WidgetTool
These will be used to draw out new widgets on a FormWidget, or in the case of CursorTool, to select and manipulate existing widgets.
This commit is contained in:
parent
a04ab219d1
commit
e87756424d
12 changed files with 166 additions and 0 deletions
30
DevTools/HackStudio/Tool.h
Normal file
30
DevTools/HackStudio/Tool.h
Normal file
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
|
||||
#include <AK/Noncopyable.h>
|
||||
|
||||
class FormEditorWidget;
|
||||
class GMouseEvent;
|
||||
|
||||
class Tool {
|
||||
AK_MAKE_NONCOPYABLE(Tool)
|
||||
AK_MAKE_NONMOVABLE(Tool)
|
||||
public:
|
||||
virtual ~Tool() {}
|
||||
|
||||
virtual void on_mousedown(GMouseEvent&) = 0;
|
||||
virtual void on_mouseup(GMouseEvent&) = 0;
|
||||
virtual void on_mousemove(GMouseEvent&) = 0;
|
||||
|
||||
virtual const char* class_name() const = 0;
|
||||
|
||||
virtual void attach() {}
|
||||
virtual void detach() {}
|
||||
|
||||
protected:
|
||||
explicit Tool(FormEditorWidget& editor)
|
||||
: m_editor(editor)
|
||||
{
|
||||
}
|
||||
|
||||
FormEditorWidget& m_editor;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue