Add example of registering events not part of an array

This commit is contained in:
Abdelrahman Said 2025-01-01 20:34:48 +00:00
parent 01592a57a4
commit 6d2f6742c0

View File

@ -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");
}