/*
* xhistory.c -- Move list window, part of X front end for XBoard
*
- * Copyright 2000,2009 Free Software Foundation, Inc.
+ * Copyright 2000, 2009, 2010 Free Software Foundation, Inc.
* ------------------------------------------------------------------------
*
* GNU XBoard is free software: you can redistribute it and/or modify
#define _LL_ 100
-extern Widget formWidget, shellWidget, boardWidget, menuBarWidget;
+extern Widget formWidget, shellWidget, boardWidget, menuBarWidget, historyShell;
extern Display *xDisplay;
extern int squareSize;
extern Pixmap xMarkPixmap;
struct History *hist=0;
String dots=" ... ";
Position gameHistoryX, gameHistoryY;
-Dimension gameHistoryW;
+Dimension gameHistoryW, gameHistoryH;
void
HistoryPopDown(w, client_data, call_data)
Arg args[16];
int j;
if(hist) {
+
+ // [HGM] remember old position
+ j = 0;
+ XtSetArg(args[j], XtNx, &gameHistoryX); j++;
+ XtSetArg(args[j], XtNy, &gameHistoryY); j++;
+ XtSetArg(args[j], XtNwidth, &gameHistoryW); j++;
+ XtSetArg(args[j], XtNheight, &gameHistoryH); j++;
+ XtGetValues(hist->sh, args, j);
+ wpMoveHistory.x = gameHistoryX - 4;
+ wpMoveHistory.y = gameHistoryY - 23;
+ wpMoveHistory.width = gameHistoryW;
+ wpMoveHistory.height = gameHistoryH;
+
XtPopdown(hist->sh);
hist->Up=False;
}
else XawListUnhighlight(hist->mvb);
}
}
+ EvalGraphSet( first, last, current, pvInfoList ); // piggy-backed
}
Widget HistoryCreate()
XtSetArg(args[j], XtNresizable, True); j++;
XtSetArg(args[j], XtNallowShellResize, True); j++;
#if TOPLEVEL
- hist->sh =
+ hist->sh = historyShell =
XtCreatePopupShell(_("Move list"), topLevelShellWidgetClass,
shellWidget, args, j);
#else
- hist->sh =
+ hist->sh = historyShell =
XtCreatePopupShell(_("Move list"), transientShellWidgetClass,
shellWidget, args, j);
#endif
form =
XtCreateManagedWidget("form", formWidgetClass, layout, args, j);
- j=0;
j = 0;
-
XtSetArg(args[j], XtNtop, XtChainTop); j++;
XtSetArg(args[j], XtNbottom, XtChainBottom); j++;
XtSetArg(args[j], XtNleft, XtChainLeft); j++;
strcpy(hist->black[i],"");
}
+ if(wpMoveHistory.width > 0) {
+ gameHistoryW = wpMoveHistory.width;
+ gameHistoryH = wpMoveHistory.height;
+ gameHistoryX = wpMoveHistory.x;
+ gameHistoryY = wpMoveHistory.y;
+ }
+
// [HGM] restore old position
+ if(gameHistoryW > 0) {
j = 0;
- XtSetArg(args[j], XtNx, &gameHistoryX); j++;
- XtSetArg(args[j], XtNy, &gameHistoryY); j++;
- XtSetArg(args[j], XtNwidth, &gameHistoryW); j++;
- XtGetValues(shellWidget, args, j);
- j = 0;
- XtSetArg(args[j], XtNx, gameHistoryX + gameHistoryW); j++;
+ XtSetArg(args[j], XtNx, gameHistoryX); j++;
XtSetArg(args[j], XtNy, gameHistoryY); j++;
+ XtSetArg(args[j], XtNwidth, gameHistoryW); j++;
+ XtSetArg(args[j], XtNheight, gameHistoryH); j++;
XtSetValues(hist->sh, args, j);
+ }
XtRealizeWidget(hist->sh);
return hist->sh;
ToNrEvent(currentMove);
}
+Boolean
+MoveHistoryIsUp()
+{
+ return hist && hist->Up;
+}