Omit accel and select char from menu colors

e.g. When there's "a - whatever", color the "whatever" part and leave
the "a - " part unformatted.  This matches the behavior of menu colors
in NAO343.
This commit is contained in:
Tung Nguyen
2016-03-17 14:20:17 +11:00
parent 606a738c4b
commit 2ff96797a8

View File

@@ -1777,6 +1777,15 @@ struct WinDesc *cw;
page_lines++, curr = curr->next) {
int color = NO_COLOR, attr = ATR_NONE;
boolean menucolr = FALSE;
int select_pos = -1; /* -/+/# position for selectables */
int format_start_pos = 0; /* menu color/attr start pos */
if (curr->identifier.a_void != 0) {
/* "a - whatever" */
select_pos = 2; /* '-' */
format_start_pos = 4; /* start of "whatever" */
}
if (curr->selector)
*rp++ = curr->selector;
@@ -1793,27 +1802,31 @@ struct WinDesc *cw;
* actually output the character. We're faster doing
* this.
*/
if (iflags.use_menu_color
&& (menucolr = get_menu_coloring(curr->str, &color,
&attr))) {
term_start_attr(attr);
#ifdef TEXTCOLOR
if (color != NO_COLOR)
term_start_color(color);
#endif
} else
term_start_attr(curr->attr);
for (n = 0, cp = curr->str;
#ifndef WIN32CON
*cp
&& (int) ++ttyDisplay->curx < (int) ttyDisplay->cols;
cp++, n++)
cp++, n++
#else
*cp
&& (int) ttyDisplay->curx < (int) ttyDisplay->cols;
cp++, n++, ttyDisplay->curx++)
cp++, n++, ttyDisplay->curx++
#endif
if (n == 2 && curr->identifier.a_void != 0
) {
if (n == format_start_pos) {
if (iflags.use_menu_color
&& (menucolr = get_menu_coloring(curr->str,
&color,
&attr))) {
term_start_attr(attr);
#ifdef TEXTCOLOR
if (color != NO_COLOR)
term_start_color(color);
#endif
} else
term_start_attr(curr->attr);
}
if (n == select_pos && curr->identifier.a_void != 0
&& curr->selected) {
if (curr->count == -1L)
(void) putchar('+'); /* all selected */
@@ -1821,6 +1834,7 @@ struct WinDesc *cw;
(void) putchar('#'); /* count selected */
} else
(void) putchar(*cp);
}
if (iflags.use_menu_color && menucolr) {
#ifdef TEXTCOLOR
if (color != NO_COLOR)