removed trailing whitespace
[xboard.git] / nhistory.c
index 2cddab6..809cbfb 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * New (WinBoard-style) Move history for XBoard
  *
 /*
  * New (WinBoard-style) Move history for XBoard
  *
- * Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ * Copyright 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
  * ------------------------------------------------------------------------
  *
  * GNU XBoard is free software: you can redistribute it and/or modify
  * ------------------------------------------------------------------------
  *
  * GNU XBoard is free software: you can redistribute it and/or modify
@@ -15,7 +15,7 @@
  * General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
  * General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program. If not, see http://www.gnu.org/licenses/. 
+ * along with this program. If not, see http://www.gnu.org/licenses/.
  *
  * ------------------------------------------------------------------------
  ** See the file ChangeLog for a revision history.  */
  *
  * ------------------------------------------------------------------------
  ** See the file ChangeLog for a revision history.  */
@@ -26,8 +26,8 @@
 #include <stdlib.h>
 
 #include "common.h"
 #include <stdlib.h>
 
 #include "common.h"
+#include "frontend.h"
 #include "backend.h"
 #include "backend.h"
-#include "xhistory.h"
 #include "dialogs.h"
 #include "gettext.h"
 
 #include "dialogs.h"
 #include "gettext.h"
 
@@ -62,13 +62,33 @@ AppendToHistoryMemo (char * text, int bold, int colorNr)
     return AppendText(&historyOptions[0], text); // for now ignore bold & color stuff, as Xaw cannot handle that
 }
 
     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;
 
 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[] = {
 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 , "" }
 };
 
 {   0,           NO_OK,             0, NULL, (void*) NULL, "", NULL, EndMark , "" }
 };
 
+void
+ScrollToCurrent (int caretPos)
+{
+    ScrollToCursor(&historyOptions[0], caretPos);
+}
+
 // ------------ standard entry points into MoveHistory code -----------
 
 Boolean
 // ------------ standard entry points into MoveHistory code -----------
 
 Boolean
@@ -87,7 +107,7 @@ void
 HistoryPopUp ()
 {
     if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
 HistoryPopUp ()
 {
     if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
-       AddHandler(&historyOptions[0], 0);
+       AddHandler(&historyOptions[0], HistoryDlg, 0);
     MarkMenu("View.MoveHistory", HistoryDlg);
 }
 
     MarkMenu("View.MoveHistory", HistoryDlg);
 }