Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
event.h File Reference
#include <banjo/window.h>
Include dependency graph for event.h:

Go to the source code of this file.

Data Structures

struct  bj_enter_event_t
struct  bj_cursor_event_t
struct  bj_button_event_t
struct  bj_key_event_t
struct  bj_event_t
union  bj_event_t.__unnamed0__

Macros

#define BJ_BUTTON_1   1
#define BJ_BUTTON_2   2
#define BJ_BUTTON_3   3
#define BJ_BUTTON_4   4
#define BJ_BUTTON_5   5
#define BJ_BUTTON_LEFT   BJ_BUTTON_1
#define BJ_BUTTON_RIGHT   BJ_BUTTON_3
#define BJ_BUTTON_MIDDLE   BJ_BUTTON_2
#define BJ_BUTTON_UP   BJ_BUTTON_4
#define BJ_BUTTON_DOWN   BJ_BUTTON_5
#define BJ_KEY_APOSTROPHE   BJ_KEY_OEM_7
#define BJ_KEY_BACKSLASH   BJ_KEY_OEM_5
#define BJ_KEY_BACKSPACE   BJ_KEY_BACK
#define BJ_KEY_CAPSLOCK   BJ_KEY_CAPITAL
#define BJ_KEY_COMMA   BJ_KEY_OEM_COMMA
#define BJ_KEY_ENTER   BJ_KEY_RETURN
#define BJ_KEY_GRAVE_ACCENT   BJ_KEY_OEM_3
#define BJ_KEY_HANGUL   BJ_KEY_KANA
#define BJ_KEY_HANJA   BJ_KEY_KANJI
#define BJ_KEY_LEFT_ALT   BJ_KEY_LMENU
#define BJ_KEY_LEFT_BRACKET   BJ_KEY_OEM_4
#define BJ_KEY_LEFT_CONTROL   BJ_KEY_LCONTROL
#define BJ_KEY_LEFT_OS   BJ_KEY_LWIN
#define BJ_KEY_LEFT_SHIT   BJ_KEY_LSHIFT
#define BJ_KEY_MINUS   BJ_KEY_OEM_MINUS
#define BJ_KEY_PAGE_DOWN   BJ_KEY_NEXT
#define BJ_KEY_PAGE_UP   BJ_KEY_PRIOR
#define BJ_KEY_PERIOD   BJ_KEY_OEM_PERIOD
#define BJ_KEY_PLUS   BJ_KEY_OEM_PLUS
#define BJ_KEY_PRINT_SCREEN   BJ_KEY_SNAPSHOT
#define BJ_KEY_RIGHT_ALT   BJ_KEY_RMENU
#define BJ_KEY_RIGHT_BRACKET   BJ_KEY_OEM_6
#define BJ_KEY_RIGHT_CONTROL   BJ_KEY_RCONTROL
#define BJ_KEY_RIGHT_OS   BJ_KEY_RWIN
#define BJ_KEY_RIGHT_SHIFT   BJ_KEY_RSHIFT
#define BJ_KEY_SEMICOLON   BJ_KEY_OEM_1
#define BJ_KEY_SLASH   BJ_KEY_OEM_2

Typedefs

typedef enum bj_key_t bj_key
typedef enum bj_event_action_t bj_event_action
typedef struct bj_enter_event_t bj_enter_event
typedef struct bj_cursor_event_t bj_cursor_event
typedef struct bj_button_event_t bj_button_event
typedef struct bj_key_event_t bj_key_event
typedef enum bj_event_type_t bj_event_type
typedef struct bj_event_t bj_event
typedef void(* bj_enter_callback_fn_t) (bj_window *, const bj_enter_event *, void *)
typedef void(* bj_cursor_callback_fn_t) (bj_window *p_window, const bj_cursor_event *, void *)
typedef void(* bj_button_callback_fn_t) (bj_window *p_window, const bj_button_event *, void *)
typedef void(* bj_key_callback_fn_t) (bj_window *p_window, const bj_key_event *, void *)

Enumerations

enum  bj_key_t {
  BJ_KEY_UNKNOWN = 0x00 , BJ_KEY_LBUTTON = 0x01 , BJ_KEY_RBUTTON = 0x02 , BJ_KEY_CANCEL = 0x03 ,
  BJ_KEY_MBUTTON = 0x04 , BJ_KEY_XBUTTON1 = 0x05 , BJ_KEY_XBUTTON2 = 0x06 , BJ_KEY_BACK = 0x08 ,
  BJ_KEY_TAB = 0x09 , BJ_KEY_CLEAR = 0x0C , BJ_KEY_RETURN = 0x0D , BJ_KEY_SHIFT = 0x10 ,
  BJ_KEY_CONTROL = 0x11 , BJ_KEY_MENU = 0x12 , BJ_KEY_PAUSE = 0x13 , BJ_KEY_CAPITAL = 0x14 ,
  BJ_KEY_KANA = 0x15 , BJ_KEY_IME_ON = 0x16 , BJ_KEY_JUNJA = 0x17 , BJ_KEY_FINAL = 0x18 ,
  BJ_KEY_KANJI = 0x19 , BJ_KEY_IME_OFF = 0x1A , BJ_KEY_ESCAPE = 0x1B , BJ_KEY_CONVERT = 0x1C ,
  BJ_KEY_NONCONVERT = 0x1D , BJ_KEY_ACCEPT = 0x1E , BJ_KEY_MODECHANGE = 0x1F , BJ_KEY_SPACE = 0x20 ,
  BJ_KEY_PRIOR = 0x21 , BJ_KEY_NEXT = 0x22 , BJ_KEY_END = 0x23 , BJ_KEY_HOME = 0x24 ,
  BJ_KEY_LEFT = 0x25 , BJ_KEY_UP = 0x26 , BJ_KEY_RIGHT = 0x27 , BJ_KEY_DOWN = 0x28 ,
  BJ_KEY_SELECT = 0x29 , BJ_KEY_PRINT = 0x2A , BJ_KEY_EXECUTE = 0x2B , BJ_KEY_SNAPSHOT = 0x2C ,
  BJ_KEY_INSERT = 0x2D , BJ_KEY_DELETE = 0x2E , BJ_KEY_HELP = 0x2F , BJ_KEY_0 = 0x30 ,
  BJ_KEY_1 = 0x31 , BJ_KEY_2 = 0x32 , BJ_KEY_3 = 0x33 , BJ_KEY_4 = 0x34 ,
  BJ_KEY_5 = 0x35 , BJ_KEY_6 = 0x36 , BJ_KEY_7 = 0x37 , BJ_KEY_8 = 0x38 ,
  BJ_KEY_9 = 0x39 , BJ_KEY_A = 0x41 , BJ_KEY_B = 0x42 , BJ_KEY_C = 0x43 ,
  BJ_KEY_D = 0x44 , BJ_KEY_E = 0x45 , BJ_KEY_F = 0x46 , BJ_KEY_G = 0x47 ,
  BJ_KEY_H = 0x48 , BJ_KEY_I = 0x49 , BJ_KEY_J = 0x4A , BJ_KEY_K = 0x4B ,
  BJ_KEY_L = 0x4C , BJ_KEY_M = 0x4D , BJ_KEY_N = 0x4E , BJ_KEY_O = 0x4F ,
  BJ_KEY_P = 0x50 , BJ_KEY_Q = 0x51 , BJ_KEY_R = 0x52 , BJ_KEY_S = 0x53 ,
  BJ_KEY_T = 0x54 , BJ_KEY_U = 0x55 , BJ_KEY_V = 0x56 , BJ_KEY_W = 0x57 ,
  BJ_KEY_X = 0x58 , BJ_KEY_Y = 0x59 , BJ_KEY_Z = 0x5A , BJ_KEY_LWIN = 0x5B ,
  BJ_KEY_RWIN = 0x5C , BJ_KEY_APPS = 0x5D , BJ_KEY_SLEEP = 0x5F , BJ_KEY_NUMPAD0 = 0x60 ,
  BJ_KEY_NUMPAD1 = 0x61 , BJ_KEY_NUMPAD2 = 0x62 , BJ_KEY_NUMPAD3 = 0x63 , BJ_KEY_NUMPAD4 = 0x64 ,
  BJ_KEY_NUMPAD5 = 0x65 , BJ_KEY_NUMPAD6 = 0x66 , BJ_KEY_NUMPAD7 = 0x67 , BJ_KEY_NUMPAD8 = 0x68 ,
  BJ_KEY_NUMPAD9 = 0x69 , BJ_KEY_MULTIPLY = 0x6A , BJ_KEY_ADD = 0x6B , BJ_KEY_SEPARATOR = 0x6C ,
  BJ_KEY_SUBTRACT = 0x6D , BJ_KEY_DECIMAL = 0x6E , BJ_KEY_DIVIDE = 0x6F , BJ_KEY_F1 = 0x70 ,
  BJ_KEY_F2 = 0x71 , BJ_KEY_F3 = 0x72 , BJ_KEY_F4 = 0x73 , BJ_KEY_F5 = 0x74 ,
  BJ_KEY_F6 = 0x75 , BJ_KEY_F7 = 0x76 , BJ_KEY_F8 = 0x77 , BJ_KEY_F9 = 0x78 ,
  BJ_KEY_F10 = 0x79 , BJ_KEY_F11 = 0x7A , BJ_KEY_F12 = 0x7B , BJ_KEY_F13 = 0x7C ,
  BJ_KEY_F14 = 0x7D , BJ_KEY_F15 = 0x7E , BJ_KEY_F16 = 0x7F , BJ_KEY_F17 = 0x80 ,
  BJ_KEY_F18 = 0x81 , BJ_KEY_F19 = 0x82 , BJ_KEY_F20 = 0x83 , BJ_KEY_F21 = 0x84 ,
  BJ_KEY_F22 = 0x85 , BJ_KEY_F23 = 0x86 , BJ_KEY_F24 = 0x87 , BJ_KEY_NUMLOCK = 0x90 ,
  BJ_KEY_SCROLL = 0x91 , BJ_KEY_LSHIFT = 0xA0 , BJ_KEY_RSHIFT = 0xA1 , BJ_KEY_LCONTROL = 0xA2 ,
  BJ_KEY_RCONTROL = 0xA3 , BJ_KEY_LMENU = 0xA4 , BJ_KEY_RMENU = 0xA5 , BJ_KEY_BROWSER_BACK = 0xA6 ,
  BJ_KEY_BROWSER_FORWARD = 0xA7 , BJ_KEY_BROWSER_REFRESH = 0xA8 , BJ_KEY_BROWSER_STOP = 0xA9 , BJ_KEY_BROWSER_SEARCH = 0xAA ,
  BJ_KEY_BROWSER_FAVORITES = 0xAB , BJ_KEY_BROWSER_HOME = 0xAC , BJ_KEY_VOLUME_MUTE = 0xAD , BJ_KEY_VOLUME_DOWN = 0xAE ,
  BJ_KEY_VOLUME_UP = 0xAF , BJ_KEY_MEDIA_NEXT_TRACK = 0xB0 , BJ_KEY_MEDIA_PREV_TRACK = 0xB1 , BJ_KEY_MEDIA_STOP = 0xB2 ,
  BJ_KEY_MEDIA_PLAY_PAUSE = 0xB3 , BJ_KEY_LAUNCH_MAIL = 0xB4 , BJ_KEY_LAUNCH_MEDIA_SELECT = 0xB5 , BJ_KEY_LAUNCH_APP1 = 0xB6 ,
  BJ_KEY_LAUNCH_APP2 = 0xB7 , BJ_KEY_OEM_1 = 0xBA , BJ_KEY_OEM_PLUS = 0xBB , BJ_KEY_OEM_COMMA = 0xBC ,
  BJ_KEY_OEM_MINUS = 0xBD , BJ_KEY_OEM_PERIOD = 0xBE , BJ_KEY_OEM_2 = 0xBF , BJ_KEY_OEM_3 = 0xC0 ,
  BJ_KEY_OEM_4 = 0xDB , BJ_KEY_OEM_5 = 0xDC , BJ_KEY_OEM_6 = 0xDD , BJ_KEY_OEM_7 = 0xDE ,
  BJ_KEY_OEM_8 = 0xDF , BJ_KEY_OEM_102 = 0xE2 , BJ_KEY_PROCESSKEY = 0xE5 , BJ_KEY_PACKET = 0xE7 ,
  BJ_KEY_ATTN = 0xF6 , BJ_KEY_CRSEL = 0xF7 , BJ_KEY_EXSEL = 0xF8 , BJ_KEY_EREOF = 0xF9 ,
  BJ_KEY_PLAY = 0xFA , BJ_KEY_ZOOM = 0xFB , BJ_KEY_NONAME = 0xFC , BJ_KEY_PA1 = 0xFD ,
  BJ_KEY_OEM_CLEAR = 0xFE
}
enum  bj_event_action_t { BJ_RELEASE , BJ_PRESS , BJ_REPEAT }
enum  bj_event_type_t { BJ_EVENT_ENTER , BJ_EVENT_CURSOR , BJ_EVENT_KEY , BJ_EVENT_BUTTON }

Functions

const char * bj_key_name (int key)
bj_cursor_callback_fn_t bj_set_cursor_callback (bj_cursor_callback_fn_t p_callback, void *p_user_data)
bj_button_callback_fn_t bj_set_button_callback (bj_button_callback_fn_t p_callback, void *p_user_data)
bj_key_callback_fn_t bj_set_key_callback (bj_key_callback_fn_t p_callback, void *p_user_data)
bj_enter_callback_fn_t bj_set_enter_callback (bj_enter_callback_fn_t p_callback, void *p_user_data)
void bj_close_on_escape (bj_window *p_window, const bj_key_event *p_event, void *p_user_data)
void bj_push_event (const bj_event *e)
void bj_push_key_event (bj_window *p_window, bj_event_action action, bj_key key, int scancode)
void bj_push_cursor_event (bj_window *p_window, int x, int y)
void bj_push_button_event (bj_window *p_window, int button, bj_event_action action, int x, int y)
void bj_push_enter_event (bj_window *p_window, bj_bool enter, int x, int y)
void bj_dispatch_events (void)
bj_bool bj_poll_events (bj_event *p_event)
void bj_dispatch_event (const bj_event *p_event)

Detailed Description

Sytem event management API.