summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-19 16:05:38 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2025-05-19 16:05:38 +0200
commitaa978f89352847fb329fbadf4bf050c8fe4c7c25 (patch)
tree74940c56d09e5415d015d18a6be3ce31fc2d9edd
parent73195399de0a6b5de27a838bba2daedc8ff2ae65 (diff)
downloadtris-aa978f89352847fb329fbadf4bf050c8fe4c7c25.tar.gz
tris-aa978f89352847fb329fbadf4bf050c8fe4c7c25.zip
Add the UIEventResize
-rw-r--r--src/main/engine/ui/types.h9
-rw-r--r--src/main/engine/ui/ui.h2
-rw-r--r--src/main/engine/ui/x11/ui.c13
3 files changed, 18 insertions, 6 deletions
diff --git a/src/main/engine/ui/types.h b/src/main/engine/ui/types.h
index dafefd9..23943a2 100644
--- a/src/main/engine/ui/types.h
+++ b/src/main/engine/ui/types.h
@@ -21,8 +21,13 @@
#define __TYPES_H__
typedef struct UI {
- int width;
- int height;
+ int width;
+ int height;
} UI;
+typedef struct UIEventResize {
+ int width;
+ int height;
+} UIEventResize;
+
#endif /* __TYPES_H__ */
diff --git a/src/main/engine/ui/ui.h b/src/main/engine/ui/ui.h
index 03d5913..3d32c1a 100644
--- a/src/main/engine/ui/ui.h
+++ b/src/main/engine/ui/ui.h
@@ -26,7 +26,7 @@ UI *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_resize_listener(void (*resize_event)(UIEventResize *));
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 98a94b1..312bdec 100644
--- a/src/main/engine/ui/x11/ui.c
+++ b/src/main/engine/ui/x11/ui.c
@@ -34,7 +34,7 @@ static int close_window = 0;
void (*on_loop_event)();
void (*on_expose_event)();
-void (*on_resize_event)();
+void (*on_resize_event)(UIEventResize *);
void (*on_mouse_press_event)();
void (*on_generic_event)(int);
@@ -137,7 +137,14 @@ ui_on_resize(XEvent event)
{
if (event.type != ConfigureNotify) return;
if (on_resize_event != NULL) {
- on_resize_event();
+ UIEventResize *er = malloc(sizeof(UIEventResize));
+ if (er == NULL) {
+ log_error("Error allocating UIEventResize");
+ exit(EXIT_FAILURE);
+ }
+ er->width = event.xconfigure.width;
+ er->height = event.xconfigure.height;
+ on_resize_event(er);
}
glViewport(0, 0, event.xconfigure.width, event.xconfigure.height);
}
@@ -185,7 +192,7 @@ ui_set_expose_listener(void (*expose_event)())
}
void
-ui_set_resize_listener(void (*resize_event)())
+ui_set_resize_listener(void (*resize_event)(UIEventResize *))
{
on_resize_event = resize_event;
}