#include <stdlib.h>
#include "common.h"
+#include "frontend.h"
#include "backend.h"
-#include "xhistory.h"
#include "dialogs.h"
#include "gettext.h"
return AppendText(&historyOptions[0], text); // for now ignore bold & color stuff, as Xaw cannot handle that
}
+void
+HighlightMove (int from, int to, Boolean highlight)
+{
+ HighlightText (&historyOptions[0], from, to, highlight);
+}
+
char *historyText;
+int
+SelectMove (Option *opt, int n, int x, int y, char *text, int index)
+{
+ if(n != 3 && n != 1) return FALSE; // only on button-1 and 3 press
+ FindMoveByCharIndex( index ); // [HGM] also does the actual moving to it, now
+ return (n == 3); // suppress context menu for button 3, but allow selection with button 1
+}
+
Option historyOptions[] = {
-{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 400, NULL, (void*) &historyText, "", NULL, TextBox, "" },
+{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 400, NULL, (void*) &historyText, NULL, (char**) &SelectMove, TextBox, "" },
{ 0, NO_OK, 0, NULL, (void*) NULL, "", NULL, EndMark , "" }
};
+void
+ScrollToCurrent (int caretPos)
+{
+ ScrollToCursor(&historyOptions[0], caretPos);
+}
+
// ------------ standard entry points into MoveHistory code -----------
Boolean
HistoryPopUp ()
{
if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
- AddHandler(&historyOptions[0], 0);
+ AddHandler(&historyOptions[0], HistoryDlg, 0);
MarkMenu("View.MoveHistory", HistoryDlg);
}