/*
* New (WinBoard-style) Move history for XBoard
*
- * Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+ * Copyright 2009, 2010, 2011, 2012, 2013, 2014, 2015 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. */
// ------------- low-level front-end actions called by MoveHistory back-end -----------------
-void
-HighlightMove (int from, int to, Boolean highlight)
-{
- if(highlight)
- XawTextSetSelection( historyOptions[0].handle, from, to ); // for lack of a better method, use selection for highighting
-}
-
-void
-ClearHistoryMemo ()
-{
- SetWidgetText(&historyOptions[0], "", HistoryDlg);
-}
-
// the bold argument says 0 = normal, 1 = bold typeface
// the colorNr argument says 0 = font-default, 1 = gray
-int
-AppendToHistoryMemo (char * text, int bold, int colorNr)
-{
- return AppendText(&historyOptions[0], text); // for now ignore bold & color stuff, as Xaw cannot handle that
-}
-
void
-ScrollToCurrent (int caretPos)
+ScrollToCursor (Option *opt, int caretPos)
{
Arg args[10];
char *s;
int len;
- GetWidgetText(&historyOptions[0], &s);
+ GetWidgetText(opt, &s);
len = strlen(s);
if(caretPos < 0 || caretPos > len) caretPos = len;
if(caretPos > len-30) { // scroll to end, which causes no flicker
static XEvent event;
- XtCallActionProc(historyOptions[0].handle, "end-of-file", &event, NULL, 0);
+ XtCallActionProc(opt->handle, "end-of-file", &event, NULL, 0);
return;
}
// the following leads to a very annoying flicker, even when no scrolling is done at all.
XtSetArg(args[0], XtNinsertPosition, caretPos); // this triggers scrolling in Xaw
XtSetArg(args[1], XtNdisplayCaret, False);
- XtSetValues(historyOptions[0].handle, args, 2);
+ XtSetValues(opt->handle, args, 2);
}
char *historyText;
char historyTranslations[] =
"<Btn3Down>: select-start() \n \
-<Btn3Up>: extend-end() SelectMove() \n";
+<Btn3Up>: extend-end(PRIMARY) SelectMove() \n";
void
-SelectMove (Widget w, XEvent * event, String * params, Cardinal * nParams)
+SelectMoveX (Widget w, XEvent * event, String * params, Cardinal * nParams)
{
XawTextPosition index, dummy;
XawTextGetSelectionPos(w, &index, &dummy);
FindMoveByCharIndex( index ); // [HGM] also does the actual moving to it, now
}
-
-Option historyOptions[] = {
-{ 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 400, NULL, (void*) &historyText, "", NULL, TextBox, "" },
-{ 0, NO_OK, 0, NULL, (void*) NULL, "", NULL, EndMark , "" }
-};
-
-// ------------ standard entry points into MoveHistory code -----------
-
-Boolean
-MoveHistoryIsUp ()
-{
- return shellUp[HistoryDlg];
-}
-
-Boolean
-MoveHistoryDialogExists ()
-{
- return DialogExists(HistoryDlg);
-}
-
-void
-HistoryPopUp ()
-{
- if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
- AddHandler(&historyOptions[0], 0);
- MarkMenu("View.MoveHistory", HistoryDlg);
-}
-
-void
-HistoryShowProc ()
-{
- if (!shellUp[HistoryDlg]) {
- ASSIGN(historyText, "");
- HistoryPopUp();
- RefreshMemoContent();
- MemoContentUpdated();
- } else PopDown(HistoryDlg);
- ToNrEvent(currentMove);
-}