X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xoptions.c;h=22aac1efade98fb9e5be2d1dea7da31f41faaf48;hb=6ff6104ef891b0a81b442f3228c1f4278d23e3e9;hp=8b9b644da43982d2c38110c6683a7a4209ba22aa;hpb=62b9ce815b3e4ad57092f321c293895aeea4bf45;p=xboard.git diff --git a/xoptions.c b/xoptions.c index 8b9b644..22aac1e 100644 --- a/xoptions.c +++ b/xoptions.c @@ -220,13 +220,13 @@ CreateComboPopup (Widget parent, Option *option, int n) int i=0, j; Widget menu, entry; Arg args[16]; + char **mb = (char **) option->textValue; + if(mb[0] == NULL) return; // avoid empty menus, as they cause crash menu = XtCreatePopupShell(option->name, simpleMenuWidgetClass, parent, NULL, 0); j = 0; XtSetArg(args[j], XtNwidth, 100); j++; -// XtSetArg(args[j], XtNright, XtChainRight); j++; - char **mb = (char **) option->textValue; while (mb[i] != NULL) { if (option->min & NO_GETTEXT) @@ -1095,8 +1095,9 @@ GenericPopUp (Option *option, char *title, int dlgNr) XtSetArg(args[j], XtNfromHoriz, dialog); j++; XtSetArg(args[j], XtNborderWidth, 1); j++; XtSetArg(args[j], XtNwidth, w); j++; + XtSetArg(args[j], XtNheight, textHeight); j++; // [HGM] use message widget if(option[i].type == TextBox && option[i].min) { - XtSetArg(args[j], XtNheight, option[i].min); j++; + XtSetArg(args[j-1], XtNheight, option[i].min); // overwrite if(option[i].value & 1) { XtSetArg(args[j], XtNscrollVertical, XawtextScrollAlways); j++; } if(option[i].value & 2) { XtSetArg(args[j], XtNscrollHorizontal, XawtextScrollAlways); j++; } if(option[i].value & 4) { XtSetArg(args[j], XtNautoFill, True); j++; } @@ -1153,9 +1154,19 @@ GenericPopUp (Option *option, char *title, int dlgNr) break; case CheckBox: if(!currentCps) option[i].value = *(Boolean*)option[i].target; - j=0; + j=0; // space holder XtSetArg(args[j], XtNfromVert, last); j++; XtSetArg(args[j], XtNwidth, 10); j++; + XtSetArg(args[j], XtNheight, textHeight-22); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; +printf("%d\n",textHeight); + if(textHeight < 24) dialog = last; else + dialog = XtCreateManagedWidget(" ", labelWidgetClass, form, args, j); + j=0; + XtSetArg(args[j], XtNfromVert, dialog); j++; + XtSetArg(args[j], XtNwidth, 10); j++; XtSetArg(args[j], XtNheight, 10); j++; XtSetArg(args[j], XtNleft, XtChainLeft); j++; XtSetArg(args[j], XtNright, XtChainLeft); j++; @@ -1413,7 +1424,7 @@ OptionsProc (Widget w, XEvent *event, String *prms, Cardinal *nprms) void MatchOptionsProc (Widget w, XEvent *event, String *prms, Cardinal *nprms) { - NamesToList(firstChessProgramNames, engineList, engineMnemonic); + NamesToList(firstChessProgramNames, engineList, engineMnemonic, "all"); comboCallback = &AddToTourney; matchOptions[5].min = -(appData.pairingEngine[0] != NULLCHAR); // with pairing engine, allow Swiss ASSIGN(tfName, appData.tourneyFile[0] ? appData.tourneyFile : MakeName(appData.defName)); @@ -1742,7 +1753,7 @@ LoadEngineProc (Widget w, XEvent *event, String *prms, Cardinal *nprms) if(engineDir) free(engineDir); engineDir = strdup(""); if(nickName) free(nickName); nickName = strdup(""); if(params) free(params); params = strdup(""); - NamesToList(firstChessProgramNames, engineList, engineMnemonic); + NamesToList(firstChessProgramNames, engineList, engineMnemonic, "all"); GenericPopUp(installOptions, _("Load engine"), 0); }