version 1.18, 2017/10/11 08:08:16 |
version 1.19, 2017/10/11 12:57:49 |
|
|
} |
} |
} |
} |
|
|
|
|
static void |
static void |
|
window_tree_draw_label(struct screen_write_ctx *ctx, u_int px, u_int py, |
|
u_int sx, u_int sy, const struct grid_cell *gc, const char *label) |
|
{ |
|
size_t len; |
|
u_int ox, oy; |
|
|
|
len = strlen(label); |
|
if (sx == 0 || sy == 1 || len > sx) |
|
return; |
|
ox = (sx - len + 1) / 2; |
|
oy = (sy + 1) / 2; |
|
|
|
if (ox > 1 && ox + len < sx - 1 && sy >= 3) { |
|
screen_write_cursormove(ctx, px + ox - 1, py + oy - 1); |
|
screen_write_box(ctx, len + 2, 3); |
|
} |
|
screen_write_cursormove(ctx, px + ox, py + oy); |
|
screen_write_puts(ctx, gc, "%s", label); |
|
} |
|
|
|
static void |
window_tree_draw_session(struct window_tree_modedata *data, struct session *s, |
window_tree_draw_session(struct window_tree_modedata *data, struct session *s, |
struct screen_write_ctx *ctx, u_int sx, u_int sy) |
struct screen_write_ctx *ctx, u_int sx, u_int sy) |
{ |
{ |
|
|
struct grid_cell gc; |
struct grid_cell gc; |
int colour, active_colour, left, right; |
int colour, active_colour, left, right; |
char *label; |
char *label; |
size_t len; |
|
|
|
total = winlink_count(&s->windows); |
total = winlink_count(&s->windows); |
|
|
|
|
xasprintf(&label, " %u:%s ", wl->idx, w->name); |
xasprintf(&label, " %u:%s ", wl->idx, w->name); |
if (strlen(label) > width) |
if (strlen(label) > width) |
xasprintf(&label, " %u ", wl->idx); |
xasprintf(&label, " %u ", wl->idx); |
len = strlen(label) / 2; |
window_tree_draw_label(ctx, offset, 0, width, sy, &gc, label); |
screen_write_cursormove(ctx, offset + (each / 2) - len, sy / 2); |
|
if (len < width) |
|
screen_write_puts(ctx, &gc, "%s", label); |
|
free(label); |
free(label); |
|
|
if (loop != end - 1) { |
if (loop != end - 1) { |
|
|
struct grid_cell gc; |
struct grid_cell gc; |
int colour, active_colour, left, right; |
int colour, active_colour, left, right; |
char *label; |
char *label; |
size_t len; |
|
|
|
total = window_count_panes(w); |
total = window_count_panes(w); |
|
|
|
|
screen_write_preview(ctx, &wp->base, width, sy); |
screen_write_preview(ctx, &wp->base, width, sy); |
|
|
xasprintf(&label, " %u ", loop); |
xasprintf(&label, " %u ", loop); |
len = strlen(label) / 2; |
window_tree_draw_label(ctx, offset, 0, each, sy, &gc, label); |
screen_write_cursormove(ctx, offset + (each / 2) - len, sy / 2); |
|
if (len < width) |
|
screen_write_puts(ctx, &gc, "%s", label); |
|
free(label); |
free(label); |
|
|
if (loop != end - 1) { |
if (loop != end - 1) { |