]> granicus.if.org Git - nethack/commitdiff
X11 menus
authorPatR <rankin@nethack.org>
Fri, 22 Jan 2016 07:47:42 +0000 (23:47 -0800)
committerPatR <rankin@nethack.org>
Fri, 22 Jan 2016 07:47:42 +0000 (23:47 -0800)
Make the six buttons (ok, cancel, all, none, invert, search) on
menus for X11 all have the same width.

'ok' should probably be changed to 'okay' to be consistent with
X11_getlin().  (Another inconsistency:  the extended commands
menu uses 'dismiss' rather than 'cancel'.)

win/X11/winmenu.c

index 7986f0d2904b3495004b7d11f4c7e4a66bdeed66..8fe7baec3aff57e9dc890f874b8a230482ffc05b 100644 (file)
@@ -1,4 +1,4 @@
-/* NetHack 3.6 winmenu.c       $NHDT-Date: 1432512809 2015/05/25 00:13:29 $  $NHDT-Branch: master $:$NHDT-Revision: 1.12 $ */
+/* NetHack 3.6 winmenu.c       $NHDT-Date: 1453448854 2016/01/22 07:47:34 $  $NHDT-Branch: NetHack-3.6.0 $:$NHDT-Revision: 1.13 $ */
 /* Copyright (c) Dean Luick, 1992                                */
 /* NetHack may be freely redistributed.  See license for details. */
 
@@ -739,10 +739,10 @@ menu_item **menu_list;
     Cardinal num_args;
     String *ptr;
     int retval;
-    Dimension v_pixel_width, v_pixel_height;
+    Dimension v_pixel_width, v_pixel_height, lblwidth[6], maxlblwidth;
     boolean labeled;
-    Widget viewport_widget, form, label, ok, cancel, all, none, invert,
-        search;
+    Widget viewport_widget, form, label,
+           ok, cancel, all, none, invert, search, lblwidget[6];
     Boolean sens;
 #ifdef USE_FWF
     Boolean *boolp;
@@ -866,6 +866,7 @@ menu_item **menu_list;
         /*
          * Create ok, cancel, all, none, invert, and search buttons..
          */
+        maxlblwidth = 0;
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNfromVert), label);
         num_args++;
@@ -880,6 +881,10 @@ menu_item **menu_list;
         ok = XtCreateManagedWidget("OK", commandWidgetClass, form, args,
                                    num_args);
         XtAddCallback(ok, XtNcallback, menu_ok, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[0]);
+        XtGetValues(lblwidget[0] = ok, args, ONE);
+        if (lblwidth[0] > maxlblwidth)
+            maxlblwidth = lblwidth[0];
 
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNfromVert), label);
@@ -899,6 +904,10 @@ menu_item **menu_list;
         cancel = XtCreateManagedWidget("cancel", commandWidgetClass, form,
                                        args, num_args);
         XtAddCallback(cancel, XtNcallback, menu_cancel, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[1]);
+        XtGetValues(lblwidget[1] = cancel, args, ONE);
+        if (lblwidth[1] > maxlblwidth)
+            maxlblwidth = lblwidth[1];
 
         sens = (how == PICK_ANY);
         num_args = 0;
@@ -919,6 +928,10 @@ menu_item **menu_list;
         all = XtCreateManagedWidget("all", commandWidgetClass, form, args,
                                     num_args);
         XtAddCallback(all, XtNcallback, menu_all, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[2]);
+        XtGetValues(lblwidget[2] = all, args, ONE);
+        if (lblwidth[2] > maxlblwidth)
+            maxlblwidth = lblwidth[2];
 
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNfromVert), label);
@@ -938,6 +951,10 @@ menu_item **menu_list;
         none = XtCreateManagedWidget("none", commandWidgetClass, form, args,
                                      num_args);
         XtAddCallback(none, XtNcallback, menu_none, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[3]);
+        XtGetValues(lblwidget[3] = none, args, ONE);
+        if (lblwidth[3] > maxlblwidth)
+            maxlblwidth = lblwidth[3];
 
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNfromVert), label);
@@ -957,6 +974,10 @@ menu_item **menu_list;
         invert = XtCreateManagedWidget("invert", commandWidgetClass, form,
                                        args, num_args);
         XtAddCallback(invert, XtNcallback, menu_invert, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[4]);
+        XtGetValues(lblwidget[4] = invert, args, ONE);
+        if (lblwidth[4] > maxlblwidth)
+            maxlblwidth = lblwidth[4];
 
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNfromVert), label);
@@ -976,6 +997,20 @@ menu_item **menu_list;
         search = XtCreateManagedWidget("search", commandWidgetClass, form,
                                        args, num_args);
         XtAddCallback(search, XtNcallback, menu_search, (XtPointer) wp);
+        XtSetArg(args[0], XtNwidth, &lblwidth[5]);
+        XtGetValues(lblwidget[5] = search, args, ONE);
+        if (lblwidth[5] > maxlblwidth)
+            maxlblwidth = lblwidth[5];
+
+        /* make all buttons be the same width */
+        {
+            int i;
+
+            XtSetArg(args[0], XtNwidth, maxlblwidth);
+            for (i = 0; i < 6; ++i)
+                if (lblwidth[i] < maxlblwidth)
+                    XtSetValues(lblwidget[i], args, ONE);
+        }
 
         num_args = 0;
         XtSetArg(args[num_args], nhStr(XtNallowVert), True);
@@ -986,10 +1021,9 @@ menu_item **menu_list;
         num_args++;
         XtSetArg(args[num_args], nhStr(XtNuseRight), True);
         num_args++;
-        /*
-                XtSetArg(args[num_args], nhStr(XtNforceBars), True);
-           num_args++;
-        */
+#if 0
+        XtSetArg(args[num_args], nhStr(XtNforceBars), True); num_args++;
+#endif
         XtSetArg(args[num_args], nhStr(XtNfromVert), all);
         num_args++;
         XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop);