X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=38108650a725272ce63e7aec4ec494cc0bf14b3e;hb=d169fe2b9f61534051f8c1284d632871b0fb4ab6;hp=a2af38b7584de0ba57055f8f06eda0fcc2d9f489;hpb=4dc77c6e72e3ec99cd8a57c9442b7511c47d3dca;p=xboard.git diff --git a/dialogs.c b/dialogs.c index a2af38b..3810865 100644 --- a/dialogs.c +++ b/dialogs.c @@ -254,8 +254,10 @@ MatchOK (int n) static Option matchOptions[] = { { 0, 0, 0, NULL, (void*) &tfName, ".trn", NULL, FileName, N_("Tournament file:") }, -{ 0, 0, 0, NULL, (void*) &appData.roundSync, "", NULL, CheckBox, N_("Sync after round (for concurrent playing of a single") }, -{ 0, 0, 0, NULL, (void*) &appData.cycleSync, "", NULL, CheckBox, N_("Sync after cycle tourney with multiple XBoards)") }, +{ 0, 0, 0, NULL, (void*) &appData.roundSync, "", NULL, CheckBox, N_("Sync after round") }, +{ 0, SAME_ROW|LL, 0, NULL, NULL, "", NULL, Label, N_(" (for concurrent playing of a single") }, +{ 0, 0, 0, NULL, (void*) &appData.cycleSync, "", NULL, CheckBox, N_("Sync after cycle") }, +{ 0, SAME_ROW|LL, 0, NULL, NULL, "", NULL, Label, N_(" tourney with multiple XBoards)") }, { 150, T_VSCRL | T_FILL | T_WRAP, 0, NULL, (void*) &engineName, "", NULL, TextBox, N_("Tourney participants:") }, { 0, COMBO_CALLBACK | NO_GETTEXT, @@ -280,14 +282,14 @@ static Option matchOptions[] = { static void ReplaceParticipant () { - GenericReadout(matchOptions, 3); + GenericReadout(matchOptions, 5); Substitute(strdup(engineName), True); } static void UpgradeParticipant () { - GenericReadout(matchOptions, 3); + GenericReadout(matchOptions, 5); Substitute(strdup(engineName), False); } @@ -309,17 +311,17 @@ CloneTourney () static void AddToTourney (int n) { - AddLine(&matchOptions[3], engineMnemonic[values[4]+1]); + AddLine(&matchOptions[5], engineMnemonic[values[6]+1]); } void MatchOptionsProc () { NamesToList(firstChessProgramNames, engineList, engineMnemonic, "all"); - matchOptions[5].min = -(appData.pairingEngine[0] != NULLCHAR); // with pairing engine, allow Swiss + matchOptions[7].min = -(appData.pairingEngine[0] != NULLCHAR); // with pairing engine, allow Swiss ASSIGN(tfName, appData.tourneyFile[0] ? appData.tourneyFile : MakeName(appData.defName)); ASSIGN(engineName, appData.participants); - GenericPopUp(matchOptions, _("Match Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(matchOptions, _("Match Options"), TransientDlg, BoardWindow, MODAL, 0); } // ------------------------------------------- General Options -------------------------------------------------- @@ -360,6 +362,7 @@ static Option generalOptions[] = { { 0, 0, 0, NULL, (void*) &appData.markers, "", NULL, CheckBox, N_("Show Target Squares") }, { 0, 0, 0, NULL, (void*) &appData.useStickyWindows, "", NULL, CheckBox, N_("Sticky Windows") }, { 0, 0, 0, NULL, (void*) &appData.testLegality, "", NULL, CheckBox, N_("Test Legality") }, +{ 0, 0, 0, NULL, (void*) &appData.topLevel, "", NULL, CheckBox, N_("Top-Level Dialogs") }, { 0, 0,10, NULL, (void*) &appData.flashCount, "", NULL, Spin, N_("Flash Moves (0 = no flashing):") }, { 0, 1,10, NULL, (void*) &appData.flashRate, "", NULL, Spin, N_("Flash Rate (high = fast):") }, { 0, 5,100, NULL, (void*) &appData.animSpeed, "", NULL, Spin, N_("Animation Speed (high = slow):") }, @@ -372,7 +375,7 @@ OptionsProc () { oldPonder = appData.ponderNextMove; oldShow = appData.showCoords; oldBlind = appData.blindfold; - GenericPopUp(generalOptions, _("General Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(generalOptions, _("General Options"), TransientDlg, BoardWindow, MODAL, 0); } //---------------------------------------------- New Variant ------------------------------------------------ @@ -460,7 +463,7 @@ Pick (int n) void NewVariantProc () { - GenericPopUp(variantDescriptors, _("New Variant"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(variantDescriptors, _("New Variant"), TransientDlg, BoardWindow, MODAL, 0); } //------------------------------------------- Common Engine Options ------------------------------------- @@ -504,7 +507,7 @@ UciMenuProc () { oldCores = appData.smpCores; oldPonder = appData.ponderNextMove; - GenericPopUp(commonEngineOptions, _("Common Engine Settings"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(commonEngineOptions, _("Common Engine Settings"), TransientDlg, BoardWindow, MODAL, 0); } //------------------------------------------ Adjudication Options -------------------------------------- @@ -526,7 +529,7 @@ static Option adjudicationOptions[] = { void EngineMenuProc () { - GenericPopUp(adjudicationOptions, _("Adjudicate non-ICS Games"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(adjudicationOptions, _("Adjudicate non-ICS Games"), TransientDlg, BoardWindow, MODAL, 0); } //--------------------------------------------- ICS Options --------------------------------------------- @@ -574,7 +577,7 @@ Option icsOptions[] = { void IcsOptionsProc () { - GenericPopUp(icsOptions, _("ICS Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(icsOptions, _("ICS Options"), TransientDlg, BoardWindow, MODAL, 0); } //-------------------------------------------- Load Game Options --------------------------------- @@ -610,10 +613,16 @@ static Option loadOptions[] = { }; void -LoadOptionsProc () +LoadOptionsPopUp (DialogClass parent) { ASSIGN(searchMode, modeValues[appData.searchMode-1]); - GenericPopUp(loadOptions, _("Load Game Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(loadOptions, _("Load Game Options"), TransientDlg, parent, MODAL, 0); +} + +void +LoadOptionsProc () +{ // called from menu + LoadOptionsPopUp(BoardWindow); } //------------------------------------------- Save Game Options -------------------------------------------- @@ -633,7 +642,7 @@ static Option saveOptions[] = { void SaveOptionsProc () { - GenericPopUp(saveOptions, _("Save Game Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(saveOptions, _("Save Game Options"), TransientDlg, BoardWindow, MODAL, 0); } //----------------------------------------------- Sound Options --------------------------------------------- @@ -713,7 +722,7 @@ SoundOptionsProc () { free(soundFiles[2]); soundFiles[2] = strdup("*"); - GenericPopUp(soundOptions, _("Sound Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(soundOptions, _("Sound Options"), TransientDlg, BoardWindow, MODAL, 0); } //--------------------------------------------- Board Options -------------------------------------- @@ -830,7 +839,7 @@ AdjustColor (int i) void BoardOptionsProc () { - GenericPopUp(boardOptions, _("Board Options"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(boardOptions, _("Board Options"), TransientDlg, BoardWindow, MODAL, 0); } //-------------------------------------------- ICS Text Menu Options ------------------------------ @@ -882,7 +891,7 @@ IcsTextProc () textOptions[i].target = NULL; textOptions[i].min = 2; MarkMenu("ICStex", TextMenuDlg); - GenericPopUp(textOptions, _("ICS text menu"), TextMenuDlg, BoardWindow, NONMODAL); + GenericPopUp(textOptions, _("ICS text menu"), TextMenuDlg, BoardWindow, NONMODAL, 1); } //---------------------------------------------------- Edit Comment ----------------------------------- @@ -929,7 +938,7 @@ NewCommentPopup (char *title, char *text, int index) if(commentText) free(commentText); commentText = strdup(text); commentIndex = index; MarkMenu("Show Comments", CommentDlg); - if(GenericPopUp(commentOptions, title, CommentDlg, BoardWindow, NONMODAL)) + if(GenericPopUp(commentOptions, title, CommentDlg, BoardWindow, NONMODAL, 1)) AddHandler(&commentOptions[0], 1); } @@ -983,7 +992,7 @@ NewTagsPopup (char *text, char *msg) if(tagsText) free(tagsText); tagsText = strdup(text); tagsOptions[0].name = msg; MarkMenu("Show Tags", TagsDlg); - GenericPopUp(tagsOptions, title, TagsDlg, BoardWindow, NONMODAL); + GenericPopUp(tagsOptions, title, TagsDlg, BoardWindow, NONMODAL, 1); } //---------------------------------------------- ICS Input Box ---------------------------------- @@ -1089,7 +1098,7 @@ void ICSInputBoxPopUp () { MarkMenu("ICS Input Box", InputBoxDlg); - if(GenericPopUp(boxOptions, _("ICS input box"), InputBoxDlg, BoardWindow, NONMODAL)) + if(GenericPopUp(boxOptions, _("ICS input box"), InputBoxDlg, BoardWindow, NONMODAL, 0)) AddHandler(&boxOptions[0], 3); } @@ -1120,7 +1129,7 @@ PopUpMoveDialog (char firstchar) { static char buf[2]; buf[0] = firstchar; ASSIGN(icsText, buf); - if(GenericPopUp(typeOptions, _("Type a move"), TransientDlg, BoardWindow, MODAL)) + if(GenericPopUp(typeOptions, _("Type a move"), TransientDlg, BoardWindow, MODAL, 0)) AddHandler(&typeOptions[0], 2); } @@ -1145,7 +1154,7 @@ void SettingsPopUp (ChessProgramState *cps) { currentCps = cps; - GenericPopUp(cps->option, _("Engine Settings"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(cps->option, _("Engine Settings"), TransientDlg, BoardWindow, MODAL, 0); } void @@ -1202,7 +1211,7 @@ LoadEngineProc () if(nickName) free(nickName); nickName = strdup(""); if(params) free(params); params = strdup(""); NamesToList(firstChessProgramNames, engineList, engineMnemonic, "all"); - GenericPopUp(installOptions, _("Load engine"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(installOptions, _("Load engine"), TransientDlg, BoardWindow, MODAL, 0); } //----------------------------------------------------- Edit Book ----------------------------------------- @@ -1245,7 +1254,7 @@ SetRandom (int n) void ShuffleMenuProc () { - GenericPopUp(shuffleOptions, _("New Shuffle Game"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(shuffleOptions, _("New Shuffle Game"), TransientDlg, BoardWindow, MODAL, 0); } //------------------------------------------------------ Time Control ----------------------------------- @@ -1338,7 +1347,7 @@ TimeControlProc () tmpInc = appData.timeIncrement; if(tmpInc < 0) tmpInc = 0; tmpOdds1 = tmpOdds2 = 1; tcType = 0; tmpTc = atoi(appData.timeControl); - GenericPopUp(tcOptions, _("Time Control"), TransientDlg, BoardWindow, MODAL); + GenericPopUp(tcOptions, _("Time Control"), TransientDlg, BoardWindow, MODAL, 0); } //------------------------------- Ask Question ----------------------------------------- @@ -1377,7 +1386,7 @@ AskQuestion (char *title, char *question, char *replyPrefix, ProcRef pr) pendingReplyPR = pr; ASSIGN(answer, ""); askOptions[0].name = question; - if(GenericPopUp(askOptions, title, AskDlg, BoardWindow, MODAL)) + if(GenericPopUp(askOptions, title, AskDlg, BoardWindow, MODAL, 0)) AddHandler(&askOptions[1], 2); } @@ -1460,7 +1469,7 @@ PromotionPopUp () SetPromo(_("Defer"), --count, '='); SetPromo(_("Promote"), --count, '+'); } - GenericPopUp(promoOptions + count, "Promotion", PromoDlg, BoardWindow, NONMODAL); + GenericPopUp(promoOptions + count, "Promotion", PromoDlg, BoardWindow, NONMODAL, 0); } //---------------------------- Chat Windows ---------------------------------------------- @@ -1471,6 +1480,100 @@ OutputChatMessage (int partner, char *mess) return; // dummy } +//--------------------------------- Game-List options dialog ------------------------------------------ + +char *strings[LPUSERGLT_SIZE]; +int stringPtr; + +void +GLT_ClearList () +{ + strings[0] = NULL; + stringPtr = 0; +} + +void +GLT_AddToList (char *name) +{ + strings[stringPtr++] = name; + strings[stringPtr] = NULL; +} + +Boolean +GLT_GetFromList (int index, char *name) +{ + safeStrCpy(name, strings[index], MSG_SIZ); + return TRUE; +} + +void +GLT_DeSelectList () +{ +} + +static void GLT_Button P((int n)); +static int GLT_OK P((int n)); + +static Option listOptions[] = { +{ 0, LR|TB, 200, NULL, (void*) strings, "", NULL, ListBox, "" }, +{ 0, 0, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("factory") }, +{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("up") }, +{ 0, SAME_ROW, 0, NULL, (void*) &GLT_Button, NULL, NULL, Button, N_("down") }, +{ 0, SAME_ROW, 0, NULL, (void*) &GLT_OK, "", NULL, EndMark , "" } +}; + +static int +GLT_OK (int n) +{ + GLT_ParseList(); + appData.gameListTags = strdup(lpUserGLT); + return 1; +} + +static void +GLT_Button (int n) +{ + int index = SelectedListBoxItem (&listOptions[0]); + char *p; + if (index < 0) { + DisplayError(_("No tag selected"), 0); + return; + } + p = strings[index]; + if (n == 3) { + if(index >= strlen(GLT_ALL_TAGS)) return; + strings[index] = strings[index+1]; + strings[++index] = p; + } else + if (n == 2) { + if(index == 0) return; + strings[index] = strings[index-1]; + strings[--index] = p; + } else + if (n == 1) { + safeStrCpy(lpUserGLT, GLT_DEFAULT_TAGS, LPUSERGLT_SIZE); + GLT_TagsToList(lpUserGLT); + index = 0; + LoadListBox(&listOptions[0], "?"); // Note: the others don't need this, as the highlight switching redraws the change items + } + HighlightListBoxItem(&listOptions[0], index); +} + +void +GameListOptionsPopUp (DialogClass parent) +{ + safeStrCpy(lpUserGLT, appData.gameListTags, LPUSERGLT_SIZE); + GLT_TagsToList(lpUserGLT); + + GenericPopUp(listOptions, _("Game-list options"), TransientDlg, parent, MODAL, 0); +} + +void +GameListOptionsProc () +{ + GameListOptionsPopUp(BoardWindow); +} + //----------------------------- Error popup in various uses ----------------------------- /* @@ -1515,10 +1618,10 @@ ErrorPopUp (char *title, char *label, int modal) { errorUp = True; errorOptions[1].name = label; - if(dialogError = shellUp[TransientDlg]) - GenericPopUp(errorOptions+1, title, FatalDlg, TransientDlg, MODAL); // pop up as daughter of the transient dialog + if(dialogError = shellUp[TransientDlg]) + GenericPopUp(errorOptions+1, title, FatalDlg, TransientDlg, MODAL, 0); // pop up as daughter of the transient dialog else - GenericPopUp(errorOptions+modal, title, modal ? FatalDlg: ErrorDlg, BoardWindow, modal); // kludge: option start address indicates modality + GenericPopUp(errorOptions+modal, title, modal ? FatalDlg: ErrorDlg, BoardWindow, modal, 0); // kludge: option start address indicates modality } void