window port interface change - add mbehavior flags to start_menu()
Provide a way to communicate additional behaviors and/or appearances desired from NetHack window port menus. This is foundation work for changes to follow at a future date.
This commit is contained in:
@@ -767,7 +767,7 @@ amii_get_ext_cmd(void)
|
||||
#ifdef EXTMENU
|
||||
if (iflags.extmenu) {
|
||||
win = amii_create_nhwindow(NHW_MENU);
|
||||
amii_start_menu(win);
|
||||
amii_start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
pline("#");
|
||||
amii_putstr(WIN_MESSAGE, -1, " ");
|
||||
|
||||
@@ -830,7 +830,7 @@ amii_get_ext_cmd(void)
|
||||
}
|
||||
|
||||
win = amii_create_nhwindow(NHW_MENU);
|
||||
amii_start_menu(win);
|
||||
amii_start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
|
||||
for (i = 0; extcmdlist[i].ef_txt != NULL; ++i) {
|
||||
id.a_char = extcmdlist[i].ef_txt[0];
|
||||
@@ -1389,7 +1389,7 @@ amii_player_selection()
|
||||
} else {
|
||||
/* Prompt for a role */
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; roles[i].name.m; i++) {
|
||||
if (ok_role(i, flags.initrace, flags.initgend,
|
||||
@@ -1480,7 +1480,7 @@ amii_player_selection()
|
||||
/* Permit the user to pick, if there is more than one */
|
||||
if (n > 1) {
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; races[i].noun; i++)
|
||||
if (ok_race(flags.initrole, i, flags.initgend,
|
||||
@@ -1553,7 +1553,7 @@ amii_player_selection()
|
||||
/* Permit the user to pick, if there is more than one */
|
||||
if (n > 1) {
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; i < ROLE_GENDERS; i++)
|
||||
if (ok_gend(flags.initrole, flags.initrace, i,
|
||||
@@ -1624,7 +1624,7 @@ amii_player_selection()
|
||||
/* Permit the user to pick, if there is more than one */
|
||||
if (n > 1) {
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; i < ROLE_ALIGNS; i++)
|
||||
if (ok_align(flags.initrole, flags.initrace,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/* winami.c */
|
||||
void FDECL(amii_raw_print, (const char *));
|
||||
void FDECL(amii_raw_print_bold, (const char *));
|
||||
void FDECL(amii_start_menu, (winid ));
|
||||
void FDECL(amii_start_menu, (winid , unsigned long ));
|
||||
void FDECL(amii_add_menu, (winid , char , int , const char *, unsigned int));
|
||||
void FDECL(amii_end_menu, (winid , char , const char * , const char *));
|
||||
char FDECL(amii_select_menu, (winid ));
|
||||
|
||||
@@ -9,8 +9,10 @@
|
||||
|
||||
/* Start building the text for a menu */
|
||||
void
|
||||
amii_start_menu(window)
|
||||
amii_start_menu(window, mbehavior)
|
||||
register winid window;
|
||||
unsigned long mbehavior UNUSED;
|
||||
|
||||
{
|
||||
register int i;
|
||||
register struct amii_WinDesc *cw;
|
||||
|
||||
@@ -39,7 +39,7 @@ void amii_get_nh_event(void);
|
||||
void amii_getret(void);
|
||||
|
||||
/* winmenu.c */
|
||||
void amii_start_menu(winid window);
|
||||
void amii_start_menu(winid window, unsigned long);
|
||||
void FDECL(amii_add_menu, (winid, int, const anything *, CHAR_P, CHAR_P, int,
|
||||
const char *, unsigned int));
|
||||
void FDECL(amii_end_menu, (winid, const char *));
|
||||
|
||||
@@ -1929,7 +1929,7 @@ mac_nh_poskey(int *a, int *b, int *c)
|
||||
}
|
||||
|
||||
void
|
||||
mac_start_menu(winid win)
|
||||
mac_start_menu(winid win, unsigned long mbehavior)
|
||||
{
|
||||
HideWindow(theWindows[win].its_window);
|
||||
mac_clear_nhwindow(win);
|
||||
|
||||
@@ -1108,7 +1108,7 @@ ActivateCell(HWND hWnd, int cell)
|
||||
pSet = nhcmdset_default;
|
||||
|
||||
wid = mswin_create_nhwindow(NHW_MENU);
|
||||
mswin_start_menu(wid);
|
||||
mswin_start_menu(wid, MENU_BEHAVE_STANDARD);
|
||||
for (i = 0; i < nhcmdset_count(pSet); i++) {
|
||||
any.a_void = nhcmdset_get(pSet, i);
|
||||
mswin_add_menu(wid, NO_GLYPH, &any, 'a' + i, 0, ATR_NONE,
|
||||
|
||||
@@ -366,7 +366,7 @@ prompt_for_player_selection(void)
|
||||
/* tty_putstr(BASE_WINDOW, 0, "Choosing Character's Role"); */
|
||||
/* Prompt for a role */
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; roles[i].name.m; i++) {
|
||||
if (ok_role(i, flags.initrace, flags.initgend,
|
||||
@@ -458,7 +458,7 @@ prompt_for_player_selection(void)
|
||||
/* tty_clear_nhwindow(BASE_WINDOW); */
|
||||
/* tty_putstr(BASE_WINDOW, 0, "Choosing Race"); */
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; races[i].noun; i++)
|
||||
if (ok_race(flags.initrole, i, flags.initgend,
|
||||
@@ -532,7 +532,7 @@ prompt_for_player_selection(void)
|
||||
/* tty_clear_nhwindow(BASE_WINDOW); */
|
||||
/* tty_putstr(BASE_WINDOW, 0, "Choosing Gender"); */
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; i < ROLE_GENDERS; i++)
|
||||
if (ok_gend(flags.initrole, flags.initrace, i,
|
||||
@@ -605,7 +605,7 @@ prompt_for_player_selection(void)
|
||||
/* tty_clear_nhwindow(BASE_WINDOW); */
|
||||
/* tty_putstr(BASE_WINDOW, 0, "Choosing Alignment"); */
|
||||
win = create_nhwindow(NHW_MENU);
|
||||
start_menu(win);
|
||||
start_menu(win, MENU_BEHAVE_STANDARD);
|
||||
any.a_void = 0; /* zero out all bits */
|
||||
for (i = 0; i < ROLE_ALIGNS; i++)
|
||||
if (ok_align(flags.initrole, flags.initrace,
|
||||
@@ -1005,9 +1005,9 @@ mswin_display_file(const char *filename, BOOLEAN_P must_exist)
|
||||
be used for menus.
|
||||
*/
|
||||
void
|
||||
mswin_start_menu(winid wid)
|
||||
mswin_start_menu(winid wid, unsigned long mbehavior)
|
||||
{
|
||||
logDebug("mswin_start_menu(%d)\n", wid);
|
||||
logDebug("mswin_start_menu(%d, %lu)\n", wid, mbehavior);
|
||||
if ((wid >= 0) && (wid < MAXWINDOWS)) {
|
||||
if (GetNHApp()->windowlist[wid].win == NULL
|
||||
&& GetNHApp()->windowlist[wid].type == NHW_MENU) {
|
||||
|
||||
@@ -128,7 +128,7 @@ void mswin_curs(winid wid, int x, int y);
|
||||
void mswin_putstr(winid wid, int attr, const char *text);
|
||||
void mswin_putstr_ex(winid wid, int attr, const char *text, boolean append);
|
||||
void mswin_display_file(const char *filename, BOOLEAN_P must_exist);
|
||||
void mswin_start_menu(winid wid);
|
||||
void mswin_start_menu(winid wid, unsigned long);
|
||||
void mswin_add_menu(winid wid, int glyph, const ANY_P *identifier,
|
||||
CHAR_P accelerator, CHAR_P group_accel, int attr,
|
||||
const char *str, unsigned int itemflags);
|
||||
|
||||
Reference in New Issue
Block a user