X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=xaw%2Fxhistory.c;h=6aa79f265ab835a36151745bc5cfc4a53fa238f0;hb=HEAD;hp=4277f82fea9db2d49a403b40aba0bbcaf810d946;hpb=e6f4f8fdada1a701e4be2e4807920dbcad697fb1;p=xboard.git diff --git a/xaw/xhistory.c b/xaw/xhistory.c index 4277f82..6aa79f2 100644 --- a/xaw/xhistory.c +++ b/xaw/xhistory.c @@ -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[] = ": select-start() \n \ -: extend-end() SelectMove() \n"; +: 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); -}