X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xoptions.c;h=3d220f1a86bba986bdd5c1add286edd5bea03fd3;hb=134a2804bec204c21bceac7a5f99c71b59501370;hp=0ace8b671e5d85aa56dcdd6a5422228c638447aa;hpb=b0589092225d890ae15ca64677a4b0dbbb370877;p=xboard.git diff --git a/xoptions.c b/xoptions.c index 0ace8b6..3d220f1 100644 --- a/xoptions.c +++ b/xoptions.c @@ -83,6 +83,7 @@ extern char *getenv(); // [HGM] the following code for makng menu popups was cloned from the FileNamePopUp routines static Widget previous = NULL; +extern Pixel timerBackgroundPixel; void SetFocus (Widget w, XtPointer data, XEvent *event, Boolean *b) @@ -219,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) @@ -310,7 +311,7 @@ char *engineName, *engineDir, *engineChoice, *engineLine, *nickName, *params, *t Boolean isUCI, hasBook, storeVariant, v1, addToList, useNick; extern Option installOptions[], matchOptions[]; char *engineNr[] = { N_("First Engine"), N_("Second Engine"), NULL }; -char *engineList[100] = {" "}, *engineMnemonic[100] = {""}; +char *engineList[MAXENGINES] = {" "}, *engineMnemonic[MAXENGINES] = {""}; int AppendText (Option *opt, char *s) @@ -640,6 +641,7 @@ Option saveOptions[] = { { 0, 0, 0, NULL, (void*) &appData.savePositionFile, ".fen", NULL, FileName, N_("Save Final Positions on File:") }, { 0, 0, 0, NULL, (void*) &appData.pgnEventHeader, "", NULL, TextBox, N_("PGN Event Header:") }, { 0, 0, 0, NULL, (void*) &appData.oldSaveStyle, "", NULL, CheckBox, N_("Old Save Style (as opposed to PGN)") }, +{ 0, 0, 0, NULL, (void*) &appData.numberTag, "", NULL, CheckBox, N_("Include Number Tag in tourney PGN") }, { 0, 0, 0, NULL, (void*) &appData.saveExtendedInfoInPGN, "", NULL, CheckBox, N_("Save Score/Depth Info in PGN") }, { 0, 0, 0, NULL, (void*) &appData.saveOutOfBookInfo, "", NULL, CheckBox, N_("Save Out-of-Book Info in PGN ") }, { 0, 1, 0, NULL, NULL, "", NULL, EndMark , "" } @@ -727,7 +729,7 @@ SetColor (char *colorName, Option *box) } else { buttonColor = *(Pixel *) vTo.addr; } - } else buttonColor = (Pixel) 0; + } else buttonColor = timerBackgroundPixel; XtSetArg(args[0], XtNbackground, buttonColor);; XtSetValues(box->handle, args, 1); } @@ -1129,9 +1131,10 @@ GenericPopUp (Option *option, char *title, int dlgNr) msg = _("browse"); w = 0; /* automatically scale to width of text */ XtSetArg(args[j], XtNwidth, (XtArgVal) NULL ); j++; + if(textHeight) XtSetArg(args[j], XtNheight, textHeight), j++; } else { w = 20; msg = "+"; - XtSetArg(args[j], XtNheight, 10); j++; + XtSetArg(args[j], XtNheight, textHeight/2); j++; XtSetArg(args[j], XtNwidth, w); j++; } edit = XtCreateManagedWidget(msg, commandWidgetClass, form, args, j); @@ -1143,7 +1146,8 @@ GenericPopUp (Option *option, char *title, int dlgNr) j=0; XtSetArg(args[j], XtNfromVert, edit); j++; XtSetArg(args[j], XtNfromHoriz, last); j++; - XtSetArg(args[j], XtNheight, 10); j++; + XtSetArg(args[j], XtNvertDistance, -1); j++; + XtSetArg(args[j], XtNheight, textHeight/2); j++; XtSetArg(args[j], XtNwidth, 20); j++; XtSetArg(args[j], XtNleft, XtChainRight); j++; XtSetArg(args[j], XtNright, XtChainRight); j++; @@ -1154,8 +1158,9 @@ GenericPopUp (Option *option, char *title, int dlgNr) if(!currentCps) option[i].value = *(Boolean*)option[i].target; j=0; XtSetArg(args[j], XtNfromVert, last); j++; - XtSetArg(args[j], XtNwidth, 10); j++; - XtSetArg(args[j], XtNheight, 10); j++; + XtSetArg(args[j], XtNvertDistance, (textHeight+2)/4 + 3); j++; + XtSetArg(args[j], XtNwidth, textHeight/2); j++; + XtSetArg(args[j], XtNheight, textHeight/2); j++; XtSetArg(args[j], XtNleft, XtChainLeft); j++; XtSetArg(args[j], XtNright, XtChainLeft); j++; XtSetArg(args[j], XtNstate, option[i].value); j++; @@ -1168,6 +1173,7 @@ GenericPopUp (Option *option, char *title, int dlgNr) j=0; XtSetArg(args[j], XtNfromVert, last); j++; XtSetArg(args[j], XtNfromHoriz, option[i].type != Label ? dialog : NULL); j++; + if(option[i].type != Label) XtSetArg(args[j], XtNheight, textHeight), j++; XtSetArg(args[j], XtNleft, XtChainLeft); j++; XtSetArg(args[j], XtNborderWidth, 0); j++; XtSetArg(args[j], XtNjustify, XtJustifyLeft); j++; @@ -1187,6 +1193,7 @@ GenericPopUp (Option *option, char *title, int dlgNr) XtSetArg(args[j], XtNfromHoriz, NULL); j++; lastrow = forelast; } XtSetArg(args[j], XtNlabel, _(option[i].name)); j++; + if(textHeight) XtSetArg(args[j], XtNheight, textHeight), j++; if(option[i].max) { XtSetArg(args[j], XtNwidth, option[i].max); j++; } if(option[i].textValue) { // special for buttons of New Variant dialog XtSetArg(args[j], XtNsensitive, appData.noChessProgram || option[i].value < 0 @@ -1227,6 +1234,7 @@ GenericPopUp (Option *option, char *title, int dlgNr) XtSetArg(args[j], XtNleft, XtChainLeft); j++; XtSetArg(args[j], XtNmenuName, XtNewString(option[i].name)); j++; XtSetArg(args[j], XtNlabel, _(((char**)option[i].textValue)[option[i].value])); j++; + if(textHeight) XtSetArg(args[j], XtNheight, textHeight), j++; option[i].handle = (void*) (last = XtCreateManagedWidget(" ", menuButtonWidgetClass, form, args, j)); CreateComboPopup(last, option + i, i); @@ -1314,6 +1322,7 @@ GenericPopUp (Option *option, char *title, int dlgNr) XtSetArg(args[j], XtNtop, XtChainBottom); j++; XtSetArg(args[j], XtNleft, XtChainRight); j++; XtSetArg(args[j], XtNright, XtChainRight); j++; + if(textHeight) XtSetArg(args[j], XtNheight, textHeight), j++; b_ok = XtCreateManagedWidget(_("OK"), commandWidgetClass, form, args, j); XtAddCallback(b_ok, XtNcallback, GenericCallback, (XtPointer)(intptr_t) dlgNr + (dlgNr<<16)); @@ -1412,7 +1421,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)); @@ -1741,7 +1750,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); }