kiba-engine
event.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include <kiba/defines.h>
13 
15 typedef struct event_context {
17  union {
19  i64 i64[2];
21  u64 u64[2];
23  i32 i32[4];
25  u32 u32[4];
27  i16 i16[8];
29  u16 u16[8];
31  i8 i8[16];
33  u8 u8[16];
35  f64 f64[2];
37  f32 f32[4];
39  char c[16];
40  } data;
42 
49 typedef enum engine_event_code {
50  EVENT_CODE_APPLICATION_QUIT,
51  EVENT_CODE_KEY_PRESSED,
52  EVENT_CODE_KEY_RELEASED,
53  EVENT_CODE_MOUSE_MOVED,
54  EVENT_CODE_MOUSE_WHEEL,
55  EVENT_CODE_WINDOW_RESIZE,
56  EVENT_CODE_WINDOW_MINIMIZED,
57  EVENT_CODE_WINDOW_RAISED,
63 
73 typedef b8 (*on_event_function)(u16 event_code, void *sender, void *listener, event_context context);
74 
84 b8 event_initialize(void);
85 
90 void event_shutdown(void);
91 
101 KB_API b8 event_register(u16 event_code, void *listener, on_event_function on_event, b8 append);
102 
111 KB_API b8 event_unregister(u16 event_code, void *listener, on_event_function on_event);
112 
123 KB_API b8 event_fire(u16 event_code, void *sender, event_context context);
Global typedefs and macros.
b8(* on_event_function)(u16 event_code, void *sender, void *listener, event_context context)
Function signature for event callbacks.
Definition: event.h:73
KB_API b8 event_unregister(u16 event_code, void *listener, on_event_function on_event)
Unregister a callback for a particular event type.
Definition: event.c:67
struct event_context event_context
Context used to store data of an event.
KB_API b8 event_register(u16 event_code, void *listener, on_event_function on_event, b8 append)
Register a callback for a particular event type.
Definition: event.c:47
engine_event_code
Engine internal event codes.
Definition: event.h:49
@ APPLICATION_EVENT_CODE_MAX
End of external code range.
Definition: event.h:61
@ ENGINE_EVENT_CODE_MAX
End of internal code range.
Definition: event.h:59
KB_API b8 event_fire(u16 event_code, void *sender, event_context context)
Fire an event.
Definition: event.c:81
b8 event_initialize(void)
Initialize the event system.
Definition: event.c:40
void event_shutdown(void)
Shutdown event system.
Definition: event.c:45
Context used to store data of an event.
Definition: event.h:15
union event_context::@0 data
Dynamic event data.
char c[16]
An array of 16 characters.
Definition: event.h:39