Updated copyright notice to 2014
[xboard.git] / engineoutput.h
1 /*
2  * wengineo.h -- Clipboard routines for WinBoard
3  *
4  * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
5  *
6  * Enhancements Copyright 2005 Alessandro Scotti
7  *
8  * ------------------------------------------------------------------------
9  *
10  * GNU XBoard is free software: you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation, either version 3 of the License, or (at
13  * your option) any later version.
14  *
15  * GNU XBoard is distributed in the hope that it will be useful, but
16  * WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  * General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program. If not, see http://www.gnu.org/licenses/.  *
22  *
23  *------------------------------------------------------------------------
24  ** See the file ChangeLog for a revision history.  */
25
26 // [HGM] define numbers to indicate icons, for referring to them in platform-independent way
27 #define nColorBlack   1
28 #define nColorWhite   2
29 #define nColorUnknown 3
30 #define nClear        4
31 #define nPondering    5
32 #define nThinking     6
33 #define nAnalyzing    7
34
35 // [HGM] same for output fields (note that there are two of each type, one per color)
36 #define nColorIcon 1
37 #define nLabel     2
38 #define nStateIcon 3
39 #define nStateData 4
40 #define nLabelNPS  5
41 #define nMemo      6 /* must match the ranking of the TextBox in following option list! */
42
43 #define STRIDE 7 /* must match the number of option in one pane! */
44 #define MEMO  (nMemo-1)
45
46 /* Module variables */
47 #define H_MARGIN            2
48 #define V_MARGIN            2
49 #define LABEL_V_DISTANCE    1   /* Distance between label and memo */
50 #define SPLITTER_SIZE       4   /* Distance between first memo and second label */
51
52 #define ICON_SIZE           14
53
54 enum ENGINE_STATE { STATE_UNKNOWN, STATE_THINKING, STATE_IDLE, STATE_PONDERING, STATE_ANALYZING };
55
56 extern int  windowMode;
57 extern char exclusionHeader[];
58 extern int highTextStart[2], highTextEnd[2];
59
60 // back-end called by front-end
61 void SetEngineState( int which, enum ENGINE_STATE state, char * state_data );
62
63 // front-end called by back-end
64 void SetEngineColorIcon( int which );
65 void SetIcon( int which, int field, int nIcon );
66 void DoSetWindowText(int which, int field, char *s_label);
67 void InsertIntoMemo( int which, char * text, int where );
68 void DoClearMemo(int which);
69 void ResizeWindowControls( int mode );
70 int  EngineOutputDialogExists();
71 void SetEngineOutputTitle( char *title );
72 void InitEngineOutput P((Option *opt, Option *memo2)); // XB only
73 void DrawWidgetIcon P((Option *opt, int nIcon)); // XB only