/*
* xhistory.c -- Move list window, part of X front end for XBoard
*
- * Copyright 2000, 2009, 2010 Free Software Foundation, Inc.
+ * Copyright 2000, 2009, 2010, 2011 Free Software Foundation, Inc.
* ------------------------------------------------------------------------
*
* GNU XBoard is free software: you can redistribute it and/or modify
#include "xboard.h"
#include "xhistory.h"
#include "gettext.h"
+#include "xevalgraph.h"
#ifdef ENABLE_NLS
# define _(s) gettext (s)
}
j=0;
XtSetArg(args[j], XtNleftBitmap, None); j++;
- XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Move History"),
+ XtSetValues(XtNameToWidget(menuBarWidget, "menuView.Show Move History"),
args, j);
}
void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current){
int i,b,m;
+ Widget scroll;
if(hist){
if(last >= hist->aNr) HistoryAlloc(last+_LL_);
for(i=0;i<last;i++) {
strncpy(hist->white[i/2+1], movelist[i], p-movelist[i]);
hist->white[i/2+1][p-movelist[i]] = NULLCHAR;
} else {
- safeStrCpy(hist->white[i/2+1],movelist[i], sizeof(hist->white[i/2+1])/sizeof(hist->white[i/2+1][0]));
+ safeStrCpy(hist->white[i/2+1],movelist[i], MOVE_LEN);
}
} else {
- safeStrCpy(hist->white[i/2+1],dots, sizeof(hist->white[i/2+1])/sizeof(hist->white[i/2+1][0]));
+ safeStrCpy(hist->white[i/2+1],dots, MOVE_LEN);
}
} else {
if(movelist[i][0]) {
strncpy(hist->black[i/2+1], movelist[i], p-movelist[i]);
hist->black[i/2+1][p-movelist[i]] = NULLCHAR;
} else {
- safeStrCpy(hist->black[i/2+1],movelist[i], sizeof(hist->black[i/2+1])/sizeof(hist->black[i/2+1][0]));
+ safeStrCpy(hist->black[i/2+1],movelist[i], MOVE_LEN);
}
} else {
- safeStrCpy(hist->black[i/2+1],"", sizeof(hist->black[i/2+1])/sizeof(hist->black[i/2+1][0]));
+ safeStrCpy(hist->black[i/2+1],"", MOVE_LEN);
}
}
}
- safeStrCpy(hist->black[last/2+1],"", sizeof(hist->black[last/2+1])/sizeof(hist->black[last/2+1][0]));
+ safeStrCpy(hist->black[last/2+1],"", MOVE_LEN);
b=first/2;
m=(last+3)/2-b;
XawFormDoLayout(hist->vbox, False);
if(current) XawListHighlight(hist->mvb, current/2+1);
else XawListUnhighlight(hist->mvb);
}
+ if(scroll = XtNameToWidget(hist->sh, "*form.viewport.vertical")) { // [HGM] always scroll to bottom
+ static char *params[3] = { "", "Forward", "FullLength" };
+ static XEvent event;
+ XtCallActionProc(scroll, "StartScroll", &event, params+1, 1);
+ XtCallActionProc(scroll, "NotifyScroll", &event, params+2, 1);
+ XtCallActionProc(scroll, "EndScroll", &event, params, 0);
+ }
}
EvalGraphSet( first, last, current, pvInfoList ); // piggy-backed
}
CatchDeleteWindow(hist->sh, "HistoryPopDown");
for(i=1;i<hist->aNr;i++){
- safeStrCpy(hist->white[i],dots, sizeof(hist->white[i])/sizeof(hist->white[i][0]));
- safeStrCpy(hist->black[i],"", sizeof(hist->black[i])/sizeof(hist->black[i][0]));
+ safeStrCpy(hist->white[i],dots, MOVE_LEN);
+ safeStrCpy(hist->black[i],"", MOVE_LEN);
}
if(wpMoveHistory.width > 0) {
j=0;
XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++;
- XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Move History"),
+ XtSetValues(XtNameToWidget(menuBarWidget, "menuView.Show Move History"),
args, j);
hist->Up=True;
}