diff options
author | nicm <nicm> | 2019-05-28 09:50:54 +0000 |
---|---|---|
committer | nicm <nicm> | 2019-05-28 09:50:54 +0000 |
commit | 12255411f27e2c937334b1d84671ae46d5ef3c0c (patch) | |
tree | 9dfcbecc432316a2fe845db9471e8d8c06bc8570 /screen-write.c | |
parent | 799a154b91c6e6ff7dbe62b67272f09578c99914 (diff) | |
download | rtmux-12255411f27e2c937334b1d84671ae46d5ef3c0c.tar.gz rtmux-12255411f27e2c937334b1d84671ae46d5ef3c0c.tar.bz2 rtmux-12255411f27e2c937334b1d84671ae46d5ef3c0c.zip |
Allow menu items to be disabled by putting a - at the start of their
name, rather than just including #[dim] which still allowed them to be
chosen.
Diffstat (limited to 'screen-write.c')
-rw-r--r-- | screen-write.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/screen-write.c b/screen-write.c index ad3808ae..174c7a82 100644 --- a/screen-write.c +++ b/screen-write.c @@ -410,6 +410,7 @@ screen_write_menu(struct screen_write_ctx *ctx, struct menu *menu, int choice) struct screen *s = ctx->s; struct grid_cell gc; u_int cx, cy, i, j; + const char *name; cx = s->cx; cy = s->cy; @@ -421,18 +422,24 @@ screen_write_menu(struct screen_write_ctx *ctx, struct menu *menu, int choice) format_draw(ctx, &gc, menu->width, menu->title, NULL); for (i = 0; i < menu->count; i++) { - if (menu->items[i].name == NULL) { + name = menu->items[i].name; + if (name == NULL) { screen_write_cursormove(ctx, cx, cy + 1 + i, 0); screen_write_hline(ctx, menu->width + 4, 1, 1); } else { - if (choice >= 0 && i == (u_int)choice) + if (choice >= 0 && i == (u_int)choice && *name != '-') gc.attr |= GRID_ATTR_REVERSE; screen_write_cursormove(ctx, cx + 2, cy + 1 + i, 0); for (j = 0; j < menu->width; j++) screen_write_putc(ctx, &gc, ' '); screen_write_cursormove(ctx, cx + 2, cy + 1 + i, 0); - format_draw(ctx, &gc, menu->width, menu->items[i].name, - NULL); + if (*name == '-') { + name++; + gc.attr |= GRID_ATTR_DIM; + format_draw(ctx, &gc, menu->width, name, NULL); + gc.attr &= ~GRID_ATTR_DIM; + } else + format_draw(ctx, &gc, menu->width, name, NULL); if (choice >= 0 && i == (u_int)choice) gc.attr &= ~GRID_ATTR_REVERSE; } |