cmdfx 0.2.1
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#include <stdbool.h>
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
30#define EVENT_TICK 10
31
32#pragma region Events
33
39#define CMDFX_EVENT_RESIZE 0
40
62
68#define CMDFX_EVENT_KEY 1
69
91
97#define CMDFX_EVENT_MOUSE 2
98
102typedef struct CmdFX_MouseEvent {
115 bool state;
119 int prevX;
123 int x;
127 int prevY;
131 int y;
133
134#pragma endregion
135
136#define CMDFX_EVENT_BUTTON_CLICK 3
137
158
159struct CmdFX_Event;
160
166typedef int (*CmdFX_EventCallback)(struct CmdFX_Event* event);
167
174typedef struct CmdFX_Event {
178 unsigned int id;
182 unsigned long long time;
186 void* data;
188
198int addCmdFXEventListener(unsigned int id, CmdFX_EventCallback callback);
199
206CmdFX_EventCallback* getCmdFXEventListener(unsigned int eventId, unsigned int listenerId);
207
214int removeCmdFXEventListener(unsigned int eventId, unsigned int listenerId);
215
222
230
236
241
242#ifdef __cplusplus
243}
244#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:166
void shutdownCmdFXEvents()
Removes all event listeners.
Called when a button is clicked.
Definition events.h:143
void * button
The button that was clicked.
Definition events.h:156
CmdFX_MouseEvent * mouseEvent
The mouse event that triggered the button event.
Definition events.h:150
The main event structure for CmdFX.
Definition events.h:174
unsigned int id
The event ID.
Definition events.h:178
void * data
A pointer to the data associated with the event.
Definition events.h:186
unsigned long long time
The time the event was created, in milliseconds.
Definition events.h:182
The payload for the CMDFX_EVENT_KEY event.
Definition events.h:73
bool state
The state of the key.
Definition events.h:89
char keyChar
The character representation of the key.
Definition events.h:83
int keyCode
The key code, or 0 if no key is pressed.
Definition events.h:77
The payload for the CMDFX_EVENT_MOUSE event.
Definition events.h:102
int x
The x position of the mouse.
Definition events.h:123
int prevX
The previous x position of the mouse.
Definition events.h:119
bool state
Whether the button was pressed or released.
Definition events.h:115
int y
The y position of the mouse.
Definition events.h:131
int prevY
The previous y position of the mouse.
Definition events.h:127
int button
The button that was pressed, or -1 if no button was pressed.
Definition events.h:111
The payload for the CMDFX_EVENT_RESIZE event.
Definition events.h:44
int newWidth
The new width of the terminal.
Definition events.h:56
int prevHeight
The previous height of the terminal.
Definition events.h:52
int prevWidth
The previous width of the terminal.
Definition events.h:48
int newHeight
The new height of the terminal.
Definition events.h:60