mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
LibGUI: Add button handler for middle mouse clicks
This commit is contained in:
parent
18c84d2e63
commit
f9212ac02e
Notes:
sideshowbarker
2024-07-17 08:57:33 +09:00
Author: https://github.com/networkException Commit: https://github.com/SerenityOS/serenity/commit/f9212ac02e Pull-request: https://github.com/SerenityOS/serenity/pull/14544
@ -140,6 +140,9 @@ void AbstractButton::mouseup_event(MouseEvent& event)
|
||||
case MouseButton::Primary:
|
||||
click(event.modifiers());
|
||||
break;
|
||||
case MouseButton::Middle:
|
||||
middle_mouse_click(event.modifiers());
|
||||
break;
|
||||
default:
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ public:
|
||||
void set_allowed_mouse_buttons_for_pressing(unsigned allowed_buttons) { m_allowed_mouse_buttons_for_pressing = allowed_buttons; }
|
||||
|
||||
virtual void click(unsigned modifiers = 0) = 0;
|
||||
virtual void middle_mouse_click(unsigned) {};
|
||||
virtual bool is_uncheckable() const { return true; }
|
||||
|
||||
int auto_repeat_interval() const { return m_auto_repeat_interval; }
|
||||
|
@ -141,6 +141,17 @@ void Button::click(unsigned modifiers)
|
||||
m_action->activate(this);
|
||||
}
|
||||
|
||||
void Button::middle_mouse_click(unsigned int modifiers)
|
||||
{
|
||||
if (!is_enabled())
|
||||
return;
|
||||
|
||||
NonnullRefPtr protector = *this;
|
||||
|
||||
if (on_middle_mouse_click)
|
||||
on_middle_mouse_click(modifiers);
|
||||
}
|
||||
|
||||
void Button::context_menu_event(ContextMenuEvent& context_menu_event)
|
||||
{
|
||||
if (!is_enabled())
|
||||
|
@ -30,12 +30,14 @@ public:
|
||||
Gfx::TextAlignment text_alignment() const { return m_text_alignment; }
|
||||
|
||||
Function<void(unsigned modifiers)> on_click;
|
||||
Function<void(unsigned modifiers)> on_middle_mouse_click;
|
||||
Function<void(ContextMenuEvent&)> on_context_menu_request;
|
||||
|
||||
void set_button_style(Gfx::ButtonStyle style) { m_button_style = style; }
|
||||
Gfx::ButtonStyle button_style() const { return m_button_style; }
|
||||
|
||||
virtual void click(unsigned modifiers = 0) override;
|
||||
virtual void middle_mouse_click(unsigned modifiers = 0) override;
|
||||
virtual void context_menu_event(ContextMenuEvent&) override;
|
||||
|
||||
Action* action() { return m_action; }
|
||||
|
Loading…
Reference in New Issue
Block a user