Add example of registering events not part of an array
This commit is contained in:
		
							
								
								
									
										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"); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user