#include "common.h"
#include "frontend.h"
#include "backend.h"
+#include "moves.h"
#include "engineoutput.h"
typedef struct {
#define MAX_VAR 400
static int scores[MAX_VAR], textEnd[MAX_VAR], curDepth[2], nrVariations[2];
+void MakeEngineOutputTitle()
+{
+ static char buf[MSG_SIZ];
+ static char oldTitle[MSG_SIZ];
+ char *title = "Engine Output";
+ extern int initialRulePlies;
+ int count;
+ // figure out value of 50-move counter
+ count = currentMove;
+ while( (signed char)boards[count][EP_STATUS] <= EP_NONE && count > backwardMostMove ) count--;
+ if( count == backwardMostMove ) count -= initialRulePlies;
+ count += 2*appData.ruleMoves - currentMove;
+ snprintf(buf, MSG_SIZ, "%s (%d ply to draw)", title, count);
+ if(count <= 40) title = buf;
+ if(!strcmp(oldTitle, title)) return;
+ safeStrCpy(oldTitle, title, MSG_SIZ);
+ SetEngineOutputTitle(title);
+}
+
// back end, due to front-end wrapper for SetWindowText, and new SetIcon arguments
void SetEngineState( int which, int state, char * state_data )
{
void DoClearMemo(int which);
void ResizeWindowControls( int mode );
int EngineOutputDialogExists();
+void SetEngineOutputTitle( char *title );
SetWindowText( outputField[which][field], s_label );\r
}\r
\r
+void SetEngineOutputTitle(char *title)\r
+{\r
+ SetWindowText( engineOutputDialog, title );\r
+}\r
+\r
// This seems pure front end\r
LRESULT CALLBACK EngineOutputProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )\r
{\r
MoveHistorySet( movelist, first, last, current, pvInfoList );\r
\r
EvalGraphSet( first, last, current, pvInfoList );\r
+\r
+ MakeEngineOutputTitle();\r
}\r
\r
void\r
XtSetValues(outputField[which][field], &arg, 1);
}
+void SetEngineOutputTitle(char *title)
+{
+ Arg arg;
+ XtSetArg(arg, XtNtitle, (XtArgVal) title);
+ XtSetValues(engineOutputShell, &arg, 1);
+}
+
void InsertIntoMemo( int which, char * text, int where )
{
XawTextBlock t;
MoveHistorySet( movelist, first, last, current, pvInfoList );
EvalGraphSet( first, last, current, pvInfoList );
+
+ MakeEngineOutputTitle();
}