Fix multi-leg promotions
[xboard.git] / evalgraph.h
1 /*
2  * evalgraph.h -- Evaluation Graph window
3  *
4  * Copyright 2000, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
5  * Software Foundation, Inc.
6  *
7  * Enhancements Copyright 2005 Alessandro Scotti
8  *
9  * ------------------------------------------------------------------------
10  *
11  * GNU XBoard is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or (at
14  * your option) any later version.
15  *
16  * GNU XBoard is distributed in the hope that it will be useful, but
17  * WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see http://www.gnu.org/licenses/.  *
23  *
24  *------------------------------------------------------------------------
25  ** See the file ChangeLog for a revision history.
26  */
27
28 #define MIN_HIST_WIDTH  4
29 #define MAX_HIST_WIDTH  10
30
31 typedef enum { PEN_NONE, PEN_BLACK, PEN_DOTTED, PEN_BLUEDOTTED, PEN_BOLDWHITE, PEN_BOLDBLACK, PEN_BACKGD, PEN_ANY } PenType;
32
33 #define FILLED 1
34 #define OPEN   0
35
36 /* Module globals */
37 ChessProgramStats_Move * currPvInfo;
38 extern int currFirst;
39 extern int currLast;
40 extern int currCurrent;
41 extern int differentialView;
42
43 extern int nWidthPB;
44 extern int nHeightPB;
45
46 extern int MarginX;
47 extern int MarginW;
48 extern int MarginH;
49
50 // calls from back-end part into front-end part
51 void DrawSegment( int x, int y, int *lastX, int *lastY, int p );
52 void DrawRectangle( int left, int top, int right, int bottom, int side, int style );
53 void DrawEvalText(char *buf, int cbBuf, int y);
54 void EvalGraphSet P(( int first, int last, int current, ChessProgramStats_Move * pvInfo ));
55
56 // calls of front-end part into back-end part
57 extern int GetMoveIndexFromPoint( int x, int y );
58 extern void PaintEvalGraph( void );
59 extern char *MakeEvalTitle( char *title );