ladybird/Userland/Applications/PixelPaint/ToolboxWidget.h
Lenny Maiorani 160bda7228 Applications: Use default constructors/destructors
https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#cother-other-default-operation-rules

"The compiler is more likely to get the default semantics right and
you cannot implement these functions better than the compiler."
2022-02-14 22:06:55 +00:00

48 lines
953 B
C++

/*
* Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2022, the SerenityOS developers.
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/NonnullOwnPtrVector.h>
#include <LibGUI/ActionGroup.h>
#include <LibGUI/Widget.h>
namespace PixelPaint {
class Tool;
class ToolboxWidget final : public GUI::Widget {
C_OBJECT(ToolboxWidget);
public:
virtual ~ToolboxWidget() override = default;
Function<void(Tool*)> on_tool_selection;
template<typename Callback>
void for_each_tool(Callback callback)
{
for (auto& tool : m_tools)
callback(tool);
}
Tool* active_tool() const { return m_active_tool; }
private:
friend class ToolButton;
void setup_tools();
explicit ToolboxWidget();
RefPtr<GUI::Toolbar> m_toolbar;
GUI::ActionGroup m_action_group;
NonnullOwnPtrVector<Tool> m_tools;
Tool* m_active_tool { nullptr };
};
}