Add game-list callbacks
[xboard.git] / nhistory.c
index aadae07..59b4226 100644 (file)
@@ -28,7 +28,6 @@
 #include "common.h"
 #include "backend.h"
 #include "xhistory.h"
-#include "xboard.h"
 #include "dialogs.h"
 #include "gettext.h"
 
@@ -63,10 +62,24 @@ AppendToHistoryMemo (char * text, int bold, int colorNr)
     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 , "" }
 };
 
@@ -88,7 +101,7 @@ void
 HistoryPopUp ()
 {
     if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
-       AddHandler(&historyOptions[0], 0);
+       AddHandler(&historyOptions[0], HistoryDlg, 0);
     MarkMenu("View.MoveHistory", HistoryDlg);
 }