mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-03-24 22:35:21 +00:00
You could draw a Rectangle/Ellipse from the center by pressing down the Alt key, but this was missing for lines. This commit adds it in to keep consistency among the different shapes.
39 lines
1.0 KiB
C++
39 lines
1.0 KiB
C++
/*
|
|
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "Tool.h"
|
|
#include <LibGUI/ActionGroup.h>
|
|
#include <LibGfx/Point.h>
|
|
|
|
namespace PixelPaint {
|
|
|
|
class LineTool final : public Tool {
|
|
public:
|
|
LineTool();
|
|
virtual ~LineTool() override;
|
|
|
|
virtual void on_mousedown(Layer*, MouseEvent&) override;
|
|
virtual void on_mousemove(Layer*, MouseEvent&) override;
|
|
virtual void on_mouseup(Layer*, MouseEvent&) override;
|
|
virtual void on_second_paint(Layer const*, GUI::PaintEvent&) override;
|
|
virtual void on_keydown(GUI::KeyEvent&) override;
|
|
virtual GUI::Widget* get_properties_widget() override;
|
|
virtual Gfx::StandardCursor cursor() override { return Gfx::StandardCursor::Crosshair; }
|
|
|
|
private:
|
|
RefPtr<GUI::Widget> m_properties_widget;
|
|
|
|
GUI::MouseButton m_drawing_button { GUI::MouseButton::None };
|
|
Gfx::IntPoint m_drag_start_position;
|
|
Gfx::IntPoint m_line_start_position;
|
|
Gfx::IntPoint m_line_end_position;
|
|
int m_thickness { 1 };
|
|
};
|
|
|
|
}
|