cmdfx 0.2.0
Lightweight game engine for your terminal
Loading...
Searching...
No Matches
events.h
Go to the documentation of this file.
1
10
11#pragma once
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
28#define EVENT_TICK 10
29
30#pragma region Events
31
37#define CMDFX_EVENT_RESIZE 0
38
60
66#define CMDFX_EVENT_KEY 1
67
89
95#define CMDFX_EVENT_MOUSE 2
96
131
132#pragma endregion
133
134struct CmdFX_Event;
135
141typedef int (*CmdFX_EventCallback)(struct CmdFX_Event* event);
142
149typedef struct CmdFX_Event {
153 unsigned int id;
157 unsigned long long time;
161 void* data;
163
173int addCmdFXEventListener(unsigned int id, CmdFX_EventCallback callback);
174
181CmdFX_EventCallback* getCmdFXEventListener(unsigned int eventId, unsigned int listenerId);
182
189int removeCmdFXEventListener(unsigned int eventId, unsigned int listenerId);
190
197
205
211
216
217#ifdef __cplusplus
218}
219#endif
int addCmdFXEventListener(unsigned int id, CmdFX_EventCallback callback)
Adds an event listener.
const CmdFX_EventCallback ** dispatchCmdFXEvent(CmdFX_Event *event)
Dispatches an event.
int beginCmdFXEventLoop()
Starts the event loop for CmdFX.
int removeCmdFXEventListener(unsigned int eventId, unsigned int listenerId)
Removes an event listener.
int endCmdFXEventLoop()
Ends the event loop for CmdFX.
CmdFX_EventCallback * getCmdFXEventListener(unsigned int eventId, unsigned int listenerId)
Gets an event listener.
int(* CmdFX_EventCallback)(struct CmdFX_Event *event)
Represents an event callback.
Definition events.h:141
void shutdownCmdFXEvents()
Removes all event listeners.
The main event structure for CmdFX.
Definition events.h:149
unsigned int id
The event ID.
Definition events.h:153
void * data
A pointer to the data associated with the event.
Definition events.h:161
unsigned long long time
The time the event was created, in milliseconds.
Definition events.h:157
The payload for the CMDFX_EVENT_KEY event.
Definition events.h:71
char keyChar
The character representation of the key.
Definition events.h:81
int keyCode
The key code, or 0 if no key is pressed.
Definition events.h:75
int state
The state of the key.
Definition events.h:87
The payload for the CMDFX_EVENT_MOUSE event.
Definition events.h:100
int state
Whether the button was pressed or released.
Definition events.h:113
int x
The x position of the mouse.
Definition events.h:121
int prevX
The previous x position of the mouse.
Definition events.h:117
int y
The y position of the mouse.
Definition events.h:129
int prevY
The previous y position of the mouse.
Definition events.h:125
int button
The button that was pressed, or -1 if no button was pressed.
Definition events.h:109
The payload for the CMDFX_EVENT_RESIZE event.
Definition events.h:42
int newWidth
The new width of the terminal.
Definition events.h:54
int prevHeight
The previous height of the terminal.
Definition events.h:50
int prevWidth
The previous width of the terminal.
Definition events.h:46
int newHeight
The new height of the terminal.
Definition events.h:58