From 1425b396b08f0e91d45bbd0f92b1309115c7c870 Mon Sep 17 00:00:00 2001 From: Aylur Date: Sun, 19 May 2024 02:39:53 +0200 Subject: init 0.1.0 --- src/widget/button.vala | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/widget/button.vala (limited to 'src/widget/button.vala') diff --git a/src/widget/button.vala b/src/widget/button.vala new file mode 100644 index 0000000..601733f --- /dev/null +++ b/src/widget/button.vala @@ -0,0 +1,35 @@ +namespace Astal { +public class Button : Gtk.Button { + public signal void hover (Gdk.EventCrossing event); + public signal void hover_lost (Gdk.EventCrossing event); + public signal void click (Gdk.EventButton event); + public signal void click_release (Gdk.EventButton event); + + construct { + add_events(Gdk.EventMask.SCROLL_MASK); + add_events(Gdk.EventMask.SMOOTH_SCROLL_MASK); + + enter_notify_event.connect((self, event) => { + if (event.window == self.get_window() && + event.detail != Gdk.NotifyType.INFERIOR) { + hover(event); + } + }); + + leave_notify_event.connect((self, event) => { + if (event.window == self.get_window() && + event.detail != Gdk.NotifyType.INFERIOR) { + hover_lost(event); + } + }); + + button_press_event.connect((event) => { + click(event); + }); + + button_release_event.connect((event) => { + click_release(event); + }); + } +} +} -- cgit v1.2.3