From 268790307bde4859ac6ee5ac6c3d19ada9ed5a11 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Sat, 17 May 2025 14:10:39 +0200 Subject: Add the maanagement of mouse press event --- src/main/ui/ui.h | 1 + src/main/ui/x11/ui.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'src/main/ui') diff --git a/src/main/ui/ui.h b/src/main/ui/ui.h index fcdd99f..06cd515 100644 --- a/src/main/ui/ui.h +++ b/src/main/ui/ui.h @@ -25,5 +25,6 @@ void ui_loop(void); void ui_set_title(const char *title); void ui_set_loop_listener(void (*event)()); void ui_set_mouse_press_listener(void (*event)()); +void ui_set_generic_listener(void (*generic_event)(int type)); #endif /* __UI_H__ */ diff --git a/src/main/ui/x11/ui.c b/src/main/ui/x11/ui.c index fc59e4e..69bd5be 100644 --- a/src/main/ui/x11/ui.c +++ b/src/main/ui/x11/ui.c @@ -33,6 +33,7 @@ static int close_window = 0; void (*on_loop_event)(); void (*on_mouse_press_event)(); +void (*on_generic_event)(int); void cleanup(void); @@ -143,6 +144,14 @@ ui_on_mouse_release(XEvent event) if (event.type != ButtonRelease) return; } +static void +ui_on_generic_event(XEvent event) +{ + if (on_generic_event != NULL) { + on_generic_event(event.type); + } +} + void ui_set_loop_listener(void (*loop_event)()) { @@ -155,6 +164,12 @@ ui_set_mouse_press_listener(void (*mouse_press_event)()) on_mouse_press_event = mouse_press_event; } +void +ui_set_generic_listener(void (*generic_event)(int type)) +{ + on_generic_event = generic_event; +} + void ui_loop(void) { @@ -162,6 +177,7 @@ ui_loop(void) while (!close_window) { while (XPending(display)) { XNextEvent(display, &event); + ui_on_generic_event(event); ui_on_expose(event); ui_on_resize(event); ui_on_keypress(event); -- cgit v1.2.3