* Massachusetts.
*
* Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
- * 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ * 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
*
* The following terms apply to Digital Equipment Corporation's copyright
* interest in XBoard:
#include "frontend.h"
#include "backend.h"
-#include "backendz.h"
-#include "moves.h"
-#include "xhistory.h"
-#include "xedittags.h"
#include "menus.h"
#include "gettext.h"
}
void
-LoadPositionProc()
+LoadPositionProc()
{
if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) {
Reset(FALSE, TRUE);
#else
char *zippy = "";
#endif
- snprintf(buf, sizeof(buf),
+ snprintf(buf, sizeof(buf),
_("%s%s\n\n"
"Copyright 1991 Digital Equipment Corporation\n"
-"Enhancements Copyright 1992-2012 Free Software Foundation\n"
+"Enhancements Copyright 1992-2013 Free Software Foundation\n"
"Enhancements Copyright 2005 Alessandro Scotti\n\n"
"%s is free software and carries NO WARRANTY;"
-"see the file COPYING for more information.\n\n"
+"see the file COPYING for more information.\n"
+"The GTK build of this version is experimental and unstable\n\n"
"Visit XBoard on the web at: http://www.gnu.org/software/xboard/\n"
"Check out the newest features at: http://www.gnu.org/software/xboard/whats_new.html\n\n"
"Report bugs via email at: <bug-xboard@gnu.org>\n\n"
MARK_MENU_ITEM("Options.HideThinking", appData.hideThinkingFromHuman);
}
+void
+CreateBookDelayed ()
+{
+ ScheduleDelayedEvent(CreateBookEvent, 50);
+}
+
/*
* Menu definition tables
*/
{N_("New Shuffle Game ..."), "NewShuffleGame", ShuffleMenuProc},
{N_("New Variant ... Alt+Shift+V"), "NewVariant", NewVariantProc}, // [HGM] variant: not functional yet
{"----", NULL, NothingProc},
- {N_("Load Game Ctrl+O"), "LoadGame", LoadGameProc},
+ {N_("Load Game Ctrl+O"), "LoadGame", LoadGameProc, CHECK},
{N_("Load Position Ctrl+Shift+O"), "LoadPosition", LoadPositionProc},
// {N_("Load Next Game"), "LoadNextGame", LoadNextGameProc},
// {N_("Load Previous Game"), "LoadPreviousGame", LoadPrevGameProc},
// {N_("Reload Same Position"), "Reload Same Position", ReloadPositionProc},
{N_("Save Game Ctrl+S"), "SaveGame", SaveGameProc},
{N_("Save Position Ctrl+Shift+S"), "SavePosition", SavePositionProc},
+ {N_("Save Games as Book"), "CreateBook", CreateBookDelayed},
{"----", NULL, NothingProc},
{N_("Mail Move"), "MailMove", MailMoveEvent},
{N_("Reload CMail Message"), "ReloadCMailMessage", ReloadCmailMsgProc},
};
MenuItem viewMenu[] = {
- {N_("Flip View F2"), "FlipView", FlipViewProc},
+ {N_("Flip View F2"), "FlipView", FlipViewProc, CHECK},
{"----", NULL, NothingProc},
- {N_("Engine Output Alt+Shift+O"), "EngineOutput", EngineOutputProc},
- {N_("Move History Alt+Shift+H"), "MoveHistory", HistoryShowProc}, // [HGM] hist: activate 4.2.7 code
- {N_("Evaluation Graph Alt+Shift+E"), "EvaluationGraph", EvalGraphProc},
- {N_("Game List Alt+Shift+G"), "GameList", ShowGameListProc},
- {N_("ICS text menu"), "ICStextmenu", IcsTextProc},
+ {N_("Engine Output Alt+Shift+O"), "EngineOutput", EngineOutputProc, CHECK},
+ {N_("Move History Alt+Shift+H"), "MoveHistory", HistoryShowProc, CHECK}, // [HGM] hist: activate 4.2.7 code
+ {N_("Evaluation Graph Alt+Shift+E"), "EvaluationGraph", EvalGraphProc, CHECK},
+ {N_("Game List Alt+Shift+G"), "GameList", ShowGameListProc, CHECK},
+ {N_("ICS text menu"), "ICStextmenu", IcsTextProc, CHECK},
{"----", NULL, NothingProc},
- {N_("Tags"), "Tags", EditTagsProc},
- {N_("Comments"), "Comments", EditCommentProc},
- {N_("ICS Input Box"), "ICSInputBox", IcsInputBoxProc},
- {N_("Open Chat Window"), "OpenChatWindow", ChatProc},
+ {N_("Tags"), "Tags", EditTagsProc, CHECK},
+ {N_("Comments"), "Comments", EditCommentProc, CHECK},
+ {N_("ICS Input Box"), "ICSInputBox", IcsInputBoxProc, CHECK},
+ {N_("Open Chat Window"), "OpenChatWindow", ChatProc, CHECK},
{"----", NULL, NothingProc},
{N_("Board..."), "Board", BoardOptionsProc},
{N_("Game List Tags..."), "GameListTags", GameListOptionsProc},
};
MenuItem modeMenu[] = {
- {N_("Machine White Ctrl+W"), "MachineWhite", MachineWhiteEvent},
- {N_("Machine Black Ctrl+B"), "MachineBlack", MachineBlackEvent},
- {N_("Two Machines Ctrl+T"), "TwoMachines", TwoMachinesEvent},
- {N_("Analysis Mode Ctrl+A"), "AnalysisMode", (MenuProc*) AnalyzeModeEvent},
- {N_("Analyze Game Ctrl+G"), "AnalyzeFile", AnalyzeFileEvent },
- {N_("Edit Game Ctrl+E"), "EditGame", EditGameEvent},
- {N_("Edit Position Ctrl+Shift+E"), "EditPosition", EditPositionEvent},
- {N_("Training"), "Training", TrainingEvent},
- {N_("ICS Client"), "ICSClient", IcsClientEvent},
+ {N_("Machine White Ctrl+W"), "MachineWhite", MachineWhiteEvent, RADIO },
+ {N_("Machine Black Ctrl+B"), "MachineBlack", MachineBlackEvent, RADIO },
+ {N_("Two Machines Ctrl+T"), "TwoMachines", TwoMachinesEvent, RADIO },
+ {N_("Analysis Mode Ctrl+A"), "AnalysisMode", (MenuProc*) AnalyzeModeEvent, RADIO},
+ {N_("Analyze Game Ctrl+G"), "AnalyzeFile", AnalyzeFileEvent, RADIO },
+ {N_("Edit Game Ctrl+E"), "EditGame", EditGameEvent, RADIO },
+ {N_("Edit Position Ctrl+Shift+E"), "EditPosition", EditPositionEvent, RADIO },
+ {N_("Training"), "Training", TrainingEvent, RADIO },
+ {N_("ICS Client"), "ICSClient", IcsClientEvent, RADIO },
{"----", NULL, NothingProc},
- {N_("Machine Match"), "MachineMatch", MatchProc},
- {N_("Pause Pause"), "Pause", PauseEvent},
+ {N_("Machine Match"), "MachineMatch", MatchProc, CHECK },
+ {N_("Pause Pause"), "Pause", PauseEvent, CHECK },
{NULL, NULL, NULL}
};
{NULL, NULL, NULL}
};
-MenuItem engineMenu[] = {
+MenuItem engineMenu[100] = {
{N_("Load New 1st Engine ..."), "LoadNew1stEngine", LoadEngine1Proc},
{N_("Load New 2nd Engine ..."), "LoadNew2ndEngine", LoadEngine2Proc},
{"----", NULL, NothingProc},
{"----", NULL, NothingProc},
#endif
{N_("Save Settings Now"), "SaveSettingsNow", SaveSettingsProc},
- {N_("Save Settings on Exit"), "SaveSettingsonExit", SaveOnExitProc},
+ {N_("Save Settings on Exit"), "SaveSettingsonExit", SaveOnExitProc, CHECK },
{NULL, NULL, NULL}
};
return NULL; // item not found
}
+int firstEngineItem;
+
void
AppendEnginesToMenu (char *list)
{
int i=0;
char *p;
if(appData.icsActive || appData.recentEngines <= 0) return;
+ for(firstEngineItem=0; engineMenu[firstEngineItem].string; firstEngineItem++);
recentEngines = strdup(list);
while (*list) {
p = strchr(list, '\n'); if(p == NULL) break;
- if(i == 0) AppendMenuItem("----", 0); // at least one valid item to add
+ if(i == 0) engineMenu[firstEngineItem++].string = "----"; // at least one valid item to add
*p = 0;
- AppendMenuItem(list, i);
+ if(firstEngineItem + i < 99)
+ engineMenu[firstEngineItem+i].string = strdup(list); // just set name; MenuProc stays NULL
i++; *p = '\n'; list = p + 1;
}
}
{ "Mode.AnalyzeFile", False },
{ "Mode.TwoMachines", False },
{ "Mode.MachineMatch", False },
-#ifndef ZIPPY
+#if !ZIPPY
{ "Engine.Hint", False },
{ "Engine.Book", False },
{ "Engine.MoveNow", False },
MarkMenuItem("Options.SaveSettingsonExit", True);
}
}
-
-