123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- #ifndef _tinyrl_vt100_h
- #define _tinyrl_vt100_h
- #include <stdio.h>
- #include <stdarg.h>
- #include <faux/faux.h>
- typedef struct vt100_s vt100_t;
- #define VT100_HOTKEY_MAP_LEN 32
- #define KEY_NUL 0
- #define KEY_SOH 1
- #define KEY_STX 2
- #define KEY_ETX 3
- #define KEY_EOT 4
- #define KEY_ENQ 5
- #define KEY_ACK 6
- #define KEY_BEL 7
- #define KEY_BS 8
- #define KEY_HT 9
- #define KEY_LF 10
- #define KEY_VT 11
- #define KEY_FF 12
- #define KEY_CR 13
- #define KEY_SO 14
- #define KEY_SI 15
- #define KEY_DLE 16
- #define KEY_DC1 17
- #define KEY_DC2 18
- #define KEY_DC3 19
- #define KEY_DC4 20
- #define KEY_NAK 21
- #define KEY_SYN 22
- #define KEY_ETB 23
- #define KEY_CAN 24
- #define KEY_EM 25
- #define KEY_SUB 26
- #define KEY_ESC 27
- #define KEY_FS 28
- #define KEY_GS 29
- #define KEY_RS 30
- #define KEY_US 31
- #define KEY_DEL 127
- typedef enum {
- VT100_UNKNOWN,
- VT100_CURSOR_UP,
- VT100_CURSOR_DOWN,
- VT100_CURSOR_LEFT,
- VT100_CURSOR_RIGHT,
- VT100_HOME,
- VT100_END,
- VT100_INSERT,
- VT100_DELETE,
- VT100_PGUP,
- VT100_PGDOWN
- } vt100_esc_e;
- C_DECL_BEGIN
- vt100_t *vt100_new(FILE *istream, FILE *ostream);
- void vt100_free(vt100_t *vt100);
- FILE *vt100_istream(const vt100_t *vt100);
- void vt100_set_istream(vt100_t *vt100, FILE *istream);
- FILE *vt100_ostream(const vt100_t *vt100);
- void vt100_set_ostream(vt100_t *vt100, FILE *ostream);
- void vt100_winsize(const vt100_t *vt100, size_t *width, size_t *height);
- size_t vt100_width(const vt100_t *vt100);
- size_t vt100_height(const vt100_t *vt100);
- int vt100_printf(const vt100_t *vt100, const char *fmt, ...);
- int vt100_vprintf(const vt100_t *vt100, const char *fmt, va_list args);
- int vt100_oflush(const vt100_t *vt100);
- int vt100_ierror(const vt100_t *vt100);
- int vt100_oerror(const vt100_t *vt100);
- int vt100_ieof(const vt100_t *vt100);
- int vt100_getchar(const vt100_t *vt100, unsigned char *c);
- vt100_esc_e vt100_esc_decode(const char *esc_seq);
- ssize_t vt100_hotkey_decode(const char *hotkey);
- void vt100_ding(const vt100_t *vt100);
- void vt100_attr_reset(const vt100_t *vt100);
- void vt100_attr_bright(const vt100_t *vt100);
- void vt100_attr_dim(const vt100_t *vt100);
- void vt100_attr_underscore(const vt100_t *vt100);
- void vt100_attr_blink(const vt100_t *vt100);
- void vt100_attr_reverse(const vt100_t *vt100);
- void vt100_attr_hidden(const vt100_t *vt100);
- void vt100_erase_line(const vt100_t *vt100);
- void vt100_clear_screen(const vt100_t *vt100);
- void vt100_cursor_back(const vt100_t *vt100, size_t count);
- void vt100_cursor_forward(const vt100_t *vt100, size_t count);
- void vt100_cursor_up(const vt100_t *vt100, size_t count);
- void vt100_cursor_down(const vt100_t *vt100, size_t count);
- void vt100_scroll_up(const vt100_t *instance);
- void vt100_scroll_down(const vt100_t *instance);
- void vt100_next_line(const vt100_t *instance);
- void vt100_cursor_home(const vt100_t *vt100);
- void vt100_cursor_save(const vt100_t *vt100);
- void vt100_cursor_restore(const vt100_t *vt100);
- void vt100_erase(const vt100_t *vt100, size_t count);
- void vt100_erase_down(const vt100_t *vt100);
- C_DECL_END
- #endif
|