ICSInputBoxUp = False, askQuestionUp = False,
filenameUp = False, promotionUp = False, pmFromX = -1, pmFromY = -1,
errorUp = False, errorExitStatus = -1, lineGap, defaultLineGap;
+Dimension textHeight;
Pixel timerForegroundPixel, timerBackgroundPixel;
Pixel buttonForegroundPixel, buttonBackgroundPixel;
char *chessDir, *programName, *programVersion,
{ "EvalGraphProc", EvalGraphProc}, // [HGM] Winboard_x avaluation graph window
{ "ShowGameListProc", ShowGameListProc },
{ "ShowMoveListProc", HistoryShowProc},
- { "EditTagsProc", EditCommentProc },
+ { "EditTagsProc", EditTagsProc },
{ "EditBookProc", EditBookProc },
{ "EditCommentProc", EditCommentProc },
{ "IcsInputBoxProc", IcsInputBoxProc },
}
}
#if HAVE_LIBXPM
- if(appData.monoMode == oldMono)
+ if(appData.monoMode != oldMono)
CreateAnimVars();
#endif
oldMono = appData.monoMode;
messageArgs, XtNumber(messageArgs));
XtSetArg(args[0], XtNtop, XtChainTop);
XtSetArg(args[1], XtNbottom, XtChainTop);
- XtSetValues(messageWidget, args, 2);
+ XtSetValues(messageWidget, args, 3);
widgetList[j++] = boardWidget =
XtCreateWidget("board", widgetClass, formWidget, boardArgs,
fprintf(stderr, _("%s: messageWidget geometry error %d %d %d %d %d\n"),
programName, gres, w, h, wr, hr);
}
+ textHeight = hr; // [HGM] save height for use in generic popup
/* !! end hack */
XtSetArg(args[0], XtNleft, XtChainLeft); // [HGM] glue ends for good run-time sizing
XtSetArg(args[1], XtNright, XtChainRight);
drawHighlight(toX, toY, highlineGC);
}
}
+ if(toX<0) // clearing the highlights must have damaged arrow
+ DrawArrowHighlight(hi1X, hi1Y, hi2X, hi2Y); // for now, redraw it (should really be cleared!)
hi1X = fromX;
hi1Y = fromY;
hi2X = toX;
hop = abs(fromX-toX) == 1 && abs(fromY-toY) == 2 || abs(fromX-toX) == 2 && abs(fromY-toY) == 1;
#endif
- if (appData.debugMode) {
- fprintf(debugFP, hop ? _("AnimateMove: piece %d hops from %d,%d to %d,%d \n") :
- _("AnimateMove: piece %d slides from %d,%d to %d,%d \n"),
- piece, fromX, fromY, toX, toY); }
-
ScreenSquare(fromX, fromY, &start, &startColor);
ScreenSquare(toX, toY, &finish, &endColor);
// Polygon( hdc, arrow, 7 );
}
+void
+ArrowDamage (int s_col, int s_row, int d_col, int d_row)
+{
+ int hor, vert, i;
+ hor = 64*s_col + 32; vert = 64*s_row + 32;
+ for(i=0; i<= 64; i++) {
+ damage[0][vert+6>>6][hor+6>>6] = True;
+ damage[0][vert-6>>6][hor+6>>6] = True;
+ damage[0][vert+6>>6][hor-6>>6] = True;
+ damage[0][vert-6>>6][hor-6>>6] = True;
+ hor += d_col - s_col; vert += d_row - s_row;
+ }
+}
+
/* [AS] Draw an arrow between two squares */
void
DrawArrowBetweenSquares (int s_col, int s_row, int d_col, int d_row)
{
- int s_x, s_y, d_x, d_y, hor, vert, i;
+ int s_x, s_y, d_x, d_y;
if( s_col == d_col && s_row == d_row ) {
return;
A_WIDTH = squareSize / 14.; //[HGM] make float
DrawArrowBetweenPoints( s_x, s_y, d_x, d_y );
-
- hor = 64*s_col + 32; vert = 64*s_row + 32;
- for(i=0; i<= 64; i++) {
- damage[0][vert+6>>6][hor+6>>6] = True;
- damage[0][vert-6>>6][hor+6>>6] = True;
- damage[0][vert+6>>6][hor-6>>6] = True;
- damage[0][vert-6>>6][hor-6>>6] = True;
- hor += d_col - s_col; vert += d_row - s_row;
- }
+ ArrowDamage(s_col, s_row, d_col, d_row);
}
Boolean