summaryrefslogtreecommitdiff
path: root/src/main/ui/x11/ui.c
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-17 14:10:39 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-17 14:10:39 +0200
commit268790307bde4859ac6ee5ac6c3d19ada9ed5a11 (patch)
treed0f0a0574cf33526668307bafc269a1a3d7df6e6 /src/main/ui/x11/ui.c
parenta3027cce6f5f7753147edc49aa4403a013338c3d (diff)
downloadtris-268790307bde4859ac6ee5ac6c3d19ada9ed5a11.tar.gz
tris-268790307bde4859ac6ee5ac6c3d19ada9ed5a11.zip
Add the maanagement of mouse press event
Diffstat (limited to 'src/main/ui/x11/ui.c')
-rw-r--r--src/main/ui/x11/ui.c16
1 files changed, 16 insertions, 0 deletions
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)())
{
@@ -156,12 +165,19 @@ ui_set_mouse_press_listener(void (*mouse_press_event)())
}
void
+ui_set_generic_listener(void (*generic_event)(int type))
+{
+ on_generic_event = generic_event;
+}
+
+void
ui_loop(void)
{
XEvent event;
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);