Add menucolors
-Add a boolean option menucolors to toggle menu color -Add MENUCOLOR -config file option TODO: -Better support for win32 -Support more windowports -Update Guidebook -Allow changing menucolor lines in-game
This commit is contained in:
@@ -1462,6 +1462,8 @@ struct WinDesc *cw;
|
||||
for (page_lines = 0, curr = page_start;
|
||||
curr != page_end;
|
||||
page_lines++, curr = curr->next) {
|
||||
int color = NO_COLOR, attr = ATR_NONE;
|
||||
boolean menucolr = FALSE;
|
||||
if (curr->selector)
|
||||
*rp++ = curr->selector;
|
||||
|
||||
@@ -1477,6 +1479,11 @@ 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);
|
||||
if (color != NO_COLOR) term_start_color(color);
|
||||
} else
|
||||
term_start_attr(curr->attr);
|
||||
for (n = 0, cp = curr->str;
|
||||
#ifndef WIN32CON
|
||||
@@ -1494,6 +1501,10 @@ struct WinDesc *cw;
|
||||
(void) putchar('#'); /* count selected */
|
||||
} else
|
||||
(void) putchar(*cp);
|
||||
if (iflags.use_menu_color && menucolr) {
|
||||
if (color != NO_COLOR) term_end_color();
|
||||
term_end_attr(attr);
|
||||
} else
|
||||
term_end_attr(curr->attr);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -45,7 +45,6 @@ static void nhcoord2display(PNHMapWindow data, int x, int y, LPRECT lpOut);
|
||||
#if (VERSION_MAJOR < 4) && (VERSION_MINOR < 4) && (PATCHLEVEL < 2)
|
||||
static void nhglyph2charcolor(short glyph, uchar* ch, int* color);
|
||||
#endif
|
||||
static COLORREF nhcolor_to_RGB(int c);
|
||||
|
||||
HWND mswin_init_map_window () {
|
||||
static int run_once = 0;
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "global.h"
|
||||
|
||||
|
||||
COLORREF nhcolor_to_RGB (int c);
|
||||
HWND mswin_init_map_window (void);
|
||||
void mswin_map_stretch(HWND hWnd, LPSIZE lpsz, BOOL redraw);
|
||||
int mswin_map_mode(HWND hWnd, int mode);
|
||||
|
||||
@@ -917,6 +917,9 @@ BOOL onDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
int column;
|
||||
int spacing = 0;
|
||||
|
||||
int color = NO_COLOR, attr;
|
||||
boolean menucolr = FALSE;
|
||||
|
||||
lpdis = (LPDRAWITEMSTRUCT) lParam;
|
||||
|
||||
/* If there are no list box items, skip this message. */
|
||||
@@ -967,6 +970,13 @@ BOOL onDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
buf[0] = item->accelerator;
|
||||
buf[1] = '\x0';
|
||||
|
||||
if (iflags.use_menu_color &&
|
||||
(menucolr = get_menu_coloring(item->str, &color,&attr))) {
|
||||
/* TODO: use attr too */
|
||||
if (color != NO_COLOR)
|
||||
SetTextColor(lpdis->hDC, nhcolor_to_RGB(color));
|
||||
}
|
||||
|
||||
SetRect( &drawRect, x, lpdis->rcItem.top, lpdis->rcItem.right, lpdis->rcItem.bottom );
|
||||
DrawText(lpdis->hDC, NH_A2W(buf, wbuf, 2), 1, &drawRect, DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_NOPREFIX);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user