1e4f25e4aSBram Moolenaar #ifndef __VTERM_INPUT_H__
2e4f25e4aSBram Moolenaar #define __VTERM_INPUT_H__
3e4f25e4aSBram Moolenaar 
4e4f25e4aSBram Moolenaar typedef enum {
5e4f25e4aSBram Moolenaar   VTERM_MOD_NONE  = 0x00,
6e4f25e4aSBram Moolenaar   VTERM_MOD_SHIFT = 0x01,
7e4f25e4aSBram Moolenaar   VTERM_MOD_ALT   = 0x02,
8b5b49a3bSBram Moolenaar   VTERM_MOD_CTRL  = 0x04,
9b5b49a3bSBram Moolenaar 
10b5b49a3bSBram Moolenaar   VTERM_ALL_MODS_MASK = 0x07
11e4f25e4aSBram Moolenaar } VTermModifier;
12e4f25e4aSBram Moolenaar 
13*db1085a5SBram Moolenaar // The order here must match keycodes[] in src/keyboard.c!
14e4f25e4aSBram Moolenaar typedef enum {
15e4f25e4aSBram Moolenaar   VTERM_KEY_NONE,
16e4f25e4aSBram Moolenaar 
17e4f25e4aSBram Moolenaar   VTERM_KEY_ENTER,
18e4f25e4aSBram Moolenaar   VTERM_KEY_TAB,
19e4f25e4aSBram Moolenaar   VTERM_KEY_BACKSPACE,
20e4f25e4aSBram Moolenaar   VTERM_KEY_ESCAPE,
21e4f25e4aSBram Moolenaar 
22e4f25e4aSBram Moolenaar   VTERM_KEY_UP,
23e4f25e4aSBram Moolenaar   VTERM_KEY_DOWN,
24e4f25e4aSBram Moolenaar   VTERM_KEY_LEFT,
25e4f25e4aSBram Moolenaar   VTERM_KEY_RIGHT,
26e4f25e4aSBram Moolenaar 
27e4f25e4aSBram Moolenaar   VTERM_KEY_INS,
28e4f25e4aSBram Moolenaar   VTERM_KEY_DEL,
29e4f25e4aSBram Moolenaar   VTERM_KEY_HOME,
30e4f25e4aSBram Moolenaar   VTERM_KEY_END,
31e4f25e4aSBram Moolenaar   VTERM_KEY_PAGEUP,
32e4f25e4aSBram Moolenaar   VTERM_KEY_PAGEDOWN,
33e4f25e4aSBram Moolenaar 
34*db1085a5SBram Moolenaar   // F1 is VTERM_KEY_FUNCTION(1), F2 VTERM_KEY_FUNCTION(2), etc.
35e4f25e4aSBram Moolenaar   VTERM_KEY_FUNCTION_0   = 256,
36e4f25e4aSBram Moolenaar   VTERM_KEY_FUNCTION_MAX = VTERM_KEY_FUNCTION_0 + 255,
37e4f25e4aSBram Moolenaar 
38*db1085a5SBram Moolenaar   // keypad keys
39e4f25e4aSBram Moolenaar   VTERM_KEY_KP_0,
40e4f25e4aSBram Moolenaar   VTERM_KEY_KP_1,
41e4f25e4aSBram Moolenaar   VTERM_KEY_KP_2,
42e4f25e4aSBram Moolenaar   VTERM_KEY_KP_3,
43e4f25e4aSBram Moolenaar   VTERM_KEY_KP_4,
44e4f25e4aSBram Moolenaar   VTERM_KEY_KP_5,
45e4f25e4aSBram Moolenaar   VTERM_KEY_KP_6,
46e4f25e4aSBram Moolenaar   VTERM_KEY_KP_7,
47e4f25e4aSBram Moolenaar   VTERM_KEY_KP_8,
48e4f25e4aSBram Moolenaar   VTERM_KEY_KP_9,
49e4f25e4aSBram Moolenaar   VTERM_KEY_KP_MULT,
50e4f25e4aSBram Moolenaar   VTERM_KEY_KP_PLUS,
51e4f25e4aSBram Moolenaar   VTERM_KEY_KP_COMMA,
52e4f25e4aSBram Moolenaar   VTERM_KEY_KP_MINUS,
53e4f25e4aSBram Moolenaar   VTERM_KEY_KP_PERIOD,
54e4f25e4aSBram Moolenaar   VTERM_KEY_KP_DIVIDE,
55e4f25e4aSBram Moolenaar   VTERM_KEY_KP_ENTER,
56e4f25e4aSBram Moolenaar   VTERM_KEY_KP_EQUAL,
57e4f25e4aSBram Moolenaar 
58b691de05SBram Moolenaar   VTERM_KEY_MAX, // Must be last
59b5b49a3bSBram Moolenaar   VTERM_N_KEYS = VTERM_KEY_MAX
60e4f25e4aSBram Moolenaar } VTermKey;
61e4f25e4aSBram Moolenaar 
62e4f25e4aSBram Moolenaar #define VTERM_KEY_FUNCTION(n) (VTERM_KEY_FUNCTION_0+(n))
63e4f25e4aSBram Moolenaar 
64e4f25e4aSBram Moolenaar #endif
65