1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-12 20:07:36 +00:00
serenity/Userland/Applications/KeyboardMapper/KeyButton.h
Ben Wiederhake 465af4c4d4 Applications: Fix visibility of Object-derivative constructors
Derivatives of Core::Object should be constructed through
ClassName::construct(), to avoid handling ref-counted objects with
refcount zero. Fixing the visibility means that misuses like this are
more difficult.
2021-11-02 22:56:53 +01:00

31 lines
689 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2020, Hüseyin Aslıtürk <asliturk@hotmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibGUI/AbstractButton.h>
class KeyButton final : public GUI::AbstractButton {
C_OBJECT(KeyButton)
public:
virtual ~KeyButton() override;
void set_pressed(bool value) { m_pressed = value; }
Function<void()> on_click;
protected:
virtual void click(unsigned modifiers = 0) override;
virtual void leave_event(Core::Event&) override;
virtual void mousemove_event(GUI::MouseEvent&) override;
virtual void paint_event(GUI::PaintEvent&) override;
private:
KeyButton() = default;
bool m_pressed { false };
};