1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:48:11 +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:
Andreas Kling 2019-11-10 21:45:32 +01:00
parent a04ab219d1
commit e87756424d
12 changed files with 166 additions and 0 deletions

View file

@ -1,5 +1,6 @@
#include "FormWidget.h"
#include "FormEditorWidget.h"
#include "Tool.h"
#include <LibGUI/GPainter.h>
FormWidget::FormWidget(FormEditorWidget& parent)
@ -8,12 +9,24 @@ FormWidget::FormWidget(FormEditorWidget& parent)
set_fill_with_background_color(true);
set_background_color(Color::WarmGray);
set_relative_rect(5, 5, 400, 300);
set_greedy_for_hits(true);
}
FormWidget::~FormWidget()
{
}
FormEditorWidget& FormWidget::editor()
{
return static_cast<FormEditorWidget&>(*parent());
}
const FormEditorWidget& FormWidget::editor() const
{
return static_cast<const FormEditorWidget&>(*parent());
}
void FormWidget::paint_event(GPaintEvent& event)
{
GPainter painter(*this);
@ -25,3 +38,18 @@ void FormWidget::paint_event(GPaintEvent& event)
}
}
}
void FormWidget::mousedown_event(GMouseEvent& event)
{
editor().tool().on_mousedown(event);
}
void FormWidget::mouseup_event(GMouseEvent& event)
{
editor().tool().on_mouseup(event);
}
void FormWidget::mousemove_event(GMouseEvent& event)
{
editor().tool().on_mousemove(event);
}