cmdfx 0.3.2
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#define CMDFX_EVENT_BUTTON_CLICK 3
135
156
157#pragma endregion
158#pragma region Event Configuration
159
160struct CmdFX_Event;
161
168typedef int (*CmdFX_EventCallback)(struct CmdFX_Event* event);
169
176typedef struct CmdFX_Event {
180 unsigned int id;
184 unsigned long long time;
188 void* data;
190
201int addCmdFXEventListener(unsigned int id, CmdFX_EventCallback callback);
202
210 unsigned int eventId, unsigned int listenerId
211);
212
220int removeCmdFXEventListener(unsigned int eventId, unsigned int listenerId);
221
228
237
244
249
250#pragma endregion
251
252#ifdef __cplusplus
253}
254#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:168
void shutdownCmdFXEvents()
Removes all event listeners.
Called when a button is clicked.
Definition events.h:141
void * button
The button that was clicked.
Definition events.h:154
CmdFX_MouseEvent * mouseEvent
The mouse event that triggered the button event.
Definition events.h:148
The main event structure for CmdFX.
Definition events.h:176
unsigned int id
The event ID.
Definition events.h:180
void * data
A pointer to the data associated with the event.
Definition events.h:188
unsigned long long time
The time the event was created, in milliseconds.
Definition events.h:184
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