#include "xboard.h"
#include "evalgraph.h"
#include "xevalgraph.h"
+#include "draw.h"
#include "gettext.h"
#ifdef ENABLE_NLS
char *crWhite = "#FFFFB0";
char *crBlack = "#AD5D3D";
-static Window eGraphWindow;
-static cairo_surface_t *cs;
+Option *disp;
static Option *EvalCallback P((int button, int x, int y));
static int curX, curY;
if(penType != PEN_NONE) {
- cairo_t *cr = cairo_create(cs);
+ cairo_t *cr = cairo_create(DRAWABLE(disp));
cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
cairo_move_to (cr, curX, curY);
cairo_line_to (cr, x,y);
{
cairo_t *cr;
- cr = cairo_create (cs);
+ cr = cairo_create (DRAWABLE(disp));
cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE);
cairo_rectangle (cr, left, top, right-left, bottom-top);
switch(side)
{
// the magic constants 8 and 5 should really be derived from the font size somehow
cairo_text_extents_t extents;
- cairo_t *cr = cairo_create(cs);
+ cairo_t *cr = cairo_create(DRAWABLE(disp));
/* GTK-TODO this has to go into the font-selection */
cairo_select_font_face (cr, "Sans",
static void
InitializeEvalGraph (Option *opt, int w, int h)
{
- eGraphWindow = XtWindow(opt->handle);
-
if(w == 0) {
Arg args[10];
XtSetArg(args[0], XtNwidth, &evalGraphW);
nWidthPB = evalGraphW; nHeightPB = evalGraphH;
} else nWidthPB = w, nHeightPB = h;
- if(cs) cairo_surface_destroy(cs);
- cs=cairo_xlib_surface_create(xDisplay, eGraphWindow, DefaultVisual(xDisplay, 0), nWidthPB, nHeightPB);
-
initDone = TRUE;
}
// The following stuff is really back-end (but too little to bother with a separate file)
static void
-DisplayEvalGraph ()
-{ // back-end painting; calls back front-end primitives for lines, rectangles and text
- char *t = MakeEvalTitle(_(title));
- if(t != title && nWidthPB < 340) t = MakeEvalTitle(nWidthPB < 240 ? "" : _("Eval"));
- PaintEvalGraph();
- SetDialogTitle(EvalGraphDlg, t);
-}
-
-static void
EvalClick (int x, int y)
{
int index = GetMoveIndexFromPoint( x, y );
{ 0, 2, 0, NULL, NULL, "", NULL, EndMark , "" }
};
+static void
+DisplayEvalGraph ()
+{ // back-end painting; calls back front-end primitives for lines, rectangles and text
+ char *t = MakeEvalTitle(_(title));
+ nWidthPB = disp->max; nHeightPB = disp->value;
+ if(t != title && nWidthPB < 340) t = MakeEvalTitle(nWidthPB < 240 ? "" : _("Eval"));
+ PaintEvalGraph();
+ GraphExpose(graphOptions, 0, 0, nWidthPB, nHeightPB);
+ SetDialogTitle(EvalGraphDlg, t);
+}
+
static Option *
EvalCallback (int button, int x, int y)
{
{
if (GenericPopUp(graphOptions, _(title), EvalGraphDlg, BoardWindow, NONMODAL, 1)) {
InitializeEvalGraph(&graphOptions[0], 0, 0); // first time: add callbacks and initialize pens
+ disp = graphOptions;
} else {
SetDialogTitle(EvalGraphDlg, _(title));
SetIconName(EvalGraphDlg, _(title));