libterm.h (646B)
1 #pragma once 2 3 typedef enum { 4 KEY_ENTER = 13, 5 KEY_ESC = 27, 6 KEY_BACKSPACE = 127, 7 KEY_ARROW_LEFT = 1000, 8 KEY_ARROW_RIGHT, 9 KEY_ARROW_UP, 10 KEY_ARROW_DOWN, 11 KEY_DEL, 12 KEY_HOME, 13 KEY_END, 14 KEY_PAGE_UP, 15 KEY_PAGE_DOWN, 16 } keycode_t; 17 18 typedef struct { 19 char *buffer; 20 int len; 21 } term_t; 22 23 void term_panic(const char *s); 24 void term_disable_raw_mode(void); 25 void term_enable_raw_mode(void); 26 int term_read_cursor_pos(int *rows, int *cols); 27 int term_read_window_size(int *rows, int *cols); 28 int term_poll_key(int timeout); 29 int term_read_key(void); 30 void term_write(char *str); 31 void term_writef(const char *format, ...); 32 void term_flush(void);