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