main uint/cterm / libmaus / include / maus_input.h
 1#ifndef MAUS_INPUT_H
 2#define MAUS_INPUT_H
 3
 4#include <stdint.h>
 5
 6typedef enum {
 7	MAUS_KEY_NONE = 0,
 8
 9	MAUS_KEY_TAB = '\t',     MAUS_KEY_ENTER = '\n',   MAUS_KEY_SPACE = ' ',
10	MAUS_KEY_APOSTROPHE = '\'', MAUS_KEY_COMMA = ',',  MAUS_KEY_MINUS = '-',
11	MAUS_KEY_PERIOD = '.',   MAUS_KEY_SLASH = '/',    MAUS_KEY_SEMICOLON = ';',
12	MAUS_KEY_EQUAL = '=',    MAUS_KEY_LEFT_BRACKET = '[', MAUS_KEY_BACKSLASH = '\\',
13	MAUS_KEY_RIGHT_BRACKET = ']', MAUS_KEY_GRAVE = '`',
14
15	/* numbers */
16	MAUS_KEY_0 = '0', MAUS_KEY_1, MAUS_KEY_2, MAUS_KEY_3, MAUS_KEY_4,
17	MAUS_KEY_5,       MAUS_KEY_6, MAUS_KEY_7, MAUS_KEY_8, MAUS_KEY_9,
18
19	/* uppercase */
20	MAUS_KEY_A_UP = 'A', MAUS_KEY_B_UP, MAUS_KEY_C_UP, MAUS_KEY_D_UP, MAUS_KEY_E_UP,
21	MAUS_KEY_F_UP,       MAUS_KEY_G_UP, MAUS_KEY_H_UP, MAUS_KEY_I_UP, MAUS_KEY_J_UP,
22	MAUS_KEY_K_UP,       MAUS_KEY_L_UP, MAUS_KEY_M_UP, MAUS_KEY_N_UP, MAUS_KEY_O_UP,
23	MAUS_KEY_P_UP,       MAUS_KEY_Q_UP, MAUS_KEY_R_UP, MAUS_KEY_S_UP, MAUS_KEY_T_UP,
24	MAUS_KEY_U_UP,       MAUS_KEY_V_UP, MAUS_KEY_W_UP, MAUS_KEY_X_UP, MAUS_KEY_Y_UP,
25	MAUS_KEY_Z_UP,
26
27	/* lowercase */
28	MAUS_KEY_A = 'a', MAUS_KEY_B, MAUS_KEY_C, MAUS_KEY_D, MAUS_KEY_E,
29	MAUS_KEY_F,       MAUS_KEY_G, MAUS_KEY_H, MAUS_KEY_I, MAUS_KEY_J,
30	MAUS_KEY_K,       MAUS_KEY_L, MAUS_KEY_M, MAUS_KEY_N, MAUS_KEY_O,
31	MAUS_KEY_P,       MAUS_KEY_Q, MAUS_KEY_R, MAUS_KEY_S, MAUS_KEY_T,
32	MAUS_KEY_U,       MAUS_KEY_V, MAUS_KEY_W, MAUS_KEY_X, MAUS_KEY_Y,
33	MAUS_KEY_Z,
34
35	MAUS_KEY_BACKSPACE = 128, MAUS_KEY_ESCAPE,      MAUS_KEY_DELETE,
36
37	/* navigation */
38	MAUS_KEY_LEFT,          MAUS_KEY_RIGHT,     MAUS_KEY_UP,        MAUS_KEY_DOWN,
39	MAUS_KEY_HOME,          MAUS_KEY_END,       MAUS_KEY_PAGE_UP,   MAUS_KEY_PAGE_DOWN,
40	MAUS_KEY_INSERT,
41
42	/* modifiers */
43	MAUS_KEY_SHIFT_L,       MAUS_KEY_SHIFT_R,   MAUS_KEY_CONTROL_L, MAUS_KEY_CONTROL_R,
44	MAUS_KEY_ALT_L,         MAUS_KEY_ALT_R,     MAUS_KEY_SUPER_L,   MAUS_KEY_SUPER_R,
45	MAUS_KEY_CAPS_LOCK,     MAUS_KEY_NUM_LOCK,  MAUS_KEY_SCROLL_LOCK,
46
47	/* function */
48	MAUS_KEY_F1,            MAUS_KEY_F2,        MAUS_KEY_F3,        MAUS_KEY_F4,
49	MAUS_KEY_F5,            MAUS_KEY_F6,        MAUS_KEY_F7,        MAUS_KEY_F8,
50	MAUS_KEY_F9,            MAUS_KEY_F10,       MAUS_KEY_F11,       MAUS_KEY_F12,
51
52	MAUS_KEY_PRINT_SCREEN,  MAUS_KEY_PAUSE,     MAUS_KEY_MENU,
53
54	/* keypad */
55	MAUS_KEY_KP_0,          MAUS_KEY_KP_1,      MAUS_KEY_KP_2,      MAUS_KEY_KP_3,
56	MAUS_KEY_KP_4,          MAUS_KEY_KP_5,      MAUS_KEY_KP_6,      MAUS_KEY_KP_7,
57	MAUS_KEY_KP_8,          MAUS_KEY_KP_9,
58
59	MAUS_KEY_KP_DECIMAL,    MAUS_KEY_KP_DIVIDE, MAUS_KEY_KP_MULTIPLY,
60	MAUS_KEY_KP_SUBTRACT,   MAUS_KEY_KP_ADD,    MAUS_KEY_KP_ENTER,  MAUS_KEY_KP_EQUAL,
61
62	MAUS_KEY_LAST,
63} MausKey;
64
65typedef struct {
66	int32_t        x;
67	int32_t        y;
68} MausCursor;
69
70typedef enum {
71	MAUS_CURSOR_STATE_VISIBLE,
72	MAUS_CURSOR_STATE_HIDDEN,
73	MAUS_CURSOR_STATE_LOCKED,
74	MAUS_CURSOR_STATE_FREE,
75} MausCursorState;
76
77typedef enum {
78	MAUS_MOUSE_BUTTON_NONE = 0,
79	MAUS_MOUSE_BUTTON_LEFT,
80	MAUS_MOUSE_BUTTON_MIDDLE,
81	MAUS_MOUSE_BUTTON_RIGHT,
82	MAUS_MOUSE_BUTTON_SCROLL_UP,
83	MAUS_MOUSE_BUTTON_SCROLL_DOWN,
84	MAUS_MOUSE_BUTTON_LAST,
85} MausMouseButton;
86
87#endif /* MAUS_KEYS_H */
88