follow-up to curses windowcolors
Make sure the windowcolors option can be specified more than once without a config file warning. Make the struct holding the details a little more extendable.
This commit is contained in:
@@ -427,9 +427,11 @@ curses_create_nhwindow(int type)
|
||||
winid wid = curses_get_wid(type);
|
||||
|
||||
if (curses_is_menu(wid))
|
||||
curses_parse_wid_colors(MENU_WIN, iflags.wc_foregrnd_menu, iflags.wc_backgrnd_menu);
|
||||
curses_parse_wid_colors(MENU_WIN, iflags.wcolors[wcolor_menu].fg,
|
||||
iflags.wcolors[wcolor_menu].bg);
|
||||
else if (curses_is_text(wid))
|
||||
curses_parse_wid_colors(TEXT_WIN, iflags.wc_foregrnd_text, iflags.wc_backgrnd_text);
|
||||
curses_parse_wid_colors(TEXT_WIN, iflags.wcolors[wcolor_text].fg,
|
||||
iflags.wcolors[wcolor_text].bg);
|
||||
if (curses_is_menu(wid) || curses_is_text(wid)) {
|
||||
curses_start_menu(wid, MENU_BEHAVE_STANDARD);
|
||||
curses_add_wid(wid);
|
||||
|
||||
@@ -179,15 +179,18 @@ curses_set_wid_colors(int wid, WINDOW *win)
|
||||
if (wid == TEXT_WIN || curses_is_text(wid)) {
|
||||
wid = TEXT_WIN;
|
||||
if (!nhwins[wid].clr_inited)
|
||||
curses_parse_wid_colors(wid, iflags.wc_foregrnd_text, iflags.wc_backgrnd_text);
|
||||
curses_parse_wid_colors(wid, iflags.wcolors[wcolor_text].fg,
|
||||
iflags.wcolors[wcolor_text].bg);
|
||||
} else if (wid == MENU_WIN || curses_is_menu(wid)) {
|
||||
wid = MENU_WIN;
|
||||
if (!nhwins[wid].clr_inited)
|
||||
curses_parse_wid_colors(wid, iflags.wc_foregrnd_menu, iflags.wc_backgrnd_menu);
|
||||
curses_parse_wid_colors(wid, iflags.wcolors[wcolor_menu].fg,
|
||||
iflags.wcolors[wcolor_menu].bg);
|
||||
}
|
||||
/* FIXME: colors and nhwins[] entry for perm invent window */
|
||||
if (nhwins[wid].clr_inited > 0) {
|
||||
wbkgd(win ? win : nhwins[wid].curwin, COLOR_PAIR(nhwins[wid].colorpair));
|
||||
wbkgd(win ? win : nhwins[wid].curwin,
|
||||
COLOR_PAIR(nhwins[wid].colorpair));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -361,12 +364,14 @@ curses_add_nhwin(winid wid, int height, int width, int y, int x,
|
||||
switch (wid) {
|
||||
case MESSAGE_WIN:
|
||||
messagewin = win;
|
||||
curses_parse_wid_colors(wid, iflags.wc_foregrnd_message, iflags.wc_backgrnd_message);
|
||||
curses_parse_wid_colors(wid, iflags.wcolors[wcolor_message].fg,
|
||||
iflags.wcolors[wcolor_message].bg);
|
||||
curses_set_wid_colors(wid, NULL);
|
||||
break;
|
||||
case STATUS_WIN:
|
||||
statuswin = win;
|
||||
curses_parse_wid_colors(wid, iflags.wc_foregrnd_status, iflags.wc_backgrnd_status);
|
||||
curses_parse_wid_colors(wid, iflags.wcolors[wcolor_status].fg,
|
||||
iflags.wcolors[wcolor_status].bg);
|
||||
curses_set_wid_colors(wid, NULL);
|
||||
break;
|
||||
case MAP_WIN:
|
||||
|
||||
@@ -240,22 +240,22 @@ mswin_init_nhwindows(int *argc, char **argv)
|
||||
| WC_FONTSIZ_TEXT | WC_VARY_MSGCOUNT,
|
||||
set_in_game);
|
||||
|
||||
mswin_color_from_string(iflags.wc_foregrnd_menu, &menu_fg_brush,
|
||||
&menu_fg_color);
|
||||
mswin_color_from_string(iflags.wc_foregrnd_message, &message_fg_brush,
|
||||
&message_fg_color);
|
||||
mswin_color_from_string(iflags.wc_foregrnd_status, &status_fg_brush,
|
||||
&status_fg_color);
|
||||
mswin_color_from_string(iflags.wc_foregrnd_text, &text_fg_brush,
|
||||
&text_fg_color);
|
||||
mswin_color_from_string(iflags.wc_backgrnd_menu, &menu_bg_brush,
|
||||
&menu_bg_color);
|
||||
mswin_color_from_string(iflags.wc_backgrnd_message, &message_bg_brush,
|
||||
&message_bg_color);
|
||||
mswin_color_from_string(iflags.wc_backgrnd_status, &status_bg_brush,
|
||||
&status_bg_color);
|
||||
mswin_color_from_string(iflags.wc_backgrnd_text, &text_bg_brush,
|
||||
&text_bg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_menu].fg,
|
||||
&menu_fg_brush, &menu_fg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_message].fg,
|
||||
&message_fg_brush, &message_fg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_status].fg,
|
||||
&status_fg_brush, &status_fg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_text].fg,
|
||||
&text_fg_brush, &text_fg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_menu].bg,
|
||||
&menu_bg_brush, &menu_bg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_message].bg,
|
||||
&message_bg_brush, &message_bg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_status].bg,
|
||||
&status_bg_brush, &status_bg_color);
|
||||
mswin_color_from_string(iflags.wcolors[wcolor_text].bg,
|
||||
&text_bg_brush, &text_bg_color);
|
||||
|
||||
if (iflags.wc_splash_screen)
|
||||
mswin_display_splash_window(FALSE);
|
||||
|
||||
Reference in New Issue
Block a user