ladybird/Userland/Applications/KeyboardMapper/KeyButton.h
RasmusNylander 64684cbd5d KeyboardMapper: Fix discrepancy between cursor and button clickability
KeyButton now only responds to clicks on the key-cap's face. This
corresponds to when the cursor switches from the default arrow to a
hand.
2022-01-06 17:54:03 +01:00

34 lines
763 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 };
bool m_face_hovered { false };
void set_face_hovered(bool value);
};