/*\r
* woptions.c -- Options dialog box routines for WinBoard\r
*\r
- * Copyright 2000, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.\r
+ * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.\r
*\r
* Enhancements Copyright 2005 Alessandro Scotti\r
*\r
CHECK_BOX(OPT_SmartMove, appData.oneClick); // [HGM] one-click\r
CHECK_BOX(OPT_AutoTags, appData.autoDisplayTags); // [HGM]\r
CHECK_BOX(OPT_AutoComment, appData.autoDisplayComment); // [HGM]\r
+ CHECK_BOX(OPT_Headers, appData.headers); // [HGM]\r
+ CHECK_BOX(OPT_Variations, appData.variations); // [HGM]\r
+ CHECK_BOX(OPT_AutoExtend, appData.autoExtend); // [HGM]\r
\r
#undef CHECK_BOX\r
\r
appData.oneClick =IS_CHECKED(OPT_SmartMove); // [HGM] one-click\r
appData.autoDisplayTags =IS_CHECKED(OPT_AutoTags); // [HGM]\r
appData.autoDisplayComment =IS_CHECKED(OPT_AutoComment); // [HGM]\r
+ appData.headers =IS_CHECKED(OPT_Headers); // [HGM]\r
+ appData.variations =IS_CHECKED(OPT_Variations); // [HGM]\r
+ appData.autoExtend =IS_CHECKED(OPT_AutoExtend); // [HGM]\r
\r
#undef IS_CHECKED\r
\r
-1,\r
-1,\r
OPT_VariantShogi,\r
+ -1, // Chu\r
OPT_VariantXiangqi,\r
OPT_VariantCourier,\r
OPT_VariantGothic,\r
OPT_VariantSChess,\r
OPT_VariantGrand,\r
OPT_VariantSpartan, // Spartan\r
+ OPT_VariantLion,\r
-2 // sentinel\r
};\r
\r
VariantWhichRadio(HWND hDlg)\r
{\r
int i=0, j;\r
+ *engineVariant = NULLCHAR;\r
while((j = radioButton[i++]) != -2) {\r
if(j == -1) continue; // no menu button\r
if(IsDlgButtonChecked(hDlg, j) &&\r
(appData.noChessProgram || strstr(first.variants, VariantName(i-1)))) return (VariantClass) i-1;\r
}\r
+ for(i=0; i<9; i++) { // check for engine-defined variants\r
+ if(IsDlgButtonChecked(hDlg, OPT_EngineVariant+i) ) {\r
+ GetDlgItemText(hDlg, OPT_EngineVariant+i, engineVariant, MSG_SIZ); // remember name, so we can resolve it later\r
+ return VariantUnknown;\r
+ }\r
+ }\r
return gameInfo.variant; // If no button checked, keep old\r
}\r
\r
void\r
VariantShowRadio(HWND hDlg)\r
{\r
+ char c = *engineVariant;\r
int i=0, j;\r
CheckDlgButton(hDlg, radioButton[gameInfo.variant], TRUE);\r
+ *engineVariant = NULLCHAR; // [HGM] kludge to prevent VariantName will always return engineVariant\r
while((j = radioButton[i++]) != -2) {\r
if(j == -1) continue; // no menu button\r
EnableWindow(GetDlgItem(hDlg, j), appData.noChessProgram || strstr(first.variants, VariantName(i-1)));\r
}\r
+ *engineVariant = c;\r
+ for(i=0; i<9; i++) { // initialize engine-defined variants\r
+ char *v = EngineDefinedVariant(&first, i); // get name of #i\r
+ if(v) { // there is such a variant\r
+ EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), TRUE); // and enable the button\r
+ SetDlgItemText(hDlg, OPT_EngineVariant+i, v); // put its name on button\r
+ } else EnableWindow(GetDlgItem(hDlg, OPT_EngineVariant+i), FALSE); // no such variant; disable button\r
+ }\r
}\r
\r
LRESULT CALLBACK\r
UpdateSampleText(hDlg, OPT_SampleSeek, &mca[ColorSeek]);\r
break;\r
\r
+\r
+\r
+\r
case OPT_ChooseNormalColor:\r
ColorizeTextPopup(hDlg, ColorNormal);\r
UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]);\r
SoundComboData soundComboData[] = {\r
{N_("Move"), NULL},\r
{N_("Bell"), NULL},\r
+ {N_("Roar"), NULL},\r
{N_("ICS Alarm"), NULL},\r
{N_("ICS Win"), NULL},\r
{N_("ICS Loss"), NULL},\r