From bbd3671740e4a0ddb60a890a38d9529bf4a627cc Mon Sep 17 00:00:00 2001 From: "nethack.allison" Date: Fri, 16 Aug 2002 02:34:12 +0000 Subject: [PATCH] selection of top,bottom,left, or right for align_message and align_status, so that you don't have to type in the word top or bottom or left or right. --- src/options.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/src/options.c b/src/options.c index 7ff3d79ca..c2e273664 100644 --- a/src/options.c +++ b/src/options.c @@ -2554,6 +2554,38 @@ boolean setinitial,setfromfile; retval = TRUE; } #endif + else if (!strcmp("align_message", optname) || + !strcmp("align_status", optname)) { + menu_item *window_pick = (menu_item *)0; + char abuf[BUFSZ]; + boolean msg = (*(optname+6) == 'm'); + + tmpwin = create_nhwindow(NHW_MENU); + start_menu(tmpwin); + any.a_int = ALIGN_TOP; + add_menu(tmpwin, NO_GLYPH, &any, 't', 0, + ATR_NONE, "top", MENU_UNSELECTED); + any.a_int = ALIGN_BOTTOM; + add_menu(tmpwin, NO_GLYPH, &any, 'b', 0, + ATR_NONE, "bottom", MENU_UNSELECTED); + any.a_int = ALIGN_LEFT; + add_menu(tmpwin, NO_GLYPH, &any, 'l', 0, + ATR_NONE, "left", MENU_UNSELECTED); + any.a_int = ALIGN_RIGHT; + add_menu(tmpwin, NO_GLYPH, &any, 'r', 0, + ATR_NONE, "right", MENU_UNSELECTED); + Sprintf(abuf, "Select %s window placement relative to the map:", + msg ? "message" : "status"); + end_menu(tmpwin, abuf); + if (select_menu(tmpwin, PICK_ONE, &window_pick) > 0) { + int reslt = window_pick->item.a_int; + if (msg) iflags.wc_align_message = reslt; + else iflags.wc_align_status = reslt; + free((genericptr_t)window_pick); + } + destroy_nhwindow(tmpwin); + retval = TRUE; + } return retval; }