Add logo widgets in main board window
[xboard.git] / xoptions.c
index 7d0c864..55a3935 100644 (file)
@@ -239,12 +239,12 @@ HighlightWithScroll (Option *opt, int sel, int max)
     float top, bottom, f, g;
     HighlightListBoxItem(opt, sel);
     if(!ReadScroll(opt, &top, &bottom)) return; // no scroll bar
-    bottom = bottom*max - 1.;
+    bottom = bottom*max - 1.f;
     f = g = top;
     top *= max;
-    if(sel > (top + 3*bottom)/4) f = (sel - 0.75*(bottom-top))/max; else
-    if(sel < (3*top + bottom)/4) f = (sel - 0.25*(bottom-top))/max;
-    if(f < 0.) f = 0.; if(f + 1./max > 1.) f = 1. - 1./max;
+    if(sel > (top + 3*bottom)/4) f = (sel - 0.75f*(bottom-top))/max; else
+    if(sel < (3*top + bottom)/4) f = (sel - 0.25f*(bottom-top))/max;
+    if(f < 0.f) f = 0.; if(f + 1.f/max > 1.f) f = 1. - 1./max;
     if(f != g) SetScroll(opt, f);
 }
 
@@ -359,7 +359,7 @@ CreateMenuItem (Widget menu, char *msg, XtCallbackProc CB, int n)
 static Widget
 CreateComboPopup (Widget parent, Option *opt, int n, int fromList, int def)
 {   // fromList determines if the item texts are taken from a list of strings, or from a menu table
-    int i, j;
+    int i;
     Widget menu, entry;
     Arg arg;
     MenuItem *mb = (MenuItem *) opt->choice;
@@ -370,7 +370,7 @@ CreateComboPopup (Widget parent, Option *opt, int n, int fromList, int def)
 
     for (i=0; 1; i++) 
       {
-       char *msg = fromList ? list[i] : mb[i].string, *msg2;
+       char *msg = fromList ? list[i] : mb[i].string;
        if(!msg) break;
        entry = CreateMenuItem(menu, opt->min & NO_GETTEXT ? msg : _(msg), (XtCallbackProc) ComboSelect, (n<<16)+i);
        if(!fromList) mb[i].handle = (void*) entry; // save item ID, for enabling / checkmarking
@@ -628,7 +628,7 @@ WheelProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
     int j=0, n = atoi(prms[0]);
     static char *params[3] = { "", "Continuous", "Proportional" };
     Arg args[16];
-    float f, h, top;
+    float h, top;
     Widget v;
     if(!n) { // transient dialogs also use this for list-selection callback
        n = prms[1][0]-'0';
@@ -641,7 +641,7 @@ WheelProc (Widget w, XEvent *event, String *prms, Cardinal *nprms)
     XtSetArg(args[j], XtNshown, &h); j++;
     XtSetArg(args[j], XtNtopOfThumb, &top); j++;
     XtGetValues(v, args, j);
-    top += 0.1*h*n; if(top < 0.) top = 0.;
+    top += 0.1f*h*n; if(top < 0.f) top = 0.;
     XtCallActionProc(v, "StartScroll", event, params+1, 1);
     XawScrollbarSetThumb(v, top, -1.0);
     XtCallActionProc(v, "NotifyThumb", event, params, 0);
@@ -660,7 +660,7 @@ static char scrollTranslations[] =
 static void
 SqueezeIntoBox (Option *opt, int nr, int width)
 {   // size buttons in bar to fit, clipping button names where necessary
-    int i, j, wtot = 0;
+    int i, wtot = 0;
     Dimension widths[20], oldWidths[20];
     Arg arg;
     for(i=1; i<nr; i++) {
@@ -728,7 +728,7 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
     char def[MSG_SIZ], *msg, engineDlg = (currentCps != NULL && dlgNr != BrowserDlg);
     static char pane[6] = "paneX";
     Widget texts[100], forelast = NULL, anchor, widest, lastrow = NULL, browse = NULL;
-    Dimension bWidth = 50, m;
+    Dimension bWidth = 50;
 
     if(dlgNr < PromoDlg && shellUp[dlgNr]) return 0; // already up
     if(dlgNr && dlgNr < PromoDlg && shells[dlgNr]) { // reusable, and used before (but popped down)
@@ -895,7 +895,7 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
                forelast = lastrow;
            } else chain = 0, shrink = FALSE;
            j = SetPositionAndSize(args, last, lastrow, 3 /* border */,
-                                  option[i].max /* w */, shrink ? textHeight : 0 /* h */, chain /* chain */);
+                                  option[i].max /* w */, shrink ? textHeight : 0 /* h */, option[i].min & 0xE | chain /* chain */);
            XtSetArg(args[j], XtNlabel, _(option[i].name));  j++;
            if(option[i].textValue) { // special for buttons of New Variant dialog
                XtSetArg(args[j], XtNsensitive, appData.noChessProgram || option[i].value < 0
@@ -962,6 +962,7 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
                (last = XtCreateManagedWidget("graph", widgetClass, form, args, j));
            XtAddEventHandler(last, ExposureMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask, False,
                      (XtEventHandler) GraphEventProc, option[i].target); // mandatory user-supplied expose handler
+           if(option[i].min & SAME_ROW) last = forelast, forelast = lastrow;
            break;
          case PopUp: // note: used only after Graph, so 'last' refers to the Graph widget
            option[i].handle = (void*) CreateComboPopup(last, option + i, i + 256*dlgNr, TRUE, option[i].value);