1 /* -*- c-basic-offset:2; tab-width:2; indent-tabs-mode:nil -*- */
2 
3 #ifndef __VT_TERMCAP_H__
4 #define __VT_TERMCAP_H__
5 
6 #include <pobl/bl_types.h>
7 
8 typedef enum vt_special_key {
9   SPKEY_DELETE = 0,
10   SPKEY_BACKSPACE,
11   SPKEY_ESCAPE,
12   SPKEY_END,
13   SPKEY_HOME,
14   SPKEY_BEGIN,
15   SPKEY_ISO_LEFT_TAB,
16   SPKEY_KP_MULTIPLY,
17   SPKEY_KP_ADD,
18   SPKEY_KP_SEPARATOR,
19   SPKEY_KP_SUBTRACT,
20   SPKEY_KP_DELETE,
21   SPKEY_KP_DIVIDE,
22   SPKEY_KP_END,
23   SPKEY_KP_HOME,
24   SPKEY_KP_BEGIN,
25   SPKEY_KP_UP,
26   SPKEY_KP_DOWN,
27   SPKEY_KP_RIGHT,
28   SPKEY_KP_LEFT,
29   SPKEY_KP_INSERT,
30   SPKEY_KP_PRIOR,
31   SPKEY_KP_NEXT,
32   SPKEY_KP_F1,
33   SPKEY_KP_F2,
34   SPKEY_KP_F3,
35   SPKEY_KP_F4,
36   SPKEY_UP,
37   SPKEY_DOWN,
38   SPKEY_RIGHT,
39   SPKEY_LEFT,
40   SPKEY_FIND,
41   SPKEY_INSERT,
42   SPKEY_EXECUTE,
43   SPKEY_SELECT,
44   SPKEY_PRIOR,
45   SPKEY_NEXT,
46   SPKEY_F1,
47   SPKEY_F2,
48   SPKEY_F3,
49   SPKEY_F4,
50   SPKEY_F5,
51   SPKEY_F6,
52   SPKEY_F7,
53   SPKEY_F8,
54   SPKEY_F9,
55   SPKEY_F10,
56   SPKEY_F11,
57   SPKEY_F12,
58   SPKEY_F13,
59   SPKEY_F14,
60   SPKEY_F15,
61   SPKEY_F16,
62   SPKEY_F17,
63   SPKEY_F18,
64   SPKEY_F19,
65   SPKEY_F20,
66   SPKEY_F21,
67   SPKEY_F22,
68   SPKEY_F23,
69   SPKEY_F24,
70   SPKEY_F25,
71   SPKEY_F26,
72   SPKEY_F27,
73   SPKEY_F28,
74   SPKEY_F29,
75   SPKEY_F30,
76   SPKEY_F31,
77   SPKEY_F32,
78   SPKEY_F33,
79   SPKEY_F34,
80   SPKEY_F35,
81   SPKEY_F36,
82   SPKEY_F37
83 
84 } vt_special_key_t;
85 
86 typedef struct vt_termcap *vt_termcap_ptr_t;
87 
88 #define SPKEY_IS_FKEY(key) ((key) >= SPKEY_F1)
89 
90 vt_termcap_ptr_t vt_termcap_get(const char *name);
91 
92 void vt_termcap_final();
93 
94 int vt_termcap_set_key_seq(vt_termcap_ptr_t termcap, vt_special_key_t key, const char *str);
95 
96 int vt_termcap_bce_is_enabled(vt_termcap_ptr_t termcap);
97 
98 char *vt_termcap_special_key_to_seq(vt_termcap_ptr_t termcap, vt_special_key_t key, int modcode,
99                                     int is_app_keypad, int is_app_cursor_keys, int is_app_escape,
100                                     int modify_cursor_keys, int modify_function_keys);
101 
102 #endif
103