Fix multi-leg promotions
[xboard.git] / xaw / xhistory.c
index 4277f82..6aa79f2 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * 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
@@ -15,7 +15,7 @@
  * 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.  */
@@ -71,45 +71,26 @@ extern Option historyOptions[];
 
 // ------------- 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);
 }
 
 
@@ -118,52 +99,13 @@ ScrollToCurrent (int caretPos)
 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);
-}