31#define BJ_BUTTON_LEFT BJ_BUTTON_1
33#define BJ_BUTTON_RIGHT BJ_BUTTON_3
35#define BJ_BUTTON_MIDDLE BJ_BUTTON_2
37#define BJ_BUTTON_UP BJ_BUTTON_4
39#define BJ_BUTTON_DOWN BJ_BUTTON_5
248#define BJ_KEY_APOSTROPHE BJ_KEY_OEM_7
249#define BJ_KEY_BACKSLASH BJ_KEY_OEM_5
250#define BJ_KEY_BACKSPACE BJ_KEY_BACK
251#define BJ_KEY_CAPSLOCK BJ_KEY_CAPITAL
252#define BJ_KEY_COMMA BJ_KEY_OEM_COMMA
253#define BJ_KEY_ENTER BJ_KEY_RETURN
254#define BJ_KEY_GRAVE_ACCENT BJ_KEY_OEM_3
255#define BJ_KEY_HANGUL BJ_KEY_KANA
256#define BJ_KEY_HANJA BJ_KEY_KANJI
257#define BJ_KEY_LEFT_ALT BJ_KEY_LMENU
258#define BJ_KEY_LEFT_BRACKET BJ_KEY_OEM_4
259#define BJ_KEY_LEFT_CONTROL BJ_KEY_LCONTROL
260#define BJ_KEY_LEFT_OS BJ_KEY_LWIN
261#define BJ_KEY_LEFT_SHIT BJ_KEY_LSHIFT
262#define BJ_KEY_MINUS BJ_KEY_OEM_MINUS
263#define BJ_KEY_PAGE_DOWN BJ_KEY_NEXT
264#define BJ_KEY_PAGE_UP BJ_KEY_PRIOR
265#define BJ_KEY_PERIOD BJ_KEY_OEM_PERIOD
266#define BJ_KEY_PLUS BJ_KEY_OEM_PLUS
267#define BJ_KEY_PRINT_SCREEN BJ_KEY_SNAPSHOT
268#define BJ_KEY_RIGHT_ALT BJ_KEY_RMENU
269#define BJ_KEY_RIGHT_BRACKET BJ_KEY_OEM_6
270#define BJ_KEY_RIGHT_CONTROL BJ_KEY_RCONTROL
271#define BJ_KEY_RIGHT_OS BJ_KEY_RWIN
272#define BJ_KEY_RIGHT_SHIFT BJ_KEY_RSHIFT
273#define BJ_KEY_SEMICOLON BJ_KEY_OEM_1
274#define BJ_KEY_SLASH BJ_KEY_OEM_2
535BANJO_EXPORT
void bj_dispatch_event(
const bj_event* p_event);
uint32_t bj_bool
Boolean type used throughout the BJ codebase.
Definition api.h:143
int y
Cursor y position.
Definition event.h:312
bj_cursor_event cursor
Cursor event data.
int scancode
Scancode (layout-independent)
Definition event.h:330
int y
Cursor y position.
Definition event.h:320
bj_key_event key
Key event data.
bj_key key
Key identifier.
Definition event.h:329
bj_window * window
Target window.
Definition event.h:350
int x
Cursor x position.
Definition event.h:311
int y
Cursor y position.
Definition event.h:303
bj_event_action action
Action (press/release/repeat)
Definition event.h:331
bj_event_action action
Action (press/release)
Definition event.h:321
int x
Cursor x position.
Definition event.h:319
int button
Button identifier (e.g., BJ_BUTTON_LEFT)
Definition event.h:322
bj_button_event button
Button event data.
bj_event_type type
Type of event.
Definition event.h:351
bj_enter_event enter
Enter/leave event data.
int x
Cursor x position.
Definition event.h:302
bj_bool enter
BJ_TRUE if entering window, BJ_FALSE if leaving.
Definition event.h:304
bj_key_callback_fn_t bj_set_key_callback(bj_key_callback_fn_t p_callback, void *p_user_data)
Set the global callback for keyboard key events.
bj_event_action_t
Define event action types for keys or mouse buttons.
Definition event.h:292
void bj_dispatch_events(void)
Poll and dispatch all pending events.
void(* bj_key_callback_fn_t)(bj_window *p_window, const bj_key_event *, void *)
Define the callback type for keyboard key events.
Definition event.h:390
void bj_push_event(const bj_event *e)
Push a custom event to the internal event queue.
bj_cursor_callback_fn_t bj_set_cursor_callback(bj_cursor_callback_fn_t p_callback, void *p_user_data)
Set the global callback for cursor events.
void bj_close_on_escape(bj_window *, const bj_key_event *, void *p_user_data)
Handle the ESC key to close a window.
void(* bj_enter_callback_fn_t)(bj_window *, const bj_enter_event *, void *)
Define the callback type for enter events.
Definition event.h:366
void(* bj_button_callback_fn_t)(bj_window *p_window, const bj_button_event *, void *)
Define the callback type for mouse button events.
Definition event.h:382
struct bj_key_event_t bj_key_event
Represent a keyboard key event.
struct bj_enter_event_t bj_enter_event
Represent a mouse enter or leave event.
enum bj_event_action_t bj_event_action
Define event action types for keys or mouse buttons.
void(* bj_cursor_callback_fn_t)(bj_window *p_window, const bj_cursor_event *, void *)
Define the callback type for cursor movement events.
Definition event.h:374
enum bj_event_type_t bj_event_type
Identify the type of a generic event.
void bj_push_button_event(bj_window *p_window, int button, bj_event_action action, int x, int y)
Push a mouse button event.
void bj_push_enter_event(bj_window *p_window, bj_bool enter, int x, int y)
Push an enter or leave window event.
bj_event_type_t
Identify the type of a generic event.
Definition event.h:337
enum bj_key_t bj_key
List of possible keys on a keyboard.
struct bj_cursor_event_t bj_cursor_event
Represent a mouse cursor movement event.
void bj_push_key_event(bj_window *p_window, bj_event_action action, bj_key key, int scancode)
Push a keyboard event into the event system.
const char * bj_get_key_name(int key)
Get the string name of a key.
bj_key_t
List of possible keys on a keyboard.
Definition event.h:55
bj_enter_callback_fn_t bj_set_enter_callback(bj_enter_callback_fn_t p_callback, void *p_user_data)
Set the global callback for mouse enter/leave events.
bj_button_callback_fn_t bj_set_button_callback(bj_button_callback_fn_t p_callback, void *p_user_data)
Set the global callback for mouse button events.
void bj_push_cursor_event(bj_window *p_window, int x, int y)
Push a cursor movement event.
struct bj_event_t bj_event
Represent a generic window-related event.
struct bj_button_event_t bj_button_event
Represent a mouse button event.
@ BJ_PRESS
The key or button was pressed.
Definition event.h:294
@ BJ_REPEAT
The key is being held (repeats)
Definition event.h:295
@ BJ_RELEASE
The key or button was released.
Definition event.h:293
@ BJ_EVENT_BUTTON
Mouse button.
Definition event.h:341
@ BJ_EVENT_KEY
Keyboard key.
Definition event.h:340
@ BJ_EVENT_ENTER
Mouse enter/leave.
Definition event.h:338
@ BJ_EVENT_CURSOR
Mouse move.
Definition event.h:339
@ BJ_KEY_F10
F10 key.
Definition event.h:169
@ BJ_KEY_XBUTTON2
X2 mouse button.
Definition event.h:62
@ BJ_KEY_U
U key.
Definition event.h:133
@ BJ_KEY_RMENU
Right Alt key.
Definition event.h:194
@ BJ_KEY_4
4 key
Definition event.h:106
@ BJ_KEY_DELETE
Delete key.
Definition event.h:100
@ BJ_KEY_LSHIFT
Left Shift key.
Definition event.h:189
@ BJ_KEY_MEDIA_PREV_TRACK
Previous Track key.
Definition event.h:206
@ BJ_KEY_F24
F24 key.
Definition event.h:183
@ BJ_KEY_LBUTTON
Left mouse button.
Definition event.h:57
@ BJ_KEY_M
M key.
Definition event.h:125
@ BJ_KEY_L
L key.
Definition event.h:124
@ BJ_KEY_MODECHANGE
IME mode change request.
Definition event.h:85
@ BJ_KEY_O
O key.
Definition event.h:127
@ BJ_KEY_S
S key.
Definition event.h:131
@ BJ_KEY_DOWN
Down arrow key.
Definition event.h:94
@ BJ_KEY_G
G key.
Definition event.h:119
@ BJ_KEY_OEM_PERIOD
For any country/region, the .
Definition event.h:218
@ BJ_KEY_Y
Y key.
Definition event.h:137
@ BJ_KEY_F17
F17 key.
Definition event.h:176
@ BJ_KEY_F18
F18 key.
Definition event.h:177
@ BJ_KEY_RWIN
Right Windows logo key.
Definition event.h:140
@ BJ_KEY_FINAL
IME final mode.
Definition event.h:78
@ BJ_KEY_CONVERT
IME convert.
Definition event.h:82
@ BJ_KEY_SCROLL
Scroll lock key.
Definition event.h:186
@ BJ_KEY_OEM_1
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:214
@ BJ_KEY_T
T key.
Definition event.h:132
@ BJ_KEY_OEM_7
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:225
@ BJ_KEY_8
8 key
Definition event.h:110
@ BJ_KEY_VOLUME_UP
Volume Up key.
Definition event.h:204
@ BJ_KEY_ADD
Add key.
Definition event.h:155
@ BJ_KEY_OEM_4
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:222
@ BJ_KEY_ATTN
Attn key.
Definition event.h:236
@ BJ_KEY_OEM_MINUS
For any country/region, the - key.
Definition event.h:217
@ BJ_KEY_W
W key.
Definition event.h:135
@ BJ_KEY_P
P key.
Definition event.h:128
@ BJ_KEY_KANJI
IME Hanja mode.
Definition event.h:79
@ BJ_KEY_ESCAPE
Esc key.
Definition event.h:81
@ BJ_KEY_E
E key.
Definition event.h:117
@ BJ_KEY_SLEEP
Computer Sleep key.
Definition event.h:143
@ BJ_KEY_MEDIA_PLAY_PAUSE
Play/Pause Media key.
Definition event.h:208
@ BJ_KEY_F22
F22 key.
Definition event.h:181
@ BJ_KEY_RSHIFT
Right Shift key.
Definition event.h:190
@ BJ_KEY_BROWSER_SEARCH
Browser Search key.
Definition event.h:199
@ BJ_KEY_SEPARATOR
Separator key.
Definition event.h:156
@ BJ_KEY_HELP
Help key.
Definition event.h:101
@ BJ_KEY_F19
F19 key.
Definition event.h:178
@ BJ_KEY_9
9 key
Definition event.h:111
@ BJ_KEY_NUMPAD5
Numeric keypad 5 key.
Definition event.h:149
@ BJ_KEY_H
H key.
Definition event.h:120
@ BJ_KEY_5
5 key
Definition event.h:107
@ BJ_KEY_PROCESSKEY
IME PROCESS key.
Definition event.h:231
@ BJ_KEY_V
V key.
Definition event.h:134
@ BJ_KEY_EXECUTE
Execute key.
Definition event.h:97
@ BJ_KEY_LAUNCH_MAIL
Start Mail key.
Definition event.h:209
@ BJ_KEY_F1
F1 key.
Definition event.h:160
@ BJ_KEY_BROWSER_HOME
Browser Start and Home key.
Definition event.h:201
@ BJ_KEY_KANA
IME Kana mode.
Definition event.h:75
@ BJ_KEY_OEM_2
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:219
@ BJ_KEY_F16
F16 key.
Definition event.h:175
@ BJ_KEY_CRSEL
CrSel key.
Definition event.h:237
@ BJ_KEY_NEXT
Page down key.
Definition event.h:88
@ BJ_KEY_MBUTTON
Middle mouse button.
Definition event.h:60
@ BJ_KEY_J
J key.
Definition event.h:122
@ BJ_KEY_2
2 key
Definition event.h:104
@ BJ_KEY_IME_ON
IME On.
Definition event.h:76
@ BJ_KEY_NUMPAD7
Numeric keypad 7 key.
Definition event.h:151
@ BJ_KEY_NUMPAD1
Numeric keypad 1 key.
Definition event.h:145
@ BJ_KEY_OEM_COMMA
For any country/region, the , key.
Definition event.h:216
@ BJ_KEY_PRIOR
Page up key.
Definition event.h:87
@ BJ_KEY_F6
F6 key.
Definition event.h:165
@ BJ_KEY_CONTROL
Ctrl key.
Definition event.h:71
@ BJ_KEY_F23
F23 key.
Definition event.h:182
@ BJ_KEY_LWIN
Left Windows logo key.
Definition event.h:139
@ BJ_KEY_LEFT
Left arrow key.
Definition event.h:91
@ BJ_KEY_C
C key.
Definition event.h:115
@ BJ_KEY_IME_OFF
IME Off.
Definition event.h:80
@ BJ_KEY_F
F key.
Definition event.h:118
@ BJ_KEY_D
D key.
Definition event.h:116
@ BJ_KEY_NUMPAD8
Numeric keypad 8 key.
Definition event.h:152
@ BJ_KEY_RIGHT
Right arrow key.
Definition event.h:93
@ BJ_KEY_Q
Q key.
Definition event.h:129
@ BJ_KEY_BROWSER_REFRESH
Browser Refresh key.
Definition event.h:197
@ BJ_KEY_PRINT
Print key.
Definition event.h:96
@ BJ_KEY_N
N key.
Definition event.h:126
@ BJ_KEY_MEDIA_NEXT_TRACK
Next Track key.
Definition event.h:205
@ BJ_KEY_F15
F15 key.
Definition event.h:174
@ BJ_KEY_LAUNCH_APP1
Start Application 1 key.
Definition event.h:211
@ BJ_KEY_NUMLOCK
Num lock key.
Definition event.h:185
@ BJ_KEY_INSERT
Insert key.
Definition event.h:99
@ BJ_KEY_PLAY
Play key.
Definition event.h:240
@ BJ_KEY_DIVIDE
Divide key.
Definition event.h:159
@ BJ_KEY_EXSEL
ExSel key.
Definition event.h:238
@ BJ_KEY_F14
F14 key.
Definition event.h:173
@ BJ_KEY_ZOOM
Zoom key.
Definition event.h:241
@ BJ_KEY_ACCEPT
IME accept.
Definition event.h:84
@ BJ_KEY_DECIMAL
Decimal key.
Definition event.h:158
@ BJ_KEY_RBUTTON
Right mouse button.
Definition event.h:58
@ BJ_KEY_PACKET
Used to pass Unicode characters as if they were keystrokes.
Definition event.h:233
@ BJ_KEY_SNAPSHOT
Print screen key.
Definition event.h:98
@ BJ_KEY_F13
F13 key.
Definition event.h:172
@ BJ_KEY_K
K key.
Definition event.h:123
@ BJ_KEY_F4
F4 key.
Definition event.h:163
@ BJ_KEY_OEM_3
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:220
@ BJ_KEY_NUMPAD6
Numeric keypad 6 key.
Definition event.h:150
@ BJ_KEY_LAUNCH_MEDIA_SELECT
Select Media key.
Definition event.h:210
@ BJ_KEY_TAB
Tab key.
Definition event.h:65
@ BJ_KEY_EREOF
Erase EOF key.
Definition event.h:239
@ BJ_KEY_1
1 key
Definition event.h:103
@ BJ_KEY_F8
F8 key.
Definition event.h:167
@ BJ_KEY_VOLUME_MUTE
Volume Mute key.
Definition event.h:202
@ BJ_KEY_OEM_CLEAR
Clear key.
Definition event.h:244
@ BJ_KEY_Z
Z key.
Definition event.h:138
@ BJ_KEY_B
B key.
Definition event.h:114
@ BJ_KEY_F9
F9 key.
Definition event.h:168
@ BJ_KEY_R
R key.
Definition event.h:130
@ BJ_KEY_X
X key.
Definition event.h:136
@ BJ_KEY_PA1
PA1 key.
Definition event.h:243
@ BJ_KEY_NUMPAD3
Numeric keypad 3 key.
Definition event.h:147
@ BJ_KEY_6
6 key
Definition event.h:108
@ BJ_KEY_RCONTROL
Right Ctrl key.
Definition event.h:192
@ BJ_KEY_NUMPAD9
Numeric keypad 9 key.
Definition event.h:153
@ BJ_KEY_SUBTRACT
Subtract key.
Definition event.h:157
@ BJ_KEY_APPS
Application key.
Definition event.h:141
@ BJ_KEY_F7
F7 key.
Definition event.h:166
@ BJ_KEY_RETURN
Enter key.
Definition event.h:68
@ BJ_KEY_END
End key.
Definition event.h:89
@ BJ_KEY_BROWSER_STOP
Browser Stop key.
Definition event.h:198
@ BJ_KEY_LCONTROL
Left Ctrl key.
Definition event.h:191
@ BJ_KEY_3
3 key
Definition event.h:105
@ BJ_KEY_BROWSER_BACK
Browser Back key.
Definition event.h:195
@ BJ_KEY_CLEAR
Clear key.
Definition event.h:67
@ BJ_KEY_BROWSER_FORWARD
Browser Forward key.
Definition event.h:196
@ BJ_KEY_UNKNOWN
No Button.
Definition event.h:56
@ BJ_KEY_OEM_8
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:226
@ BJ_KEY_CAPITAL
Caps lock key.
Definition event.h:74
@ BJ_KEY_NONCONVERT
IME nonconvert.
Definition event.h:83
@ BJ_KEY_OEM_5
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:223
@ BJ_KEY_I
I key.
Definition event.h:121
@ BJ_KEY_F21
F21 key.
Definition event.h:180
@ BJ_KEY_F11
F11 key.
Definition event.h:170
@ BJ_KEY_HOME
Home key.
Definition event.h:90
@ BJ_KEY_PAUSE
Pause key.
Definition event.h:73
@ BJ_KEY_NUMPAD4
Numeric keypad 4 key.
Definition event.h:148
@ BJ_KEY_F20
F20 key.
Definition event.h:179
@ BJ_KEY_MENU
Alt key.
Definition event.h:72
@ BJ_KEY_BROWSER_FAVORITES
Browser Favorites key.
Definition event.h:200
@ BJ_KEY_MEDIA_STOP
Stop Media key.
Definition event.h:207
@ BJ_KEY_A
A key.
Definition event.h:113
@ BJ_KEY_F5
F5 key.
Definition event.h:164
@ BJ_KEY_BACK
Backspace key.
Definition event.h:64
@ BJ_KEY_OEM_PLUS
For any country/region, the + key.
Definition event.h:215
@ BJ_KEY_JUNJA
IME Junja mode.
Definition event.h:77
@ BJ_KEY_NUMPAD0
Numeric keypad 0 key.
Definition event.h:144
@ BJ_KEY_OEM_6
Used for miscellaneous characters; it can vary by keyboard.
Definition event.h:224
@ BJ_KEY_VOLUME_DOWN
Volume Down key.
Definition event.h:203
@ BJ_KEY_UP
Up arrow key.
Definition event.h:92
@ BJ_KEY_LAUNCH_APP2
Start Application 2 key.
Definition event.h:212
@ BJ_KEY_0
0 key
Definition event.h:102
@ BJ_KEY_F3
F3 key.
Definition event.h:162
@ BJ_KEY_SHIFT
Shift key.
Definition event.h:70
@ BJ_KEY_XBUTTON1
X1 mouse button.
Definition event.h:61
@ BJ_KEY_LMENU
Left Alt key.
Definition event.h:193
@ BJ_KEY_SELECT
Select key.
Definition event.h:95
@ BJ_KEY_CANCEL
Control-break processing.
Definition event.h:59
@ BJ_KEY_OEM_102
The <> keys on the US standard keyboard, or the \| key on the non-US 102-key keyboard.
Definition event.h:229
@ BJ_KEY_NUMPAD2
Numeric keypad 2 key.
Definition event.h:146
@ BJ_KEY_7
7 key
Definition event.h:109
@ BJ_KEY_MULTIPLY
Multiply key.
Definition event.h:154
@ BJ_KEY_SPACE
Spacebar key.
Definition event.h:86
@ BJ_KEY_F12
F12 key.
Definition event.h:171
@ BJ_KEY_NONAME
Reserved.
Definition event.h:242
@ BJ_KEY_F2
F2 key.
Definition event.h:161
Represent a mouse cursor movement event.
Definition event.h:310
Represent a mouse enter or leave event.
Definition event.h:301
Represent a generic window-related event.
Definition event.h:349
Represent a keyboard key event.
Definition event.h:328
struct bj_window_t bj_window
Opaque typedef for the window type.
Definition window.h:17
Header file for bj_window type.