more menu header tweaking re options

<color>
off: map, menu items, menu headings, menu prompt/title all, everything should have color suppressed.

<curses guicolor>
on: map, menu items, menu headings, menu prompt/title can all feature color, as can
menu borders, menu-selector letters.
off: map, menu headings, menu prompt and menu items (menucolors on) can still feature color,
but all other non-map features such as menu borders, menu-selector
letters will not have color.

<menucolors>
on: menu items can have colors if they match one of the regex in config
file; menu headings, menu prompt can also be in color (based on menu_headings option).
off: menu items won't have colors, but menu headings, menu prompt still
will feature colors (based on menu_headings option); those are not impacted by turning
off menucolors.
This commit is contained in:
nhmall
2023-11-16 13:41:07 -05:00
parent 7beef848c4
commit bb10f9a5d0
6 changed files with 19 additions and 5 deletions

View File

@@ -1602,10 +1602,12 @@ void
adjust_menu_promptstyle(winid window, color_attr *style)
{
win_request_info wri = zerowri;
wri.fromcore.menu_promptstyle.color = style->color;
wri.fromcore.menu_promptstyle.color =
(iflags.wc_color) ? style->color : NO_COLOR;
wri.fromcore.menu_promptstyle.attr = style->attr;
/* relay the style change to the window port */
(void) ctrl_nhwindow(window, set_menu_promptstyle, &wri);
go.opt_need_promptstyle = FALSE;
}
/*
@@ -1626,13 +1628,15 @@ add_menu(
const char *str, /* menu text */
unsigned int itemflags) /* itemflags such as MENU_ITEMFLAGS_SELECTED */
{
if (iflags.use_menu_color) {
if (iflags.wc_color && iflags.use_menu_color) {
if ((itemflags & MENU_ITEMFLAGS_SKIPMENUCOLORS) == 0)
(void) get_menu_coloring(str, &color, &attr);
}
/* this is the only function that cared about this flag; remove it now */
itemflags &= ~MENU_ITEMFLAGS_SKIPMENUCOLORS;
if (!iflags.wc_color)
color = NO_COLOR;
(*windowprocs.win_add_menu)(window, glyphinfo, identifier,
ch, gch, attr, color, str, itemflags);
}