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 window_event_handler(void *data);
|
||||||
void keyboard_event_handler(void *data);
|
void keyboard_event_handler(void *data);
|
||||||
void mouse_event_handler(void *data);
|
void mouse_event_handler(void *data);
|
||||||
|
void extra_event_handler(void *data);
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
Event events [COUNT_EVENTS] = {0};
|
Event events [COUNT_EVENTS] = {0};
|
||||||
@ -59,6 +60,13 @@ int main(void) {
|
|||||||
printf(" X: %d, Y: %d\n", mouse_event.x, mouse_event.y);
|
printf(" X: %d, Y: %d\n", mouse_event.x, mouse_event.y);
|
||||||
es_emit_event(es, events[EVENT_MOUSE], (void *)&mouse_event);
|
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) {
|
for (int i = 0; i < COUNT_EVENTS; ++i) {
|
||||||
es_remove_event_listener(es, listeners[i]);
|
es_remove_event_listener(es, listeners[i]);
|
||||||
es_deregister_event(es, events[i]);
|
es_deregister_event(es, events[i]);
|
||||||
@ -101,3 +109,7 @@ void mouse_event_handler(void *data) {
|
|||||||
printf("FROM CALLBACK\n");
|
printf("FROM CALLBACK\n");
|
||||||
printf(" X: %d, Y: %d\n\n", ev->x, ev->y);
|
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