… | |
… | |
750 | { |
750 | { |
751 | text_t *t; // terminal the text |
751 | text_t *t; // terminal the text |
752 | rend_t *r; // rendition, uses RS_ flags |
752 | rend_t *r; // rendition, uses RS_ flags |
753 | tlen_t_ l; // length of each text line |
753 | tlen_t_ l; // length of each text line |
754 | uint32_t f; // flags |
754 | uint32_t f; // flags |
|
|
755 | |
|
|
756 | bool valid () |
|
|
757 | { |
|
|
758 | return l >= 0; |
|
|
759 | } |
|
|
760 | |
|
|
761 | void alloc () |
|
|
762 | { |
|
|
763 | l = 0; |
|
|
764 | } |
755 | |
765 | |
756 | bool is_longer () |
766 | bool is_longer () |
757 | { |
767 | { |
758 | return f & LINE_LONGER; |
768 | return f & LINE_LONGER; |
759 | } |
769 | } |
… | |
… | |
1030 | scrollBar_t scrollBar; |
1040 | scrollBar_t scrollBar; |
1031 | uint8_t options[(Opt_count + 7) >> 3]; |
1041 | uint8_t options[(Opt_count + 7) >> 3]; |
1032 | XSizeHints szHint; |
1042 | XSizeHints szHint; |
1033 | rxvt_color *pix_colors; |
1043 | rxvt_color *pix_colors; |
1034 | Cursor TermWin_cursor; /* cursor for vt window */ |
1044 | Cursor TermWin_cursor; /* cursor for vt window */ |
|
|
1045 | |
1035 | line_t *row_buf; // all lines, scrollback + terminal, circular |
1046 | line_t *row_buf; // all lines, scrollback + terminal, circular |
1036 | line_t *drawn_buf; // text on screen |
1047 | line_t *drawn_buf; // text on screen |
1037 | line_t *swap_buf; // lines for swap buffer |
1048 | line_t *swap_buf; // lines for swap buffer |
1038 | char *tabs; /* per location: 1 == tab-stop */ |
1049 | char *tabs; /* per location: 1 == tab-stop */ |
1039 | screen_t screen; |
1050 | screen_t screen; |
… | |
… | |
1246 | char *cmdbuf_ptr, *cmdbuf_endp; |
1257 | char *cmdbuf_ptr, *cmdbuf_endp; |
1247 | char cmdbuf_base[CBUFSIZ]; |
1258 | char cmdbuf_base[CBUFSIZ]; |
1248 | |
1259 | |
1249 | ptytty *pty; |
1260 | ptytty *pty; |
1250 | |
1261 | |
1251 | rxvt_salloc *talloc; // text line allocator |
1262 | // chunk contains all line_t's as well as rend_t and text_t buffers |
1252 | rxvt_salloc *ralloc; // rend line allocator |
1263 | // for drawn_buf, swap_buf and row_buf, in this order |
|
|
1264 | void *chunk; |
|
|
1265 | size_t chunk_size; |
1253 | |
1266 | |
1254 | static vector<rxvt_term *> termlist; // a vector of all running rxvt_term's |
1267 | static vector<rxvt_term *> termlist; // a vector of all running rxvt_term's |
1255 | |
1268 | |
1256 | #if ENABLE_FRILLS || ISO_14755 |
1269 | #if ENABLE_FRILLS || ISO_14755 |
1257 | // ISO 14755 entry support |
1270 | // ISO 14755 entry support |
… | |
… | |
1431 | void get_window_origin (int &x, int &y); |
1444 | void get_window_origin (int &x, int &y); |
1432 | Pixmap get_pixmap_property (Atom property); |
1445 | Pixmap get_pixmap_property (Atom property); |
1433 | |
1446 | |
1434 | // screen.C |
1447 | // screen.C |
1435 | |
1448 | |
1436 | void lalloc (line_t &l) const |
|
|
1437 | { |
|
|
1438 | l.t = (text_t *)talloc->alloc (); |
|
|
1439 | l.r = (rend_t *)ralloc->alloc (); |
|
|
1440 | } |
|
|
1441 | |
|
|
1442 | #if 0 |
|
|
1443 | void lfree (line_t &l) |
|
|
1444 | { |
|
|
1445 | talloc->free (l.t); |
|
|
1446 | ralloc->free (l.r); |
|
|
1447 | } |
|
|
1448 | #endif |
|
|
1449 | |
|
|
1450 | void lresize (line_t &l) const |
|
|
1451 | { |
|
|
1452 | if (!l.t) |
|
|
1453 | return; |
|
|
1454 | |
|
|
1455 | l.t = (text_t *)talloc->alloc (l.t, prev_ncol * sizeof (text_t)); |
|
|
1456 | l.r = (rend_t *)ralloc->alloc (l.r, prev_ncol * sizeof (rend_t)); |
|
|
1457 | |
|
|
1458 | l.l = min (l.l, ncol); |
|
|
1459 | |
|
|
1460 | if (ncol > prev_ncol) |
|
|
1461 | scr_blank_line (l, prev_ncol, ncol - prev_ncol, DEFAULT_RSTYLE); |
|
|
1462 | } |
|
|
1463 | |
|
|
1464 | int fgcolor_of (rend_t r) const NOTHROW |
1449 | int fgcolor_of (rend_t r) const NOTHROW |
1465 | { |
1450 | { |
1466 | int base = GET_BASEFG (r); |
1451 | int base = GET_BASEFG (r); |
1467 | #ifndef NO_BRIGHTCOLOR |
1452 | #ifndef NO_BRIGHTCOLOR |
1468 | if (r & RS_Bold |
1453 | if (r & RS_Bold |
… | |
… | |
1497 | void set_option (uint8_t opt, bool set = true) NOTHROW; |
1482 | void set_option (uint8_t opt, bool set = true) NOTHROW; |
1498 | |
1483 | |
1499 | // modifies first argument(!) |
1484 | // modifies first argument(!) |
1500 | void tt_paste (char *data, unsigned int len) NOTHROW; |
1485 | void tt_paste (char *data, unsigned int len) NOTHROW; |
1501 | void paste (char *data, unsigned int len) NOTHROW; |
1486 | void paste (char *data, unsigned int len) NOTHROW; |
|
|
1487 | void scr_alloc () NOTHROW; |
1502 | void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW; |
1488 | void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW; |
1503 | void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW; |
1489 | void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW; |
1504 | void scr_kill_char (line_t &l, int col) const NOTHROW; |
1490 | void scr_kill_char (line_t &l, int col) const NOTHROW; |
1505 | int scr_scroll_text (int row1, int row2, int count) NOTHROW; |
1491 | int scr_scroll_text (int row1, int row2, int count) NOTHROW; |
1506 | void scr_reset (); |
1492 | void scr_reset (); |