#ifndef EL__TERMINAL_KBD_H #define EL__TERMINAL_KBD_H struct itrm; struct term_event_keyboard { int key; int modifier; }; struct interlink_event_keyboard { int key; int modifier; }; #define KBD_UNDEF -1 #define KBD_ENTER 0x100 #define KBD_BS 0x101 #define KBD_TAB 0x102 #define KBD_ESC 0x103 #define KBD_LEFT 0x104 #define KBD_RIGHT 0x105 #define KBD_UP 0x106 #define KBD_DOWN 0x107 #define KBD_INS 0x108 #define KBD_DEL 0x109 #define KBD_HOME 0x10a #define KBD_END 0x10b #define KBD_PAGE_UP 0x10c #define KBD_PAGE_DOWN 0x10d #define KBD_F1 0x120 #define KBD_F2 0x121 #define KBD_F3 0x122 #define KBD_F4 0x123 #define KBD_F5 0x124 #define KBD_F6 0x125 #define KBD_F7 0x126 #define KBD_F8 0x127 #define KBD_F9 0x128 #define KBD_F10 0x129 #define KBD_F11 0x12a #define KBD_F12 0x12b #define KBD_CTRL_C 0x200 #define KBD_MOD_NONE 0 #define KBD_MOD_SHIFT 1 #define KBD_MOD_CTRL 2 #define KBD_MOD_ALT 4 void handle_trm(int std_in, int std_out, int sock_in, int sock_out, int ctl_in, void *init_string, int init_len, int remote); void itrm_queue_event(struct itrm *itrm, unsigned char *data, int len); void block_itrm(int); int unblock_itrm(int); void free_all_itrms(void); void resize_terminal(void); void dispatch_special(unsigned char *); void kbd_ctrl_c(void); int is_blocked(void); #define kbd_get_key(kbd_) ((kbd_)->key) #define kbd_key_is(kbd_, key) (kbd_get_key(kbd_) == (key)) #define kbd_get_modifier(kbd_) ((kbd_)->modifier) #define kbd_modifier_is(kbd_, mod) (kbd_get_modifier(kbd_) == (mod)) #define kbd_set(kbd_, key_, modifier_) do { \ (kbd_)->key = (key_); \ (kbd_)->modifier = (modifier_); \ } while (0) #endif