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 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"); | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user