summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-19 15:49:37 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-19 15:49:37 +0200
commita20d8950d88bf89b2f9b8b02695fc464b2a13d01 (patch)
tree9593f0517ad97f9c2b3422344fade536c42c93d7
parentc27521c9a0b9186bb42d46f3dfffe0cd9ee52c7c (diff)
downloadtris-a20d8950d88bf89b2f9b8b02695fc464b2a13d01.tar.gz
tris-a20d8950d88bf89b2f9b8b02695fc464b2a13d01.zip
Add the UI resize listener
-rw-r--r--src/main/engine/ui/ui.h1
-rw-r--r--src/main/engine/ui/x11/ui.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/src/main/engine/ui/ui.h b/src/main/engine/ui/ui.h
index 95604d7..2335a4b 100644
--- a/src/main/engine/ui/ui.h
+++ b/src/main/engine/ui/ui.h
@@ -24,6 +24,7 @@ void ui_init(int w, int h);
void ui_loop(void);
void ui_set_title(const char *title);
void ui_set_expose_listener(void (*expose_event)());
+void ui_set_resize_listener(void (*resize_event)());
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));
diff --git a/src/main/engine/ui/x11/ui.c b/src/main/engine/ui/x11/ui.c
index 412f67d..2d1a046 100644
--- a/src/main/engine/ui/x11/ui.c
+++ b/src/main/engine/ui/x11/ui.c
@@ -33,6 +33,7 @@ static int close_window = 0;
void (*on_loop_event)();
void (*on_expose_event)();
+void (*on_resize_event)();
void (*on_mouse_press_event)();
void (*on_generic_event)(int);
@@ -123,6 +124,9 @@ static void
ui_on_resize(XEvent event)
{
if (event.type != ConfigureNotify) return;
+ if (on_resize_event != NULL) {
+ on_resize_event();
+ }
glViewport(0, 0, event.xconfigure.width, event.xconfigure.height);
}
@@ -169,6 +173,12 @@ ui_set_expose_listener(void (*expose_event)())
}
void
+ui_set_resize_listener(void (*resize_event)())
+{
+ on_resize_event = resize_event;
+}
+
+void
ui_set_mouse_press_listener(void (*mouse_press_event)())
{
on_mouse_press_event = mouse_press_event;