char *engineNr[] = { N_("First Engine"), N_("Second Engine"), NULL };
char *engineList[100] = {" "}, *engineMnemonic[100] = {""};
-void AppendText(Option *opt, char *s)
+int AppendText(Option *opt, char *s)
{
XawTextBlock t;
+ char *v;
+ int len;
+ GetWidgetText(opt, &v);
+ len = strlen(v);
t.ptr = s; t.firstPos = 0; t.length = strlen(s); t.format = XawFmt8Bit;
- XawTextReplace(opt->handle, 9999, 9999, &t);
+ XawTextReplace(opt->handle, len, len, &t);
+ return len;
}
void AddLine(Option *opt, char *s)
}
Option generalOptions[] = {
+{ 0, 0, 0, NULL, (void*) &appData.whitePOV, "", NULL, CheckBox, N_("Absolute Analysis Scores") },
{ 0, 0, 0, NULL, (void*) &appData.sweepSelect, "", NULL, CheckBox, N_("Almost Always Queen (Detour Under-Promote)") },
{ 0, 0, 0, NULL, (void*) &appData.animateDragging, "", NULL, CheckBox, N_("Animate Dragging") },
{ 0, 0, 0, NULL, (void*) &appData.animate, "", NULL, CheckBox, N_("Animate Moving") },
{ 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):") },
+{ 0, 1, 5, NULL, (void*) &appData.zoom, "", NULL, Spin, N_("Zoom factor in Evaluation Graph:") },
{ 0, 0, 0, NULL, (void*) &GeneralOptionsOK, "", NULL, EndMark , "" }
};
{ VariantSuicide, 0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("suicide")},
{ VariantCapaRandom, 1, 135, NULL, (void*) &Pick, "#BFBFFF", NULL, Button, N_("CRC (10x8)")},
{ VariantGiveaway, 0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("give-away")},
-{ VariantSpartan, 1, 135, NULL, (void*) &Pick, "#FF0000", NULL, Button, N_("Spartan")},
+{ VariantGrand, 1, 135, NULL, (void*) &Pick, "#5070FF", NULL, Button, N_("grand (10x10)")},
{ VariantLosers, 0, 135, NULL, (void*) &Pick, "#FFFFBF", NULL, Button, N_("losers")},
+{ VariantSpartan, 1, 135, NULL, (void*) &Pick, "#FF0000", NULL, Button, N_("Spartan")},
{ 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("Board size ( -1 = default for selected variant):")},
{ 0, -1, BOARD_RANKS-1, NULL, (void*) &appData.NrRanks, "", NULL, Spin, N_("Number of Board Ranks:") },
{ 0, -1, BOARD_FILES, NULL, (void*) &appData.NrFiles, "", NULL, Spin, N_("Number of Board Files:") },
{ 0, 0, 0, NULL, (void*) &IcsOptionsOK, "", NULL, EndMark , "" }
};
+char *modeNames[] = { N_("Exact match"), N_("Shown position is subset"), N_("Same material and Pawn chain"), N_("Same material"), NULL };
+char *modeValues[] = { "1", "2", "3", "4" };
+char *searchMode;
+
+int LoadOptionsOK()
+{
+ appData.searchMode = atoi(searchMode);
+ return 1;
+}
+
Option loadOptions[] = {
{ 0, 0, 0, NULL, (void*) &appData.autoDisplayTags, "", NULL, CheckBox, N_("Auto-Display Tags") },
{ 0, 0, 0, NULL, (void*) &appData.autoDisplayComment, "", NULL, CheckBox, N_("Auto-Display Comment") },
{ 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("Auto-Play speed of loaded games\n(0 = instant, -1 = off):") },
{ 0, -1, 10000000, NULL, (void*) &appData.timeDelay, "", NULL, Fractional, N_("Seconds per Move:") },
-{ 0, 0, 0, NULL, NULL, "", NULL, EndMark , "" }
+{ 0, 0, 0, NULL, NULL, NULL, NULL, Label, N_("\nThresholds for position filtering in game list:") },
+{ 0, 0, 5000, NULL, (void*) &appData.eloThreshold1, "", NULL, Spin, N_("Elo of strongest player at least:") },
+{ 0, 0, 5000, NULL, (void*) &appData.eloThreshold2, "", NULL, Spin, N_("Elo of weakest player at least:") },
+{ 0, 0, 5000, NULL, (void*) &appData.dateThreshold, "", NULL, Spin, N_("No games before year:") },
+{ 1, 0, 180, NULL, (void*) &searchMode, (char*) modeNames, modeValues, ComboBox, N_("Seach mode:") },
+{ 0, 0, 0, NULL, (void*) &LoadOptionsOK, "", NULL, EndMark , "" }
};
Option saveOptions[] = {
{
int col, j, r, g, b, step = 10;
char *s, buf[MSG_SIZ]; // color string
- Arg args[5];
GetWidgetText(¤tOption[source], &s);
if(sscanf(s, "#%x", &col) != 1) return; // malformed
b = col & 0xFF; g = col & 0xFF00; r = col & 0xFF0000;
String *prms;
Cardinal *nprms;
{
+ ASSIGN(searchMode, modeValues[appData.searchMode-1]);
GenericPopUp(loadOptions, _("Load Game Options"), 0);
}
void SaveChanges(int n)
{
- GetWidgetText(¤tOption[0], &commentText);
+ GenericReadout(0);
ReplaceComment(commentIndex, commentText);
}
void ClearTextWidget(Option *opt)
{
- XtCallActionProc(opt->handle, "select-all", NULL, NULL, 0);
- XtCallActionProc(opt->handle, "kill-selection", NULL, NULL, 0);
+// XtCallActionProc(opt->handle, "select-all", NULL, NULL, 0);
+// XtCallActionProc(opt->handle, "kill-selection", NULL, NULL, 0);
+ Arg arg;
+ XtSetArg(arg, XtNstring, ""); // clear without disturbing selection!
+ XtSetValues(opt->handle, &arg, 1);
}
void ClearComment(int n)
void NewCommentPopup(char *title, char *text, int index)
{
- Widget edit;
Arg args[16];
if(shells[1]) { // if already exists, alter title and content
XtOverrideTranslations(commentOptions[0].handle, XtParseTranslationTable(commentTranslations));
}
-static char *tagsText, *msgText;
+static char *tagsText;
int NewTagsCallback(int n)
{
void changeTags(int n)
{
- GetWidgetText(¤tOption[1], &tagsText);
+ GenericReadout(1);
if(bookUp) SaveToBook(tagsText); else
ReplaceTags(tagsText, &gameInfo);
}
void NewTagsPopup(char *text, char *msg)
{
- Widget edit;
Arg args[16];
char *title = bookUp ? _("Edit book") : _("Tags");
String *prms;
Cardinal *nprms;
{
- Arg args[2];
- String val;
+ char *val;
if(prms[0][0] == '1') {
GetWidgetText(&boxOptions[0], &val);
- TypeInDoneEvent((char*)val);
+ TypeInDoneEvent(val);
}
PopDown(0);
}
{
int r = n==2 ? -1 : rand() & (1<<30)-1;
char buf[MSG_SIZ];
- Arg args[2];
snprintf(buf, MSG_SIZ, "%d", r);
SetWidgetText(&shuffleOptions[1], buf, 0);
SetWidgetState(&shuffleOptions[0], True);
if(tcType == 0 && tmpMoves <= 0) return 0;
if(tcType == 2 && tmpInc <= 0) return 0;
GetWidgetText(¤tOption[4], &tc); // get original text, in case it is min:sec
+ searchTime = 0;
switch(tcType) {
case 0:
if(!ParseTimeControl(tc, -1, tmpMoves)) return 0;