groundwork for window port interface change to add_menu
groundwork only - window port interface change This changes the last parameter for add_menu() from a boolean to an unsigned int, to allow additional itemflags in future beyond just the "preselected" that the original boolean offered. There shouldn't be any functionality changes with this groundwork-only change, and if there are it is unintentional and should be reported.
This commit is contained in:
@@ -34,6 +34,7 @@ typedef struct mswin_menu_item {
|
||||
int attr;
|
||||
char str[NHMENU_STR_SIZE];
|
||||
BOOLEAN_P presel;
|
||||
unsigned int itemflags;
|
||||
int count;
|
||||
BOOL has_focus;
|
||||
} NHMenuItem, *PNHMenuItem;
|
||||
@@ -627,6 +628,7 @@ onMSNHCommand(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
||||
/* prevent & being interpreted as a mnemonic start */
|
||||
strNsubst(data->menu.items[new_item].str, "&", "&&", 0);
|
||||
data->menu.items[new_item].presel = msg_data->presel;
|
||||
data->menu.items[new_item].itemflags = msg_data->itemflags;
|
||||
|
||||
/* calculate tabstop size */
|
||||
hDC = GetDC(hWnd);
|
||||
|
||||
@@ -53,6 +53,7 @@ typedef struct mswin_nhmsg_add_menu {
|
||||
int attr;
|
||||
const char *str;
|
||||
BOOLEAN_P presel;
|
||||
unsigned int itemflags;
|
||||
} MSNHMsgAddMenu, *PMSNHMsgAddMenu;
|
||||
|
||||
typedef struct mswin_nhmsg_cursor {
|
||||
|
||||
+18
-16
@@ -429,7 +429,7 @@ prompt_for_player_selection(void)
|
||||
Strcpy(rolenamebuf, roles[i].name.m);
|
||||
}
|
||||
add_menu(win, NO_GLYPH, &any, thisch, 0, ATR_NONE,
|
||||
an(rolenamebuf), MENU_UNSELECTED);
|
||||
an(rolenamebuf), MENU_ITEMFLAGS_NONE);
|
||||
lastch = thisch;
|
||||
}
|
||||
}
|
||||
@@ -438,10 +438,10 @@ prompt_for_player_selection(void)
|
||||
if (any.a_int == 0) /* must be non-zero */
|
||||
any.a_int = randrole(FALSE) + 1;
|
||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = i + 1; /* must be non-zero */
|
||||
add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(pbuf, "Pick a role for your %s", plbuf);
|
||||
end_menu(win, pbuf);
|
||||
n = select_menu(win, PICK_ONE, &selected);
|
||||
@@ -504,17 +504,17 @@ prompt_for_player_selection(void)
|
||||
flags.initalign)) {
|
||||
any.a_int = i + 1; /* must be non-zero */
|
||||
add_menu(win, NO_GLYPH, &any, races[i].noun[0], 0,
|
||||
ATR_NONE, races[i].noun, MENU_UNSELECTED);
|
||||
ATR_NONE, races[i].noun, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_int = pick_race(flags.initrole, flags.initgend,
|
||||
flags.initalign, PICK_RANDOM) + 1;
|
||||
if (any.a_int == 0) /* must be non-zero */
|
||||
any.a_int = randrace(flags.initrole) + 1;
|
||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = i + 1; /* must be non-zero */
|
||||
add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(pbuf, "Pick the race of your %s", plbuf);
|
||||
end_menu(win, pbuf);
|
||||
n = select_menu(win, PICK_ONE, &selected);
|
||||
@@ -578,17 +578,17 @@ prompt_for_player_selection(void)
|
||||
flags.initalign)) {
|
||||
any.a_int = i + 1;
|
||||
add_menu(win, NO_GLYPH, &any, genders[i].adj[0], 0,
|
||||
ATR_NONE, genders[i].adj, MENU_UNSELECTED);
|
||||
ATR_NONE, genders[i].adj, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_int = pick_gend(flags.initrole, flags.initrace,
|
||||
flags.initalign, PICK_RANDOM) + 1;
|
||||
if (any.a_int == 0) /* must be non-zero */
|
||||
any.a_int = randgend(flags.initrole, flags.initrace) + 1;
|
||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = i + 1; /* must be non-zero */
|
||||
add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(pbuf, "Pick the gender of your %s", plbuf);
|
||||
end_menu(win, pbuf);
|
||||
n = select_menu(win, PICK_ONE, &selected);
|
||||
@@ -651,17 +651,17 @@ prompt_for_player_selection(void)
|
||||
flags.initgend, i)) {
|
||||
any.a_int = i + 1;
|
||||
add_menu(win, NO_GLYPH, &any, aligns[i].adj[0], 0,
|
||||
ATR_NONE, aligns[i].adj, MENU_UNSELECTED);
|
||||
ATR_NONE, aligns[i].adj, MENU_ITEMFLAGS_NONE);
|
||||
}
|
||||
any.a_int = pick_align(flags.initrole, flags.initrace,
|
||||
flags.initgend, PICK_RANDOM) + 1;
|
||||
if (any.a_int == 0) /* must be non-zero */
|
||||
any.a_int = randalign(flags.initrole, flags.initrace) + 1;
|
||||
add_menu(win, NO_GLYPH, &any, '*', 0, ATR_NONE, "Random",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
any.a_int = i + 1; /* must be non-zero */
|
||||
add_menu(win, NO_GLYPH, &any, 'q', 0, ATR_NONE, "Quit",
|
||||
MENU_UNSELECTED);
|
||||
MENU_ITEMFLAGS_NONE);
|
||||
Sprintf(pbuf, "Pick the alignment of your %s", plbuf);
|
||||
end_menu(win, pbuf);
|
||||
n = select_menu(win, PICK_ONE, &selected);
|
||||
@@ -1095,7 +1095,7 @@ mswin_start_menu(winid wid)
|
||||
/*
|
||||
add_menu(windid window, int glyph, const anything identifier,
|
||||
char accelerator, char groupacc,
|
||||
int attr, char *str, boolean preselected)
|
||||
int attr, char *str, unsigned int itemflags)
|
||||
-- Add a text line str to the given menu window. If
|
||||
identifier
|
||||
is 0, then the line cannot be selected (e.g. a title).
|
||||
@@ -1127,11 +1127,12 @@ identifier
|
||||
void
|
||||
mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
|
||||
CHAR_P accelerator, CHAR_P group_accel, int attr,
|
||||
const char *str, BOOLEAN_P presel)
|
||||
const char *str, unsigned int itemflags)
|
||||
{
|
||||
logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %d)\n", wid, glyph,
|
||||
boolean presel = ((itemflags & MENU_ITEMFLAGS_SELECTED) != 0);
|
||||
logDebug("mswin_add_menu(%d, %d, %p, %c, %c, %d, %s, %u)\n", wid, glyph,
|
||||
identifier, (char) accelerator, (char) group_accel, attr, str,
|
||||
presel);
|
||||
itemflags);
|
||||
if ((wid >= 0) && (wid < MAXWINDOWS)
|
||||
&& (GetNHApp()->windowlist[wid].win != NULL)) {
|
||||
MSNHMsgAddMenu data;
|
||||
@@ -1143,6 +1144,7 @@ mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
|
||||
data.attr = attr;
|
||||
data.str = str;
|
||||
data.presel = presel;
|
||||
data.itemflags = itemflags;
|
||||
|
||||
SendMessage(GetNHApp()->windowlist[wid].win, WM_MSNH_COMMAND,
|
||||
(WPARAM) MSNH_MSG_ADDMENU, (LPARAM) &data);
|
||||
|
||||
+1
-1
@@ -155,7 +155,7 @@ void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
|
||||
void mswin_start_menu(winid wid);
|
||||
void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
|
||||
CHAR_P accelerator, CHAR_P group_accel, int attr,
|
||||
const char *str, BOOLEAN_P presel);
|
||||
const char *str, unsigned int itemflags);
|
||||
void mswin_end_menu(winid wid, const char *prompt);
|
||||
int mswin_select_menu(winid wid, int how, MENU_ITEM_P **selected);
|
||||
void mswin_update_inventory(void);
|
||||
|
||||
Reference in New Issue
Block a user