X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xevalgraph.c;h=ad0e96278c7bd8ad70b9e476beffbdafb22780c6;hb=4e062d14429ed3a3a251c971690bade4c8cba946;hp=ebb05651e0d069dcf8e7f5cbf4d77c2fb6fded73;hpb=3830e6aea9b487049e7e1ca9961a848f64ba98eb;p=xboard.git diff --git a/xevalgraph.c b/xevalgraph.c index ebb0565..ad0e962 100644 --- a/xevalgraph.c +++ b/xevalgraph.c @@ -6,7 +6,7 @@ * * Copyright 2005 Alessandro Scotti * - * Enhancements Copyright 2009, 2010 Free Software Foundation, Inc. + * Enhancements Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc. * * ------------------------------------------------------------------------ * @@ -90,22 +90,9 @@ extern char *getenv(); #define _LL_ 100 -// imports from xboard.c -extern Widget formWidget, shellWidget, boardWidget, menuBarWidget; -extern Display *xDisplay; -extern Window xBoardWindow; -extern int squareSize; -extern Pixmap xMarkPixmap, wIconPixmap, bIconPixmap; -extern char *layoutName; - Pixmap icons[8]; // [HGM] this front-end array translates back-end icon indicator to handle Widget outputField[2][7]; // [HGM] front-end array to translate output field to window handle - -/* Imports from backend.c */ - -/* Imports from xboard.c */ -extern Arg layoutArgs[2], formArgs[2], messageArgs[4]; -extern GC coordGC; +static char *title = N_("Evaluation graph"); //extern WindowPlacement wpEvalGraph; @@ -130,7 +117,8 @@ static HBITMAP hbmPB = NULL; #endif // [HGM] front-end, added as wrapper to avoid use of LineTo and MoveToEx in other routines (so they can be back-end) -void DrawSegment( int x, int y, int *lastX, int *lastY, int penType ) +void +DrawSegment (int x, int y, int *lastX, int *lastY, int penType) { static int curX, curY; @@ -141,7 +129,8 @@ void DrawSegment( int x, int y, int *lastX, int *lastY, int penType ) } // front-end wrapper for drawing functions to do rectangles -void DrawRectangle( int left, int top, int right, int bottom, int side, int style ) +void +DrawRectangle (int left, int top, int right, int bottom, int side, int style) { XFillRectangle(yDisplay, eGraphWindow, hbrHist[side], left, top, right-left, bottom-top); if(style != FILLED) @@ -149,14 +138,16 @@ void DrawRectangle( int left, int top, int right, int bottom, int side, int styl } // front-end wrapper for putting text in graph -void DrawEvalText(char *buf, int cbBuf, int y) +void +DrawEvalText (char *buf, int cbBuf, int y) { // the magic constants 7 and 5 should really be derived from the font size somehow XDrawString(yDisplay, eGraphWindow, coordGC, MarginX - 2 - 7*cbBuf, y+5, buf, cbBuf); } // front-end -static Pixel MakeColor(char *color ) +static Pixel +MakeColor (char *color) { XrmValue vFrom, vTo; @@ -168,7 +159,8 @@ static Pixel MakeColor(char *color ) return *(Pixel *) vTo.addr; } -static GC CreateGC(int width, char *fg, char *bg, int style) +static GC +CreateGC (int width, char *fg, char *bg, int style) { XtGCMask value_mask = GCLineWidth | GCLineStyle | GCForeground | GCBackground | GCFunction | GCPlaneMask; @@ -187,7 +179,8 @@ static GC CreateGC(int width, char *fg, char *bg, int style) // front-end. Create pens, device context and buffer bitmap for global use, copy result to display // The back-end part n the middle has been taken out and moed to PainEvalGraph() -static void DisplayEvalGraph() +static void +DisplayEvalGraph () { int j; int width; @@ -212,11 +205,14 @@ static void DisplayEvalGraph() // back-end painting; calls back front-end primitives for lines, rectangles and text PaintEvalGraph(); + XtSetArg(args[0], XtNtitle, MakeEvalTitle(_(title))); j++; + XtSetValues(evalGraphShell, args, 1); XSync(yDisplay, False); } -static void InitializeEvalGraph() +static void +InitializeEvalGraph () { pens[PEN_BLACK] = CreateGC(1, "black", "black", LineSolid); pens[PEN_DOTTED] = CreateGC(1, "#A0A0A0", "#A0A0A0", LineOnOffDash); @@ -228,10 +224,8 @@ static void InitializeEvalGraph() hbrHist[2] = CreateGC(3, "#E0E0F0", "#E0E0F0", LineSolid);; // background (a bit blueish, for contrst with yellow curve) } -void EvalClick(widget, unused, event) - Widget widget; - caddr_t unused; - XEvent *event; +void +EvalClick (Widget widget, caddr_t unused, XEvent *event) { if( widget && event->type == ButtonPress ) { int index = GetMoveIndexFromPoint( event->xbutton.x, event->xbutton.y ); @@ -244,10 +238,8 @@ void EvalClick(widget, unused, event) // This (cloned from EventProc in xboard.c) is needed as event handler, to prevent // the graph being wiped out after covering / uncovering by other windows. -void EvalEventProc(widget, unused, event) - Widget widget; - caddr_t unused; - XEvent *event; +void +EvalEventProc (Widget widget, caddr_t unused, XEvent *event) { if (!XtIsRealized(widget)) return; @@ -263,8 +255,8 @@ void EvalEventProc(widget, unused, event) } // The following routines are mutated clones of the commentPopUp routines -Widget EvalGraphCreate(name) - char *name; +Widget +EvalGraphCreate (char *name) { Arg args[16]; Widget shell, layout, form; @@ -352,17 +344,16 @@ Widget EvalGraphCreate(name) } void -EvalGraphPopUp() +EvalGraphPopUp () { Arg args[16]; int j; static int needInit = TRUE; - static char *title = _("Evaluation graph"); if (evalGraphShell == NULL) { evalGraphShell = - EvalGraphCreate(title); + EvalGraphCreate(_(title)); XtRealizeWidget(evalGraphShell); CatchDeleteWindow(evalGraphShell, "EvalGraphPopDown"); if( needInit ) { @@ -371,8 +362,8 @@ EvalGraphPopUp() } } else { j = 0; - XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++; - XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++; + XtSetArg(args[j], XtNiconName, (XtArgVal) _(title)); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) _(title)); j++; XtSetValues(evalGraphShell, args, j); } @@ -381,14 +372,15 @@ EvalGraphPopUp() j=0; XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; - XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Evaluation Graph"), + XtSetValues(XtNameToWidget(menuBarWidget, "menuView.Show Evaluation Graph"), args, j); evalGraphDialogUp = True; // ShowThinkingEvent(); // [HGM] thinking: might need to prompt engine for thinking output } -void EvalGraphPopDown() +void +EvalGraphPopDown () { Arg args[16]; int j; @@ -408,29 +400,27 @@ void EvalGraphPopDown() XSync(xDisplay, False); j=0; XtSetArg(args[j], XtNleftBitmap, None); j++; - XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Evaluation Graph"), + XtSetValues(XtNameToWidget(menuBarWidget, "menuView.Show Evaluation Graph"), args, j); evalGraphDialogUp = False; // ShowThinkingEvent(); // [HGM] thinking: might need to shut off thinking output } -Boolean EvalGraphIsUp() +Boolean +EvalGraphIsUp () { return evalGraphDialogUp; } -int EvalGraphDialogExists() +int +EvalGraphDialogExists () { return evalGraphShell != NULL; } void -EvalGraphProc(w, event, prms, nprms) - Widget w; - XEvent *event; - String *prms; - Cardinal *nprms; +EvalGraphProc (Widget w, XEvent *event, String *prms, Cardinal *nprms) { if (evalGraphDialogUp) { EvalGraphPopDown(); @@ -441,7 +431,8 @@ EvalGraphProc(w, event, prms, nprms) // This function is the interface to the back-end. It is currently called through the front-end, // though, where it shares the HistorySet() wrapper with MoveHistorySet(). Once all front-ends // support the eval graph, it would be more logical to call it directly from the back-end. -void EvalGraphSet( int first, int last, int current, ChessProgramStats_Move * pvInfo ) +void +EvalGraphSet (int first, int last, int current, ChessProgramStats_Move * pvInfo) { /* [AS] Danger! For now we rely on the pvInfo parameter being a static variable! */