kiba-engine
|
Event system. More...
#include <kiba/defines.h>
Go to the source code of this file.
Data Structures | |
struct | event_context |
Context used to store data of an event. More... | |
Typedefs | |
typedef struct event_context | event_context |
Context used to store data of an event. | |
typedef enum engine_event_code | engine_event_code |
Engine internal event codes. More... | |
typedef b8(* | on_event_function) (u16 event_code, void *sender, void *listener, event_context context) |
Function signature for event callbacks. More... | |
Enumerations | |
enum | engine_event_code { EVENT_CODE_APPLICATION_QUIT , EVENT_CODE_KEY_PRESSED , EVENT_CODE_KEY_RELEASED , EVENT_CODE_MOUSE_MOVED , EVENT_CODE_MOUSE_WHEEL , EVENT_CODE_WINDOW_RESIZE , EVENT_CODE_WINDOW_MINIMIZED , EVENT_CODE_WINDOW_RAISED , ENGINE_EVENT_CODE_MAX = 0x00FF , APPLICATION_EVENT_CODE_MAX = 0xFFFF } |
Engine internal event codes. More... | |
Functions | |
b8 | event_initialize (void) |
Initialize the event system. More... | |
void | event_shutdown (void) |
Shutdown event system. More... | |
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. More... | |
KB_API b8 | event_unregister (u16 event_code, void *listener, on_event_function on_event) |
Unregister a callback for a particular event type. More... | |
KB_API b8 | event_fire (u16 event_code, void *sender, event_context context) |
Fire an event. More... | |
Event system.
Provides inteface to register event listener and fire events. The event code range from engine_event_code::ENGINE_EVENT_CODE_MAX to engine_event_code::APPLICATION_EVENT_CODE_MAX can be used by the application.
Definition in file event.h.
typedef enum engine_event_code engine_event_code |
Engine internal event codes.
Applications must not use the range of values from 0 to ENGINE_EVENT_CODE_MAX. Instead it should use the range starting right after until APPLICATION_EVENT_CODE_MAX for event codes.
typedef b8(* on_event_function) (u16 event_code, void *sender, void *listener, event_context context) |
Function signature for event callbacks.
event_code | the code of the event passed to it |
sender | any kind of data set by the sender, can be NULL |
listener | the data which was provided to register the callback |
context | contextual data of the event passed to it |
enum engine_event_code |
Engine internal event codes.
Applications must not use the range of values from 0 to ENGINE_EVENT_CODE_MAX. Instead it should use the range starting right after until APPLICATION_EVENT_CODE_MAX for event codes.
Enumerator | |
---|---|
ENGINE_EVENT_CODE_MAX | End of internal code range. |
APPLICATION_EVENT_CODE_MAX | End of external code range. |
KB_API b8 event_fire | ( | u16 | event_code, |
void * | sender, | ||
event_context | context | ||
) |
Fire an event.
The event system will propagate the event to all registered listeners.
event_code | the code of the event being fired |
sender | custom sender data which will be forwarded into the listeners' callbacks |
context | contextual data for the event being fired |
b8 event_initialize | ( | void | ) |
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.
event_code | the event code to listen for |
listener | custom data which will be passed to the callback when it is called |
on_event | the callback to be called by the event system |
append | register at the end of the priority list (true) or at the beginning (false) |
Definition at line 47 of file event.c.
KB_API b8 event_unregister | ( | u16 | event_code, |
void * | listener, | ||
on_event_function | on_event | ||
) |
Unregister a callback for a particular event type.
event_code | the event code to unregister from |
listener | custom data originally passed to the event_register call |
on_event | the callback to be unregistered |
Definition at line 67 of file event.c.