From 8a0368b7169965529802961fbd16fdfacf3c639d Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Sun, 14 Oct 2012 12:49:28 +0200 Subject: [PATCH] Split xhistory.c in front-end and middle-end part --- Makefile.am | 3 +- nhistory.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ xaw/xboard.c | 3 +- xaw/xhistory.c | 52 +--------------------------- xaw/xhistory.h | 1 + xhistory.c | 59 +------------------------------- 6 files changed, 111 insertions(+), 112 deletions(-) create mode 100644 nhistory.c diff --git a/Makefile.am b/Makefile.am index d86aba3..b56b362 100644 --- a/Makefile.am +++ b/Makefile.am @@ -11,6 +11,7 @@ endif ### define sources for the front-end and backend GTKsources = xboard.c xevalgraph.c xgamelist.c \ + xedittags.c xedittags.h \ xhistory.c xoptions.c xboard.h \ xengineoutput.c xevalgraph.h xgamelist.h \ xhistory.h @@ -42,7 +43,7 @@ backendsources = backend.c backend.h backendz.h \ dialogs.c dialogs.h \ engineoutput.c nengineoutput.c engineoutput.h \ evalgraph.c evalgraph.h \ - history.c \ + history.c nhistory.c \ menus.c menus.h \ usounds.c usystem.c usystem.h \ $(ZPY) diff --git a/nhistory.c b/nhistory.c new file mode 100644 index 0000000..aadae07 --- /dev/null +++ b/nhistory.c @@ -0,0 +1,105 @@ +/* + * New (WinBoard-style) Move history for XBoard + * + * Copyright 2009, 2010, 2011, 2012 Free Software Foundation, Inc. + * ------------------------------------------------------------------------ + * + * GNU XBoard is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or (at + * your option) any later version. + * + * GNU XBoard is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * 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/. + * + * ------------------------------------------------------------------------ + ** See the file ChangeLog for a revision history. */ + +#include "config.h" + +#include +#include + +#include "common.h" +#include "backend.h" +#include "xhistory.h" +#include "xboard.h" +#include "dialogs.h" +#include "gettext.h" + +#ifdef ENABLE_NLS +# define _(s) gettext (s) +# define N_(s) gettext_noop (s) +#else +# define _(s) (s) +# define N_(s) s +#endif + +// templates for calls into back-end (= history.c; should be moved to history.h header shared with it!) +void RefreshMemoContent P((void)); +void MemoContentUpdated P((void)); + +// variables in xoptions.c +extern Option historyOptions[]; + +// ------------- low-level front-end actions called by MoveHistory back-end ----------------- + +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 +} + +char *historyText; + +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); +} diff --git a/xaw/xboard.c b/xaw/xboard.c index 69079be..7669269 100644 --- a/xaw/xboard.c +++ b/xaw/xboard.c @@ -263,7 +263,6 @@ Boolean TempBackwardActive = False; void ManInner P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); void DisplayMove P((int moveNumber)); void ICSInitScript P((void)); -void SelectMove P((Widget w, XEvent * event, String * params, Cardinal * nParams)); void update_ics_width P(()); int CopyMemoProc P(()); @@ -378,7 +377,7 @@ XtActionsRec boardActions[] = { { "GenericPopDown", (XtActionProc) GenericPopDown }, { "ErrorPopDown", (XtActionProc) ErrorPopDown }, { "CopyMemoProc", (XtActionProc) CopyMemoProc }, - { "SelectMove", (XtActionProc) SelectMove }, + { "SelectMove", (XtActionProc) SelectMoveX }, { "LoadSelectedProc", LoadSelectedProc }, { "SetFilterProc", SetFilterProc }, { "TypeInProc", TypeInProc }, diff --git a/xaw/xhistory.c b/xaw/xhistory.c index 4277f82..51ebf5c 100644 --- a/xaw/xhistory.c +++ b/xaw/xhistory.c @@ -78,20 +78,8 @@ HighlightMove (int from, int to, Boolean 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) { @@ -121,7 +109,7 @@ char historyTranslations[] = : extend-end() SelectMove() \n"; void -SelectMove (Widget w, XEvent * event, String * params, Cardinal * nParams) +SelectMoveX (Widget w, XEvent * event, String * params, Cardinal * nParams) { XawTextPosition index, dummy; @@ -129,41 +117,3 @@ SelectMove (Widget w, XEvent * event, String * params, Cardinal * nParams) 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); -} diff --git a/xaw/xhistory.h b/xaw/xhistory.h index 90f0c9b..e5f67c6 100644 --- a/xaw/xhistory.h +++ b/xaw/xhistory.h @@ -25,5 +25,6 @@ void HistoryShowProc P((void)); Boolean MoveHistoryIsUp P((void)); +void SelectMoveX P((Widget w, XEvent * event, String * params, Cardinal * nParams)); #endif /* XB_XHISTLIST */ diff --git a/xhistory.c b/xhistory.c index 4277f82..bf5a26d 100644 --- a/xhistory.c +++ b/xhistory.c @@ -46,10 +46,8 @@ #include #include "common.h" -#include "frontend.h" #include "backend.h" #include "xhistory.h" -#include "xboard.h" #include "dialogs.h" #include "gettext.h" @@ -62,11 +60,9 @@ #endif // templates for calls into back-end (= history.c; should be moved to history.h header shared with it!) -void RefreshMemoContent P((void)); -void MemoContentUpdated P((void)); void FindMoveByCharIndex P(( int char_index )); -// variables in xoptions.c +// variables in nhistory.c extern Option historyOptions[]; // ------------- low-level front-end actions called by MoveHistory back-end ----------------- @@ -79,20 +75,6 @@ HighlightMove (int from, int to, Boolean highlight) } 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) { Arg args[10]; @@ -115,7 +97,6 @@ ScrollToCurrent (int caretPos) // ------------------------------ callbacks -------------------------- -char *historyText; char historyTranslations[] = ": select-start() \n \ : extend-end() SelectMove() \n"; @@ -129,41 +110,3 @@ SelectMove (Widget w, XEvent * event, String * params, Cardinal * nParams) 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); -} -- 1.7.0.4