diff options
author | yokota <yokota@FreeBSD.org> | 2001-08-02 08:30:40 +0000 |
---|---|---|
committer | yokota <yokota@FreeBSD.org> | 2001-08-02 08:30:40 +0000 |
commit | 09383e1eceec397ac112cfaf1db425e914d8b259 (patch) | |
tree | c79575ae9a6fb28b44160934e3aadd6359c8977f /sys/dev/syscons/syscons.h | |
parent | 1d105403d04e4606c3ab825795b3eb9c0a32dee4 (diff) | |
download | FreeBSD-src-09383e1eceec397ac112cfaf1db425e914d8b259.zip FreeBSD-src-09383e1eceec397ac112cfaf1db425e914d8b259.tar.gz |
Refine cursor type/shape control escape sequences and
ioctls. We can now add ve, vi and vs capabilities to
cons25 in termcap.
Discussed with and tested by: ache
Diffstat (limited to 'sys/dev/syscons/syscons.h')
-rw-r--r-- | sys/dev/syscons/syscons.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/sys/dev/syscons/syscons.h b/sys/dev/syscons/syscons.h index 46dde5f..5f424d5 100644 --- a/sys/dev/syscons/syscons.h +++ b/sys/dev/syscons/syscons.h @@ -155,6 +155,13 @@ typedef struct sc_vtb { int vtb_tail; /* valid for VTB_RINGBUFFER only */ } sc_vtb_t; +/* text cursor attributes */ +struct cursor_attr { + int flags; + int base; + int height; +}; + /* softc */ struct keyboard; @@ -172,8 +179,10 @@ typedef struct sc_softc { int flags; /* status flags */ #define SC_VISUAL_BELL (1 << 0) #define SC_QUIET_BELL (1 << 1) +#if 0 /* not used anymore */ #define SC_BLINK_CURSOR (1 << 2) #define SC_CHAR_CURSOR (1 << 3) +#endif #define SC_MOUSE_ENABLED (1 << 4) #define SC_SCRN_IDLE (1 << 5) #define SC_SCRN_BLANKED (1 << 6) @@ -205,8 +214,8 @@ typedef struct sc_softc { long scrn_time_stamp; - char cursor_base; - char cursor_height; + struct cursor_attr dflt_curs_attr; + struct cursor_attr curs_attr; u_char scr_map[256]; u_char scr_rmap[256]; @@ -267,8 +276,9 @@ typedef struct scr_stat { int cursor_oldpos; /* cursor old buffer position */ u_short cursor_saveunder_char; /* saved char under cursor */ u_short cursor_saveunder_attr; /* saved attr under cursor */ - char cursor_base; /* cursor base line # */ - char cursor_height; /* cursor height */ + struct cursor_attr dflt_curs_attr; + struct cursor_attr curr_curs_attr; + struct cursor_attr curs_attr; int mouse_pos; /* mouse buffer position */ int mouse_oldpos; /* mouse old buffer position */ @@ -517,6 +527,8 @@ void sc_puts(scr_stat *scp, u_char *buf, int len); void sc_draw_cursor_image(scr_stat *scp); void sc_remove_cursor_image(scr_stat *scp); void sc_set_cursor_image(scr_stat *scp); +void sc_change_cursor_shape(scr_stat *scp, int flags, + int base, int height); int sc_clean_up(scr_stat *scp); int sc_switch_scr(sc_softc_t *sc, u_int next_scr); void sc_alloc_scr_buffer(scr_stat *scp, int wait, int discard); |