diff options
author | 2025-05-19 16:05:38 +0200 | |
---|---|---|
committer | 2025-05-19 16:05:38 +0200 | |
commit | aa978f89352847fb329fbadf4bf050c8fe4c7c25 (patch) | |
tree | 74940c56d09e5415d015d18a6be3ce31fc2d9edd | |
parent | 73195399de0a6b5de27a838bba2daedc8ff2ae65 (diff) | |
download | tris-aa978f89352847fb329fbadf4bf050c8fe4c7c25.tar.gz tris-aa978f89352847fb329fbadf4bf050c8fe4c7c25.zip |
Add the UIEventResize
-rw-r--r-- | src/main/engine/ui/types.h | 9 | ||||
-rw-r--r-- | src/main/engine/ui/ui.h | 2 | ||||
-rw-r--r-- | src/main/engine/ui/x11/ui.c | 13 |
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; } |