diff options
Diffstat (limited to 'src/main/engine/ui/x11/ui.c')
-rw-r--r-- | src/main/engine/ui/x11/ui.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/main/engine/ui/x11/ui.c b/src/main/engine/ui/x11/ui.c index fc7e0b7..07db3a6 100644 --- a/src/main/engine/ui/x11/ui.c +++ b/src/main/engine/ui/x11/ui.c @@ -35,7 +35,6 @@ typedef struct { int close_window; } X11UI; -void (*on_loop_event)(); void (*on_expose_event)(); void (*on_resize_event)(UIEventResize *); void (*on_mouse_press_event)(UIMouseButtonPressed *); @@ -253,9 +252,11 @@ ui_on_generic_event(XEvent event) } void -ui_set_loop_listener(void (*loop_event)()) +ui_set_loop_listener(UI *ui, void (*loop_event)(void *data), void *data) { - on_loop_event = loop_event; + ui->loop_event = malloc(sizeof(LoopEvent)); + ui->loop_event->on_loop_event = loop_event; + ui->loop_event->data = data; } void @@ -271,7 +272,7 @@ ui_set_resize_listener(void (*resize_event)(UIEventResize *)) } void -ui_set_mouse_press_listener(void (*mouse_press_event)(UIMouseButtonPressed *)) +ui_set_mouse_press_listener(void (*mouse_press_event)(UIMouseButtonPressed *), void *data) { on_mouse_press_event = mouse_press_event; } @@ -301,7 +302,7 @@ ui_loop(UI *ui) ui_on_mouse_release(event); } - on_loop_event(); + ui->loop_event->on_loop_event(ui->loop_event->data); glXSwapBuffers(display, window); } |