-#ifndef __SPICETERM_H__
-#define __SPICETERM_H__
-
#include <glib.h>
#include <spice.h>
#define MAX_ESC_PARAMS 16
typedef struct TextAttributes {
- unsigned int fgcol:4;
- unsigned int bgcol:4;
- unsigned int bold:1;
- unsigned int uline:1;
- unsigned int blink:1;
- unsigned int invers:1;
- unsigned int unvisible:1;
+ unsigned int fgcol:4;
+ unsigned int bgcol:4;
+ unsigned int bold:1;
+ unsigned int uline:1;
+ unsigned int blink:1;
+ unsigned int invers:1;
+ unsigned int unvisible:1;
+ unsigned int selected:1;
} TextAttributes;
typedef struct TextCell {
- gunichar2 ch;
- TextAttributes attrib;
+ gunichar2 ch;
+ TextAttributes attrib;
} TextCell;
#define COMMANDS_SIZE 1024
void spice_screen_draw_char(SpiceScreen *spice_screen, int x, int y, gunichar2 ch, TextAttributes attrib);
void spice_screen_scroll(SpiceScreen *spice_screen, int x1, int y1, int x2, int y2, int src_x, int src_y);
void spice_screen_clear(SpiceScreen *spice_screen, int x1, int y1, int x2, int y2);
-
-
uint32_t spice_screen_get_width(void);
uint32_t spice_screen_get_height(void);
typedef struct spiceTerm {
- int maxx;
- int maxy;
-
- int width;
- int height;
-
- int total_height;
- int scroll_height;
- int y_base;
- int y_displ;
- int altbuf:1;
-
- unsigned int utf8:1; // utf8 mode
- long utf_char; // used by utf8 parser
- int utf_count; // used by utf8 parser
-
- TextAttributes default_attrib;
-
- TextCell *cells;
- TextCell *altcells;
-
- SpiceScreen *screen;
- SpiceKbdInstance keyboard_sin;
- SpiceCharDeviceInstance vdagent_sin;
-
- // cursor
- TextAttributes cur_attrib;
- TextAttributes cur_attrib_saved;
- int tty_state; // 0 - normal, 1 - ESC, 2 - CSI
- int cx; // cursor x position
- int cy; // cursor y position
- int cx_saved; // saved cursor x position
- int cy_saved; // saved cursor y position
- int esc_buf[MAX_ESC_PARAMS];
- int esc_count;
- int esc_ques;
- int esc_has_par;
- char osc_textbuf[4096];
- char osc_cmd;
- int region_top;
- int region_bottom;
-
- unsigned int charset:1; // G0 or G1
- unsigned int charset_saved:1; // G0 or G1
- unsigned int g0enc:2;
- unsigned int g0enc_saved:2;
- unsigned int g1enc:2;
- unsigned int g1enc_saved:2;
- unsigned int cur_enc:2;
- unsigned int cur_enc_saved:2;
-
- // input buffer
- char ibuf[IBUFSIZE];
- int ibuf_count;
-
- gunichar2 *selection;
- int selection_len;
-
- unsigned int mark_active:1;
-
- unsigned int report_mouse:1;
+ int maxx;
+ int maxy;
-} spiceTerm;
+ int width;
+ int height;
-#endif /* __SPICETERM_H__ */
+ int total_height;
+ int scroll_height;
+ int y_base;
+ int y_displ;
+ int altbuf:1;
+
+ unsigned int utf8:1; // utf8 mode
+ long utf_char; // used by utf8 parser
+ int utf_count; // used by utf8 parser
+
+ TextAttributes default_attrib;
+
+ TextCell *cells;
+ TextCell *altcells;
+
+ SpiceScreen *screen;
+ SpiceKbdInstance keyboard_sin;
+ SpiceCharDeviceInstance vdagent_sin;
+
+ // cursor
+ TextAttributes cur_attrib;
+ TextAttributes cur_attrib_saved;
+ int tty_state; // 0 - normal, 1 - ESC, 2 - CSI
+ int cx; // cursor x position
+ int cy; // cursor y position
+ int cx_saved; // saved cursor x position
+ int cy_saved; // saved cursor y position
+ int esc_buf[MAX_ESC_PARAMS];
+ int esc_count;
+ int esc_ques;
+ int esc_has_par;
+ char osc_textbuf[4096];
+ char osc_cmd;
+ int region_top;
+ int region_bottom;
+
+ unsigned int charset:1; // G0 or G1
+ unsigned int charset_saved:1; // G0 or G1
+ unsigned int g0enc:2;
+ unsigned int g0enc_saved:2;
+ unsigned int g1enc:2;
+ unsigned int g1enc_saved:2;
+ unsigned int cur_enc:2;
+ unsigned int cur_enc_saved:2;
+
+ // input buffer
+ char ibuf[IBUFSIZE];
+ int ibuf_count;
+
+ gunichar2 *selection;
+ int selection_len;
+
+ unsigned int mark_active:1;
+
+ unsigned int report_mouse:1;
+
+} spiceTerm;