1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 01:47:36 +00:00
serenity/Userland/Applications/PixelPaint/Tools/ZoomTool.h
Tim Ledbetter fc5bcd8476 PixelPaint: Allow repeated zooming with the zoom tool
Previously, the zoom tool only allowed the user to zoom in or out
once, as it didn't take account of the current zoom level.
2023-01-06 00:34:38 +01:00

31 lines
755 B
C++

/*
* Copyright (c) 2021-2023, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include "Tool.h"
#include <LibGUI/ActionGroup.h>
#include <LibGfx/Point.h>
namespace PixelPaint {
class ZoomTool final : public Tool {
public:
ZoomTool() = default;
virtual ~ZoomTool() override = default;
virtual void on_mousedown(Layer*, MouseEvent&) override;
virtual GUI::Widget* get_properties_widget() override;
virtual Variant<Gfx::StandardCursor, NonnullRefPtr<Gfx::Bitmap>> cursor() override { return Gfx::StandardCursor::Zoom; }
private:
virtual StringView tool_name() const override { return "Zoom Tool"sv; }
RefPtr<GUI::Widget> m_properties_widget;
float m_sensitivity { 0.5f };
};
}