X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=7db75dbd93fe695ad36d455e4453cf251b74bddc;hb=6e40d1751ec11a717529545c7253fc6a8236bc24;hp=35b3aefbe8b7d035ad1f085457d475acd501766b;hpb=24eec7ef0db2c98df79453e377a72cefe12b7569;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 35b3aef..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); }