X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=7db75dbd93fe695ad36d455e4453cf251b74bddc;hb=6e40d1751ec11a717529545c7253fc6a8236bc24;hp=3f445bb58b152890f6cbd4bc1366396412b7d4cd;hpb=2eb3eb048b16f2ffd1f1c8dad3987871b0f9bd72;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 3f445bb..7db75db 100644 --- a/dialogs.c +++ b/dialogs.c @@ -1,7 +1,7 @@ /* * dialogs.c -- platform-independent code for dialogs of XBoard * - * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Free Software Foundation, Inc. + * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc. * ------------------------------------------------------------------------ * * GNU XBoard is free software: you can redistribute it and/or modify @@ -1611,7 +1611,7 @@ ShuffleMenuProc () //------------------------------------------------------ Time Control ----------------------------------- static int TcOK P((int n)); -int tmpMoves, tmpTc, tmpInc, tmpOdds1, tmpOdds2, tcType; +int tmpMoves, tmpTc, tmpInc, tmpOdds1, tmpOdds2, tcType, by60; static void SetTcType P((int n)); @@ -1627,6 +1627,7 @@ static Option tcOptions[] = { { 0, 0, 0, NULL, (void*) &SetTcType, NULL, NULL, Button, N_("classical") }, { 0,SAME_ROW,0,NULL, (void*) &SetTcType, NULL, NULL, Button, N_("incremental") }, { 0,SAME_ROW,0,NULL, (void*) &SetTcType, NULL, NULL, Button, N_("fixed max") }, +{ 0, 0, 0, NULL, (void*) &by60, "", NULL, CheckBox, N_("Divide entered times by 60") }, { 0, 0, 200, NULL, (void*) &tmpMoves, NULL, NULL, Spin, N_("Moves per session:") }, { 0, 0,10000, NULL, (void*) &tmpTc, NULL, NULL, Spin, N_("Initial time (min):") }, { 0, 0, 10000, NULL, (void*) &tmpInc, NULL, NULL, Spin, N_("Increment or max (sec/move):") }, @@ -1639,10 +1640,11 @@ static Option tcOptions[] = { static int TcOK (int n) { - char *tc; + char *tc, buf[MSG_SIZ]; if(tcType == 0 && tmpMoves <= 0) return 0; if(tcType == 2 && tmpInc <= 0) return 0; - GetWidgetText(&tcOptions[4], &tc); // get original text, in case it is min:sec + GetWidgetText(&tcOptions[5], &tc); // get original text, in case it is min:sec + if(by60) snprintf(buf, MSG_SIZ, "%d:%02d", tmpTc/60, tmpTc%60), tc=buf; searchTime = 0; switch(tcType) { case 0: @@ -1654,10 +1656,10 @@ TcOK (int n) case 1: if(!ParseTimeControl(tc, tmpInc, 0)) return 0; ASSIGN(appData.timeControl, tc); - appData.timeIncrement = tmpInc; + appData.timeIncrement = (by60 ? tmpInc/60. : tmpInc); break; case 2: - searchTime = tmpInc; + searchTime = (by60 ? tmpInc/60 : tmpInc); } appData.firstTimeOdds = first.timeOdds = tmpOdds1; appData.secondTimeOdds = second.timeOdds = tmpOdds2; @@ -1670,19 +1672,19 @@ SetTcType (int n) { switch(tcType = n) { case 0: - SetWidgetText(&tcOptions[3], Value(tmpMoves), TransientDlg); - SetWidgetText(&tcOptions[4], Value(tmpTc), TransientDlg); - SetWidgetText(&tcOptions[5], _("Unused"), TransientDlg); + SetWidgetText(&tcOptions[4], Value(tmpMoves), TransientDlg); + SetWidgetText(&tcOptions[5], Value(tmpTc), TransientDlg); + SetWidgetText(&tcOptions[6], _("Unused"), TransientDlg); break; case 1: - SetWidgetText(&tcOptions[3], _("Unused"), TransientDlg); - SetWidgetText(&tcOptions[4], Value(tmpTc), TransientDlg); - SetWidgetText(&tcOptions[5], Value(tmpInc), TransientDlg); + SetWidgetText(&tcOptions[4], _("Unused"), TransientDlg); + SetWidgetText(&tcOptions[5], Value(tmpTc), TransientDlg); + SetWidgetText(&tcOptions[6], Value(tmpInc), TransientDlg); break; case 2: - SetWidgetText(&tcOptions[3], _("Unused"), TransientDlg); SetWidgetText(&tcOptions[4], _("Unused"), TransientDlg); - SetWidgetText(&tcOptions[5], Value(tmpInc), TransientDlg); + SetWidgetText(&tcOptions[5], _("Unused"), TransientDlg); + SetWidgetText(&tcOptions[6], Value(tmpInc), TransientDlg); } } @@ -1697,6 +1699,7 @@ TimeControlProc () tmpInc = appData.timeIncrement; if(tmpInc < 0) tmpInc = 0; tmpOdds1 = tmpOdds2 = 1; tcType = 0; tmpTc = atoi(appData.timeControl); + by60 = 0; GenericPopUp(tcOptions, _("Time Control"), TransientDlg, BoardWindow, MODAL, 0); SetTcType(searchTime ? 2 : appData.timeIncrement < 0 ? 0 : 1); } @@ -2579,7 +2582,7 @@ MenuCallback (int n) static Option * Exp (int n, int x, int y) { - static int but1, but3, oldW, oldH; + static int but1, but3, oldW, oldH, oldX, oldY; int menuNr = -3, sizing, f, r; TimeMark now; extern Boolean right; @@ -2590,6 +2593,7 @@ Exp (int n, int x, int y) } if(n == 0) { // motion + oldX = x; oldY = y; if(SeekGraphClick(Press, x, y, 1)) return NULL; if((but1 || dragging == 2) && !PromoScroll(x, y)) DragPieceMove(x, y); if(but3) MovePV(x, y, lineGap + BOARD_HEIGHT * (squareSize + lineGap)); @@ -2612,8 +2616,8 @@ Exp (int n, int x, int y) case 3: menuNr = RightClick(Press, x, y, &pmFromX, &pmFromY), but3 = 1; break; case -2: shiftKey = !shiftKey; case -3: menuNr = RightClick(Release, x, y, &pmFromX, &pmFromY), but3 = 0; break; - case 4: BackwardEvent(); break; - case 5: ForwardEvent(); break; + case 4: Wheel(-1, oldX, oldY); break; + case 5: Wheel(1, oldX, oldY); break; case 10: sizing = (oldW != x || oldH != y); oldW = x; oldH = y;