blob: e5fb5ab086401605463656b53b8c3649d561796a [file] [log] [blame]
Bram Moolenaare4f25e42017-07-07 11:54:15 +02001#ifndef __VTERM_INPUT_H__
2#define __VTERM_INPUT_H__
3
4typedef enum {
5 VTERM_MOD_NONE = 0x00,
6 VTERM_MOD_SHIFT = 0x01,
7 VTERM_MOD_ALT = 0x02,
Bram Moolenaarb5b49a32018-03-25 16:20:37 +02008 VTERM_MOD_CTRL = 0x04,
9
Bram Moolenaardb1085a2019-08-18 20:41:38 +020010 VTERM_ALL_MODS_MASK = 0x07
Bram Moolenaare4f25e42017-07-07 11:54:15 +020011} VTermModifier;
12
Bram Moolenaardb1085a2019-08-18 20:41:38 +020013// The order here must match keycodes[] in src/keyboard.c!
Bram Moolenaare4f25e42017-07-07 11:54:15 +020014typedef enum {
15 VTERM_KEY_NONE,
16
17 VTERM_KEY_ENTER,
18 VTERM_KEY_TAB,
19 VTERM_KEY_BACKSPACE,
20 VTERM_KEY_ESCAPE,
21
22 VTERM_KEY_UP,
23 VTERM_KEY_DOWN,
24 VTERM_KEY_LEFT,
25 VTERM_KEY_RIGHT,
26
27 VTERM_KEY_INS,
28 VTERM_KEY_DEL,
29 VTERM_KEY_HOME,
30 VTERM_KEY_END,
31 VTERM_KEY_PAGEUP,
32 VTERM_KEY_PAGEDOWN,
33
Bram Moolenaardb1085a2019-08-18 20:41:38 +020034 // F1 is VTERM_KEY_FUNCTION(1), F2 VTERM_KEY_FUNCTION(2), etc.
Bram Moolenaare4f25e42017-07-07 11:54:15 +020035 VTERM_KEY_FUNCTION_0 = 256,
36 VTERM_KEY_FUNCTION_MAX = VTERM_KEY_FUNCTION_0 + 255,
37
Bram Moolenaardb1085a2019-08-18 20:41:38 +020038 // keypad keys
Bram Moolenaare4f25e42017-07-07 11:54:15 +020039 VTERM_KEY_KP_0,
40 VTERM_KEY_KP_1,
41 VTERM_KEY_KP_2,
42 VTERM_KEY_KP_3,
43 VTERM_KEY_KP_4,
44 VTERM_KEY_KP_5,
45 VTERM_KEY_KP_6,
46 VTERM_KEY_KP_7,
47 VTERM_KEY_KP_8,
48 VTERM_KEY_KP_9,
49 VTERM_KEY_KP_MULT,
50 VTERM_KEY_KP_PLUS,
51 VTERM_KEY_KP_COMMA,
52 VTERM_KEY_KP_MINUS,
53 VTERM_KEY_KP_PERIOD,
54 VTERM_KEY_KP_DIVIDE,
55 VTERM_KEY_KP_ENTER,
56 VTERM_KEY_KP_EQUAL,
57
Bram Moolenaarb691de02018-04-24 18:39:14 +020058 VTERM_KEY_MAX, // Must be last
Bram Moolenaarb5b49a32018-03-25 16:20:37 +020059 VTERM_N_KEYS = VTERM_KEY_MAX
Bram Moolenaare4f25e42017-07-07 11:54:15 +020060} VTermKey;
61
62#define VTERM_KEY_FUNCTION(n) (VTERM_KEY_FUNCTION_0+(n))
63
64#endif