Add example of registering events not part of an array
This commit is contained in:
parent
01592a57a4
commit
6d2f6742c0
12
src/main.c
12
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");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user