Home | History | Annotate | Download | only in dist

Lines Matching refs:gc

61 grid_store_cell(struct grid_cell_entry *gce, const struct grid_cell *gc,
64 gce->flags = (gc->flags & ~GRID_FLAG_CLEARED);
66 gce->data.fg = gc->fg & 0xff;
67 if (gc->fg & COLOUR_FLAG_256)
70 gce->data.bg = gc->bg & 0xff;
71 if (gc->bg & COLOUR_FLAG_256)
74 gce->data.attr = gc->attr;
81 const struct grid_cell *gc)
85 if (gc->attr > 0xff)
87 if (gc->data.size > 1 || gc->data.width > 1)
89 if ((gc->fg & COLOUR_FLAG_RGB) || (gc->bg & COLOUR_FLAG_RGB))
91 if (gc->us != 8) /* only supports 256 or RGB */
93 if (gc->link != 0)
95 if (gc->flags & GRID_FLAG_TAB)
117 const struct grid_cell *gc)
120 int flags = (gc->flags & ~GRID_FLAG_CLEARED);
129 if (gc->flags & GRID_FLAG_TAB)
130 uc = gc->data.width;
132 utf8_from_data(&gc->data, &uc);
136 gee->attr = gc->attr;
138 gee->fg = gc->fg;
139 gee->bg = gc->bg;
140 gee->us = gc->us;
141 gee->link = gc->link;
266 grid_set_tab(struct grid_cell *gc, u_int width)
268 memset(gc->data.data, 0, sizeof gc->data.data);
269 gc->flags |= GRID_FLAG_TAB;
270 gc->flags &= ~GRID_FLAG_PADDING;
271 gc->data.width = gc->data.size = gc->data.have = width;
272 memset(gc->data.data, ' ', gc->data.size);
522 grid_get_cell1(struct grid_line *gl, u_int px, struct grid_cell *gc)
529 memcpy(gc, &grid_default_cell, sizeof *gc);
532 gc->flags = gee->flags;
533 gc->attr = gee->attr;
534 gc->fg = gee->fg;
535 gc->bg = gee->bg;
536 gc->us = gee->us;
537 gc->link = gee->link;
539 if (gc->flags & GRID_FLAG_TAB)
540 grid_set_tab(gc, gee->data);
542 utf8_to_data(gee->data, &gc->data);
547 gc->flags = gce->flags & ~(GRID_FLAG_FG256|GRID_FLAG_BG256);
548 gc->attr = gce->data.attr;
549 gc->fg = gce->data.fg;
551 gc->fg |= COLOUR_FLAG_256;
552 gc->bg = gce->data.bg;
554 gc->bg |= COLOUR_FLAG_256;
555 gc->us = 8;
556 utf8_set(&gc->data, gce->data.data);
557 gc->link = 0;
562 grid_get_cell(struct grid *gd, u_int px, u_int py, struct grid_cell *gc)
566 memcpy(gc, &grid_default_cell, sizeof *gc);
568 grid_get_cell1(&gd->linedata[py], px, gc);
573 grid_set_cell(struct grid *gd, u_int px, u_int py, const struct grid_cell *gc)
588 if (grid_need_extended_cell(gce, gc))
589 grid_extended_cell(gl, gce, gc);
591 grid_store_cell(gce, gc, gc->data.data[0]);
603 grid_set_cells(struct grid *gd, u_int px, u_int py, const struct grid_cell *gc,
622 if (grid_need_extended_cell(gce, gc)) {
623 gee = grid_extended_cell(gl, gce, gc);
626 grid_store_cell(gce, gc, s[i]);
766 grid_string_cells_fg(const struct grid_cell *gc, int *values)
772 if (gc->fg & COLOUR_FLAG_256) {
775 values[n++] = gc->fg & 0xff;
776 } else if (gc->fg & COLOUR_FLAG_RGB) {
779 colour_split_rgb(gc->fg, &r, &g, &b);
784 switch (gc->fg) {
793 values[n++] = gc->fg + 30;
806 values[n++] = gc->fg;
815 grid_string_cells_bg(const struct grid_cell *gc, int *values)
821 if (gc->bg & COLOUR_FLAG_256) {
824 values[n++] = gc->bg & 0xff;
825 } else if (gc->bg & COLOUR_FLAG_RGB) {
828 colour_split_rgb(gc->bg, &r, &g, &b);
833 switch (gc->bg) {
842 values[n++] = gc->bg + 40;
855 values[n++] = gc->bg + 10;
864 grid_string_cells_us(const struct grid_cell *gc, int *values)
870 if (gc->us & COLOUR_FLAG_256) {
873 values[n++] = gc->us & 0xff;
874 } else if (gc->us & COLOUR_FLAG_RGB) {
877 colour_split_rgb(gc->us, &r, &g, &b);
950 const struct grid_cell *gc, char *buf, size_t len, int flags,
955 u_int attr = gc->attr, lastattr = lastgc->attr;
983 (lastgc->us != 8 && gc->us == 8)) {
1017 nnewc = grid_string_cells_fg(gc, newc);
1023 nnewc = grid_string_cells_bg(gc, newc);
1029 nnewc = grid_string_cells_us(gc, newc);
1049 if (sc != NULL && sc->hyperlinks != NULL && lastgc->link != gc->link) {
1050 if (hyperlinks_get(sc->hyperlinks, gc->link, &uri, &id, NULL)) {
1066 struct grid_cell gc;
1092 grid_get_cell(gd, xx, py, &gc);
1093 if (gc.flags & GRID_FLAG_PADDING)
1097 grid_string_cells_code(*lastgc, &gc, code, sizeof code,
1100 memcpy(*lastgc, &gc, sizeof **lastgc);
1104 if (gc.flags & GRID_FLAG_TAB) {
1108 data = (void *)gc.data.data;
1109 size = gc.data.size;
1235 struct grid_cell gc;
1280 grid_get_cell1(&gd->linedata[line], 0, &gc);
1281 if (width + gc.data.width > sx)
1283 width += gc.data.width;
1284 grid_set_cell(target, at, to, &gc);
1290 grid_get_cell1(from, want, &gc);
1291 if (width + gc.data.width > sx)
1293 width += gc.data.width;
1295 grid_set_cell(target, at, to, &gc);
1343 struct grid_cell gc;
1355 grid_get_cell1(gl, i, &gc);
1356 if (width + gc.data.width > sx) {
1360 width += gc.data.width;
1372 grid_get_cell1(gl, i, &gc);
1373 if (width + gc.data.width > sx) {
1380 width += gc.data.width;
1381 grid_set_cell(target, xx, line, &gc);
1411 struct grid_cell gc;
1442 grid_get_cell1(gl, i, &gc);
1443 if (at == 0 && width + gc.data.width > sx)
1445 width += gc.data.width;
1549 struct grid_cell gc;
1556 grid_get_cell(gd, px - 1, py, &gc);
1557 if ((gc.flags & GRID_FLAG_PADDING) ||
1558 gc.data.size != 1 ||
1559 *gc.data.data != ' ')
1570 struct grid_cell gc, tmp_gc;
1573 grid_get_cell(gd, px, py, &gc);
1575 if (gc.flags & GRID_FLAG_PADDING) {
1582 } else if (gc.flags & GRID_FLAG_TAB)
1583 return (gc.data.width);
1585 if (gc.flags & GRID_FLAG_PADDING)
1587 return (utf8_cstrhas(set, &gc.data));