vt100.h (2406B)
1 /* 2 * Copy me if you can. 3 * by 20h 4 */ 5 6 #ifndef __LIBVT100_H__ 7 #define __LIBVT100_H__ 8 9 #include <unistd.h> 10 #include <termios.h> 11 12 typedef struct term_t term_t; 13 typedef struct termwin_t termwin_t; 14 struct termwin_t { 15 int r, c, rows, cols; 16 int dr, dc, drows, dcols; 17 int cr, cc; 18 19 int scrollc1, scrollc2, scroll; 20 21 term_t *term; 22 23 termwin_t *next; 24 termwin_t *prev; 25 }; 26 27 struct term_t { 28 int rows, cols; 29 30 struct termios tioin, tioout; 31 32 int n; 33 termwin_t *first; 34 termwin_t *last; 35 }; 36 37 termwin_t *termwin_new(term_t *term, int r, int c, int rows, int cols); 38 void termwin_free(term_t *term, termwin_t *win); 39 40 term_t *term_new(void); 41 void term_free(term_t *term); 42 43 void term_setpos(int row, int col); 44 void term_up(int rows); 45 void term_down(int rows); 46 void term_forward(int cols); 47 void term_backward(int cols); 48 void term_erasepos(int row, int col); 49 void term_eraserow(int row); 50 void term_erasescreen(void); 51 void term_backspace(void); 52 53 void term_setscrolling(int start, int end); 54 void term_scrollup(int times); 55 void term_scrolldown(int times); 56 57 void term_showcursor(void); 58 void term_hidecursor(void); 59 void term_blinkcursor(void); 60 void term_staticursor(void); 61 62 void term_reset(term_t *term); 63 void term_init(term_t *term); 64 65 void term_error(term_t *term, char *fmt, ...); 66 void term_printf(int row, int col, char *fmt, ...); 67 68 void term_drawline(term_t *term, int r0, int c0, int r1, int c1, char sym); 69 void term_drawrectangle(term_t *term, int r0, int c0, int r1, int c1, 70 char hline, char vline, char uredge, char uledge, 71 char lredge, char lledge); 72 void term_fillrectangle(term_t *term, int r0, int c0, int r1, int c1, 73 char fill); 74 75 void termwin_setpos(termwin_t *win, int row, int col); 76 int temwin_inwindow(termwin_t *win, int row, int col); 77 void termwin_up(termwin_t *win, int rows); 78 void termwin_down(termwin_t *win, int rows); 79 void termwin_forward(termwin_t *win, int cols); 80 void termwin_backward(termwin_t *win, int cols); 81 void termwin_erasepos(termwin_t *win, int row, int col); 82 void termwin_eraserow(termwin_t *win, int row); 83 void termwin_erasewin(termwin_t *win); 84 void termwin_backspace(termwin_t *win); 85 86 void termwin_setscrolling(termwin_t *win, int start, int end); 87 void termwin_scrollup(termwin_t *win, int times); 88 void termwin_scrolldown(termwin_t *win, int times); 89 90 void termwin_error(termwin_t *win, char *fmt, ...); 91 void termwin_printf(termwin_t *win, int row, int col, char *fmt, ...); 92 93 #endif 94