]> granicus.if.org Git - nethack/commitdiff
selection of top,bottom,left, or right
authornethack.allison <nethack.allison>
Fri, 16 Aug 2002 02:34:12 +0000 (02:34 +0000)
committernethack.allison <nethack.allison>
Fri, 16 Aug 2002 02:34:12 +0000 (02:34 +0000)
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

index 7ff3d79cae92175823efabdca222eb088ea3acd6..c2e273664bbd61068ab1c8b031bba8d8932eeb51 100644 (file)
@@ -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;
 }