/*
* New (WinBoard-style) Move history for XBoard
*
- * Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software Foundation, Inc.
* ------------------------------------------------------------------------
*
* GNU XBoard is free software: you can redistribute it and/or modify
* 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. */
#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, "", &appData.historyFont },
{ 0, NO_OK, 0, NULL, (void*) NULL, "", NULL, EndMark , "" }
};
+void
+ScrollToCurrent (int caretPos)
+{
+ ScrollToCursor(&historyOptions[0], caretPos);
+}
+
// ------------ standard entry points into MoveHistory code -----------
Boolean
void
HistoryPopUp ()
{
- if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
- AddHandler(&historyOptions[0], 0);
+ if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, appData.topLevel))
+ AddHandler(&historyOptions[0], HistoryDlg, 0);
MarkMenu("View.MoveHistory", HistoryDlg);
}