126#define BJ_BUTTON_LEFT BJ_BUTTON_1
128#define BJ_BUTTON_RIGHT BJ_BUTTON_3
130#define BJ_BUTTON_MIDDLE BJ_BUTTON_2
132#define BJ_BUTTON_UP BJ_BUTTON_4
134#define BJ_BUTTON_DOWN BJ_BUTTON_5
346#define BJ_KEY_APOSTROPHE BJ_KEY_OEM_7
347#define BJ_KEY_BACKSLASH BJ_KEY_OEM_5
348#define BJ_KEY_BACKSPACE BJ_KEY_BACK
349#define BJ_KEY_CAPSLOCK BJ_KEY_CAPITAL
350#define BJ_KEY_COMMA BJ_KEY_OEM_COMMA
351#define BJ_KEY_ENTER BJ_KEY_RETURN
352#define BJ_KEY_GRAVE_ACCENT BJ_KEY_OEM_3
353#define BJ_KEY_HANGUL BJ_KEY_KANA
354#define BJ_KEY_HANJA BJ_KEY_KANJI
355#define BJ_KEY_LEFT_ALT BJ_KEY_LMENU
356#define BJ_KEY_LEFT_BRACKET BJ_KEY_OEM_4
357#define BJ_KEY_LEFT_CONTROL BJ_KEY_LCONTROL
358#define BJ_KEY_LEFT_OS BJ_KEY_LWIN
359#define BJ_KEY_LEFT_SHIT BJ_KEY_LSHIFT
360#define BJ_KEY_MINUS BJ_KEY_OEM_MINUS
361#define BJ_KEY_PAGE_DOWN BJ_KEY_NEXT
362#define BJ_KEY_PAGE_UP BJ_KEY_PRIOR
363#define BJ_KEY_PERIOD BJ_KEY_OEM_PERIOD
364#define BJ_KEY_PLUS BJ_KEY_OEM_PLUS
365#define BJ_KEY_PRINT_SCREEN BJ_KEY_SNAPSHOT
366#define BJ_KEY_RIGHT_ALT BJ_KEY_RMENU
367#define BJ_KEY_RIGHT_BRACKET BJ_KEY_OEM_6
368#define BJ_KEY_RIGHT_CONTROL BJ_KEY_RCONTROL
369#define BJ_KEY_RIGHT_OS BJ_KEY_RWIN
370#define BJ_KEY_RIGHT_SHIFT BJ_KEY_RSHIFT
371#define BJ_KEY_SEMICOLON BJ_KEY_OEM_1
372#define BJ_KEY_SLASH BJ_KEY_OEM_2
General-purpose definitions for Banjo API.
uint32_t bj_bool
Boolean type used throughout the Banjo API.
struct bj_window bj_window
struct bj_cursor_event cursor
Cursor event data.
struct bj_key_event key
Key event data.
int scancode
Scancode (layout-independent)
struct bj_window * window
Target window.
union bj_event::@102271004006361263344115053024230242311221140216 as
int button
Button identifier (e.g., BJ_BUTTON_LEFT)
bj_bool enter
BJ_TRUE if entering window, BJ_FALSE if leaving.
enum bj_event_action action
Action (press/release/repeat)
enum bj_event_action action
Action (press/release)
enum bj_event_type type
Type of event.
enum bj_key key
Key identifier.
struct bj_button_event button
Button event data.
struct bj_enter_event enter
Enter/leave event data.
void(* bj_button_callback_fn)(struct bj_window *window, const struct bj_button_event *event, void *user_data)
Define the callback type for mouse button events.
const char * bj_key_name(int key)
Get the string name of a key.
void bj_dispatch_events(void)
Poll and dispatch all pending events.
bj_cursor_callback_fn bj_set_cursor_callback(bj_cursor_callback_fn callback, void *user_data)
Set the global callback for cursor events.
void bj_close_on_escape(struct bj_window *window, const struct bj_key_event *event, void *user_data)
Handle the ESC key to close a window.
void bj_dispatch_event(const struct bj_event *event)
Dispatch a single event to registered callbacks.
bj_bool bj_poll_events(struct bj_event *event)
Poll the next pending event from the system queue.
void bj_push_key_event(struct bj_window *window, enum bj_event_action action, enum bj_key key, int scancode)
Push a keyboard event into the event system.
void(* bj_enter_callback_fn)(struct bj_window *window, const struct bj_enter_event *event, void *user_data)
Define the callback type for enter events.
void bj_push_button_event(struct bj_window *window, int button, enum bj_event_action action, int x, int y)
Push a mouse button event.
bj_enter_callback_fn bj_set_enter_callback(bj_enter_callback_fn callback, void *user_data)
Set the global callback for mouse enter/leave events.
void(* bj_cursor_callback_fn)(struct bj_window *window, const struct bj_cursor_event *event, void *user_data)
Define the callback type for cursor movement events.
bj_key_callback_fn bj_set_key_callback(bj_key_callback_fn callback, void *user_data)
Set the global callback for keyboard key events.
void bj_push_enter_event(struct bj_window *window, bj_bool enter, int x, int y)
Push an enter or leave window event.
void bj_push_cursor_event(struct bj_window *window, int x, int y)
Push a cursor movement event.
void(* bj_key_callback_fn)(struct bj_window *window, const struct bj_key_event *event, void *user_data)
Define the callback type for keyboard key events.
bj_key
List of possible keys on a keyboard.
bj_event_type
Identify the type of a generic event.
void bj_push_event(const struct bj_event *e)
Push a custom event to the internal event queue.
bj_event_action
Define event action types for keys or mouse buttons.
bj_button_callback_fn bj_set_button_callback(bj_button_callback_fn callback, void *user_data)
Set the global callback for mouse button events.
@ BJ_KEY_XBUTTON2
X2 mouse button.
@ BJ_KEY_RMENU
Right Alt key.
@ BJ_KEY_DELETE
Delete key.
@ BJ_KEY_LSHIFT
Left Shift key.
@ BJ_KEY_MEDIA_PREV_TRACK
Previous Track key.
@ BJ_KEY_LBUTTON
Left mouse button.
@ BJ_KEY_MODECHANGE
IME mode change request.
@ BJ_KEY_DOWN
Down arrow key.
@ BJ_KEY_OEM_PERIOD
For any country/region, the .
@ BJ_KEY_RWIN
Right Windows logo key.
@ BJ_KEY_FINAL
IME final mode.
@ BJ_KEY_CONVERT
IME convert.
@ BJ_KEY_SCROLL
Scroll lock key.
@ BJ_KEY_OEM_1
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_OEM_7
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_VOLUME_UP
Volume Up key.
@ BJ_KEY_OEM_4
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_OEM_MINUS
For any country/region, the - key.
@ BJ_KEY_KANJI
IME Hanja mode.
@ BJ_KEY_SLEEP
Computer Sleep key.
@ BJ_KEY_MEDIA_PLAY_PAUSE
Play/Pause Media key.
@ BJ_KEY_RSHIFT
Right Shift key.
@ BJ_KEY_BROWSER_SEARCH
Browser Search key.
@ BJ_KEY_SEPARATOR
Separator key.
@ BJ_KEY_NUMPAD5
Numeric keypad 5 key.
@ BJ_KEY_PROCESSKEY
IME PROCESS key.
@ BJ_KEY_EXECUTE
Execute key.
@ BJ_KEY_LAUNCH_MAIL
Start Mail key.
@ BJ_KEY_BROWSER_HOME
Browser Start and Home key.
@ BJ_KEY_KANA
IME Kana mode.
@ BJ_KEY_OEM_2
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_NEXT
Page down key.
@ BJ_KEY_MBUTTON
Middle mouse button.
@ BJ_KEY_NUMPAD7
Numeric keypad 7 key.
@ BJ_KEY_NUMPAD1
Numeric keypad 1 key.
@ BJ_KEY_OEM_COMMA
For any country/region, the , key.
@ BJ_KEY_PRIOR
Page up key.
@ BJ_KEY_CONTROL
Ctrl key.
@ BJ_KEY_LWIN
Left Windows logo key.
@ BJ_KEY_LEFT
Left arrow key.
@ BJ_KEY_NUMPAD8
Numeric keypad 8 key.
@ BJ_KEY_RIGHT
Right arrow key.
@ BJ_KEY_BROWSER_REFRESH
Browser Refresh key.
@ BJ_KEY_MEDIA_NEXT_TRACK
Next Track key.
@ BJ_KEY_LAUNCH_APP1
Start Application 1 key.
@ BJ_KEY_NUMLOCK
Num lock key.
@ BJ_KEY_INSERT
Insert key.
@ BJ_KEY_DIVIDE
Divide key.
@ BJ_KEY_ACCEPT
IME accept.
@ BJ_KEY_DECIMAL
Decimal key.
@ BJ_KEY_RBUTTON
Right mouse button.
@ BJ_KEY_PACKET
Used to pass Unicode characters as if they were keystrokes.
@ BJ_KEY_SNAPSHOT
Print screen key.
@ BJ_KEY_OEM_3
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_NUMPAD6
Numeric keypad 6 key.
@ BJ_KEY_LAUNCH_MEDIA_SELECT
Select Media key.
@ BJ_KEY_EREOF
Erase EOF key.
@ BJ_KEY_VOLUME_MUTE
Volume Mute key.
@ BJ_KEY_OEM_CLEAR
Clear key.
@ BJ_KEY_NUMPAD3
Numeric keypad 3 key.
@ BJ_KEY_RCONTROL
Right Ctrl key.
@ BJ_KEY_NUMPAD9
Numeric keypad 9 key.
@ BJ_KEY_SUBTRACT
Subtract key.
@ BJ_KEY_APPS
Application key.
@ BJ_KEY_RETURN
Enter key.
@ BJ_KEY_BROWSER_STOP
Browser Stop key.
@ BJ_KEY_LCONTROL
Left Ctrl key.
@ BJ_KEY_BROWSER_BACK
Browser Back key.
@ BJ_KEY_BROWSER_FORWARD
Browser Forward key.
@ BJ_KEY_UNKNOWN
No Button.
@ BJ_KEY_OEM_8
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_CAPITAL
Caps lock key.
@ BJ_KEY_NONCONVERT
IME nonconvert.
@ BJ_KEY_OEM_5
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_NUMPAD4
Numeric keypad 4 key.
@ BJ_KEY_BROWSER_FAVORITES
Browser Favorites key.
@ BJ_KEY_MEDIA_STOP
Stop Media key.
@ BJ_KEY_BACK
Backspace key.
@ BJ_KEY_OEM_PLUS
For any country/region, the + key.
@ BJ_KEY_JUNJA
IME Junja mode.
@ BJ_KEY_NUMPAD0
Numeric keypad 0 key.
@ BJ_KEY_OEM_6
Used for miscellaneous characters; it can vary by keyboard.
@ BJ_KEY_VOLUME_DOWN
Volume Down key.
@ BJ_KEY_LAUNCH_APP2
Start Application 2 key.
@ BJ_KEY_XBUTTON1
X1 mouse button.
@ BJ_KEY_LMENU
Left Alt key.
@ BJ_KEY_SELECT
Select key.
@ BJ_KEY_CANCEL
Control-break processing.
@ BJ_KEY_OEM_102
The <> keys on the US standard keyboard, or the \| key on the non-US 102-key keyboard.
@ BJ_KEY_NUMPAD2
Numeric keypad 2 key.
@ BJ_KEY_MULTIPLY
Multiply key.
@ BJ_KEY_SPACE
Spacebar key.
@ BJ_EVENT_BUTTON
Mouse button.
@ BJ_EVENT_KEY
Keyboard key.
@ BJ_EVENT_ENTER
Mouse enter/leave.
@ BJ_EVENT_CURSOR
Mouse move.
@ BJ_PRESS
The key or button was pressed.
@ BJ_REPEAT
The key is being held (repeats)
@ BJ_RELEASE
The key or button was released.
Represent a mouse cursor movement event.
Represent a mouse enter or leave event.
Represent a generic window-related event.
Represent a keyboard key event.