X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xoptions.c;h=1504048a729c2a646e30cd388540fe60e0bd8141;hb=8e148170c98dc627c9b5c3599119f2ccc85800e5;hp=25d3fe7eef16f82b265d0ccccc09a97cfe4fb390;hpb=7fb56edee87ea24c7b2b6b0065e73e5053650383;p=xboard.git diff --git a/xoptions.c b/xoptions.c index 25d3fe7..1504048 100644 --- a/xoptions.c +++ b/xoptions.c @@ -1,7 +1,7 @@ /* * xoptions.c -- Move list window, part of X front end for XBoard * - * Copyright 2000,2009 Free Software Foundation, Inc. + * Copyright 2000, 2009, 2010 Free Software Foundation, Inc. * ------------------------------------------------------------------------ * * GNU XBoard is free software: you can redistribute it and/or modify @@ -45,6 +45,7 @@ extern char *getenv(); #if HAVE_UNISTD_H # include #endif +#include #include #include @@ -391,7 +392,7 @@ void TimeControlPopUp() XtSetArg(args[j], XtNright, XtChainRight); j++; XtSetArg(args[j], XtNresizable, True); j++; XtSetArg(args[j], XtNwidth, 85); j++; -// XtSetArg(args[j], XtNheight, 20); j++; + XtSetArg(args[j], XtNinsertPosition, 9999); j++; tcTime = XtCreateManagedWidget("TC", asciiTextWidgetClass, form, args, j); XtAddEventHandler(tcTime, ButtonPressMask, False, SetFocus, (XtPointer) popup); @@ -602,8 +603,8 @@ void EngineCallback(w, client_data, call_data) // read all switches appData.periodicUpdates = ReadToggle(w1); // appData.hideThinkingFromHuman = ReadToggle(w2); - appData.firstScoreIsAbsolute = ReadToggle(w3); - appData.secondScoreIsAbsolute = ReadToggle(w4); + first.scoreIsAbsolute = appData.firstScoreIsAbsolute = ReadToggle(w3); + second.scoreIsAbsolute = appData.secondScoreIsAbsolute = ReadToggle(w4); appData.testClaims = ReadToggle(w5); appData.checkMates = ReadToggle(w6); appData.materialDraws = ReadToggle(w7); @@ -761,7 +762,7 @@ void EnginePopUp() XtSetArg(args[j], XtNright, XtChainLeft); j++; XtSetArg(args[j], XtNresizable, True); j++; XtSetArg(args[j], XtNwidth, 60); j++; -// XtSetArg(args[j], XtNheight, 20); j++; + XtSetArg(args[j], XtNinsertPosition, 9999); j++; engThreshold = XtCreateManagedWidget("Threshold", asciiTextWidgetClass, form, args, j); XtAddEventHandler(engThreshold, ButtonPressMask, False, SetFocus, (XtPointer) popup); @@ -907,6 +908,7 @@ struct NewVarButton buttonDesc[] = { {N_("berolina"), "#FFFFFF", 0, VariantBerolina}, {N_("cylinder"), "#FFFFFF", 0, VariantCylinder}, {N_("shatranj"), "#FFFFFF", 0, VariantShatranj}, + {N_("makruk"), "#FFFFFF", 0, VariantMakruk}, {N_("atomic"), "#FFFFFF", 0, VariantAtomic}, {N_("two kings"), "#FFFFFF", 0, VariantTwoKings}, {N_("3-checks"), "#FFFFFF", 0, Variant3Check}, @@ -958,7 +960,7 @@ void NewVariantCallback(w, client_data, call_data) XtGetValues(w, args, 1); if (strcmp(name, _(" OK ")) == 0) { - int nr = (int) XawToggleGetCurrent(buttonDesc[0].handle) - 1; + int nr = (intptr_t) XawToggleGetCurrent(buttonDesc[0].handle) - 1; if(nr < 0) return; v = buttonDesc[nr].variant; if(!appData.noChessProgram) { @@ -1233,6 +1235,7 @@ void UciPopUp() XtSetArg(args[j], XtNright, XtChainRight); j++; XtSetArg(args[j], XtNresizable, True); j++; XtSetArg(args[j], XtNwidth, i&1 ? 245 : 50); j++; + XtSetArg(args[j], XtNinsertPosition, 9999); j++; if(i&1) { XtSetArg(args[j], XtNstring, * (char**) controlDesc[i].ptr ? * (char**) controlDesc[i].ptr : ""); j++; @@ -1338,23 +1341,24 @@ void SpinCallback(w, client_data, call_data) Arg args[16]; char buf[MSG_SIZ]; int i, j; + int data = (intptr_t) client_data; XtSetArg(args[0], XtNlabel, &name); XtGetValues(w, args, 1); j = 0; XtSetArg(args[0], XtNstring, &val); - XtGetValues(currentCps->option[(int)client_data].handle, args, 1); + XtGetValues(currentCps->option[data].handle, args, 1); sscanf(val, "%d", &j); if (strcmp(name, "+") == 0) { - if(++j > currentCps->option[(int)client_data].max) return; + if(++j > currentCps->option[data].max) return; } else if (strcmp(name, "-") == 0) { - if(--j < currentCps->option[(int)client_data].min) return; + if(--j < currentCps->option[data].min) return; } else return; sprintf(buf, "%d", j); XtSetArg(args[0], XtNstring, buf); - XtSetValues(currentCps->option[(int)client_data].handle, args, 1); + XtSetValues(currentCps->option[data].handle, args, 1); } void SettingsCallback(w, client_data, call_data) @@ -1366,6 +1370,7 @@ void SettingsCallback(w, client_data, call_data) Arg args[16]; char buf[MSG_SIZ]; int i, j; + int data = (intptr_t) client_data; XtSetArg(args[0], XtNlabel, &name); XtGetValues(w, args, 1); @@ -1374,7 +1379,7 @@ void SettingsCallback(w, client_data, call_data) SettingsPopDown(); return; } - if (strcmp(name, _("OK")) == 0 || (int)client_data) { // save buttons imply OK + if (strcmp(name, _("OK")) == 0 || data) { // save buttons imply OK int nr; for(i=0; inrOptions; i++) { // send all options that had to be OK-ed to engine @@ -1420,7 +1425,7 @@ void SettingsCallback(w, client_data, call_data) break; } } - if((int)client_data) { // send save-button command to engine + if(data) { // send save-button command to engine sprintf(buf, "option %s\n", name); SendToProgram(buf, currentCps); } @@ -1437,8 +1442,8 @@ void ComboSelect(w, addr, index) // callback for all combo items caddr_t index; { Arg args[16]; - int i = ((int)addr)>>8; - int j = 255 & (int) addr; + int i = ((intptr_t)addr)>>8; + int j = 255 & (intptr_t) addr; values[i] = j; // store in temporary, for transfer at OK XtSetArg(args[0], XtNlabel, ((char**)currentCps->option[i].textValue)[j]); @@ -1465,7 +1470,7 @@ void CreateComboPopup(parent, name, n, mb) menu, args, j); XtAddCallback(entry, XtNcallback, (XtCallbackProc) ComboSelect, - (caddr_t) (256*n+i)); + (caddr_t)(intptr_t) (256*n+i)); i++; } } @@ -1473,7 +1478,7 @@ void CreateComboPopup(parent, name, n, mb) void SettingsPopUp(ChessProgramState *cps) { Arg args[16]; - Widget popup, layout, dialog, edit=NULL, form, oldform, last, b_ok, b_cancel, leftMargin = NULL; + Widget popup, layout, dialog, edit=NULL, form, oldform, last, b_ok, b_cancel, leftMargin = NULL, textField = NULL; Window root, child; int x, y, i, j, height, width, h, c; int win_x, win_y; @@ -1530,9 +1535,10 @@ void SettingsPopUp(ChessProgramState *cps) XtSetArg(args[j], XtNright, XtChainRight); j++; XtSetArg(args[j], XtNresizable, True); j++; XtSetArg(args[j], XtNstring, cps->option[i].type==Spin ? def : cps->option[i].textValue); j++; + XtSetArg(args[j], XtNinsertPosition, 9999); j++; edit = last; cps->option[i].handle = (void*) - (last = XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j)); + (textField = last = XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j)); XtAddEventHandler(last, ButtonPressMask, False, SetFocus, (XtPointer) popup); if(cps->option[i].type == TextBox) break; @@ -1543,7 +1549,8 @@ void SettingsPopUp(ChessProgramState *cps) XtSetArg(args[j], XtNheight, 10); j++; XtSetArg(args[j], XtNwidth, 20); j++; edit = XtCreateManagedWidget("+", commandWidgetClass, form, args, j); - XtAddCallback(edit, XtNcallback, SpinCallback, (XtPointer) i); + XtAddCallback(edit, XtNcallback, SpinCallback, + (XtPointer)(intptr_t) i); j=0; XtSetArg(args[j], XtNfromVert, edit); j++; @@ -1551,7 +1558,8 @@ void SettingsPopUp(ChessProgramState *cps) XtSetArg(args[j], XtNheight, 10); j++; XtSetArg(args[j], XtNwidth, 20); j++; last = XtCreateManagedWidget("-", commandWidgetClass, form, args, j); - XtAddCallback(last, XtNcallback, SpinCallback, (XtPointer) i); + XtAddCallback(last, XtNcallback, SpinCallback, + (XtPointer)(intptr_t) i); break; case CheckBox: j=0; @@ -1575,7 +1583,8 @@ void SettingsPopUp(ChessProgramState *cps) XtSetArg(args[j], XtNstate, cps->option[i].value); j++; cps->option[i].handle = (void*) (last = XtCreateManagedWidget(cps->option[i].name, commandWidgetClass, form, args, j)); - XtAddCallback(last, XtNcallback, SettingsCallback, (XtPointer) (cps->option[i].type == SaveButton)); + XtAddCallback(last, XtNcallback, SettingsCallback, + (XtPointer)(intptr_t) (cps->option[i].type == SaveButton)); break; case ComboBox: j=0; @@ -1625,7 +1634,7 @@ void SettingsPopUp(ChessProgramState *cps) SettingsUp = True; previous = NULL; - if(edit)SetFocus(edit, popup, (XEvent*) NULL, False); + if(textField)SetFocus(textField, popup, (XEvent*) NULL, False); } void FirstSettingsProc(w, event, prms, nprms)