From 6d2f6742c0c7c970a663f5999fd454ad1d33fe51 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Wed, 1 Jan 2025 20:34:48 +0000 Subject: [PATCH] Add example of registering events not part of an array --- src/main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main.c b/src/main.c index 13b813f..ed24e01 100644 --- a/src/main.c +++ b/src/main.c @@ -30,6 +30,7 @@ enum event_ids { void window_event_handler(void *data); void keyboard_event_handler(void *data); void mouse_event_handler(void *data); +void extra_event_handler(void *data); int main(void) { Event events [COUNT_EVENTS] = {0}; @@ -59,6 +60,13 @@ int main(void) { printf(" X: %d, Y: %d\n", mouse_event.x, mouse_event.y); es_emit_event(es, events[EVENT_MOUSE], (void *)&mouse_event); + // You can also add other events not stored in an array + Event extra_event = es_register_event(es); + EventListener listener = es_add_event_listener(es, extra_event, extra_event_handler); + es_emit_event(es, extra_event, NULL); + es_remove_event_listener(es, listener); + es_deregister_event(es, extra_event); + for (int i = 0; i < COUNT_EVENTS; ++i) { es_remove_event_listener(es, listeners[i]); es_deregister_event(es, events[i]); @@ -101,3 +109,7 @@ void mouse_event_handler(void *data) { printf("FROM CALLBACK\n"); printf(" X: %d, Y: %d\n\n", ev->x, ev->y); } + +void extra_event_handler(void *data) { + printf("Calling extra_event_handler\n\n"); +}