Add -topLevel option
[xboard.git] / xhistory.c
index d79e7e8..4211de1 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * 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
@@ -23,7 +24,6 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <malloc.h>
 
 #include <X11/Intrinsic.h>
 #include <X11/StringDefs.h>
@@ -48,6 +48,9 @@
 #include "common.h"
 #include "frontend.h"
 #include "backend.h"
+#include "xhistory.h"
+#include "xboard.h"
+#include "dialogs.h"
 #include "gettext.h"
 
 #ifdef ENABLE_NLS
 # define N_(s)  s
 #endif
 
-// templates for calls into back-end
+// 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 ));
 
-int AppendText P((Option *opt, char *s));
-int GenericPopUp P((Option *option, char *title, int dlgNr));
-void MarkMenu P((char *item, int dlgNr));
-void GetWidgetText P((Option *opt, char **buf));
-
+// variables in xoptions.c
 extern Option historyOptions[];
-extern Widget shells[10];
-extern Boolean shellUp[10];
 
 // ------------- low-level front-end actions called by MoveHistory back-end -----------------
 
-void HighlightMove( int from, int to, Boolean highlight )
+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()
+void
+ClearHistoryMemo ()
 {
-    ClearTextWidget(&historyOptions[0]);
+    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 )
+int
+AppendToHistoryMemo (char * text, int bold, int colorNr)
 {
-    Arg args[10];
     return AppendText(&historyOptions[0], text); // for now ignore bold & color stuff, as Xaw cannot handle that
 }
 
-void ScrollToCurrent(int caretPos)
+void
+ScrollToCurrent (int caretPos)
 {
     Arg args[10];
     char *s;
@@ -130,51 +130,40 @@ SelectMove (Widget w, XEvent * event, String * params, Cardinal * nParams)
 }
 
 Option historyOptions[] = {
-{ 0xD, 200, 400, NULL, (void*) &historyText, "", NULL, TextBox, "" },
-{   0,  2,    0, NULL, (void*) NULL, "", NULL, EndMark , "" }
+{ 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()
+Boolean
+MoveHistoryIsUp ()
 {
-    return shellUp[7];
+    return shellUp[HistoryDlg];
 }
 
-Boolean MoveHistoryDialogExists()
+Boolean
+MoveHistoryDialogExists ()
 {
-    return shells[7] != NULL;
+    return DialogExists(HistoryDlg);
 }
 
-void HistoryPopUp()
+void
+HistoryPopUp ()
 {
-    if(GenericPopUp(historyOptions, _("Move list"), 7))
-       XtOverrideTranslations(historyOptions[0].handle, XtParseTranslationTable(historyTranslations));
-    MarkMenu("menuView.Show Move History", 7);
+    if(GenericPopUp(historyOptions, _("Move list"), HistoryDlg, BoardWindow, NONMODAL, 1))
+       AddHandler(&historyOptions[0], 0);
+    MarkMenu("Show Move History", HistoryDlg);
 }
 
 void
-HistoryShowProc(w, event, prms, nprms)
-     Widget w;
-     XEvent *event;
-     String *prms;
-     Cardinal *nprms;
+HistoryShowProc ()
 {
-  if (!shellUp[7]) {
+  if (!shellUp[HistoryDlg]) {
     ASSIGN(historyText, "");
     HistoryPopUp();
     RefreshMemoContent();
     MemoContentUpdated();
-  } else PopDown(7);
+  } else PopDown(HistoryDlg);
   ToNrEvent(currentMove);
 }
-
-// duplicate of code in winboard.c, so an move to back-end!
-void
-HistorySet( char movelist[][2*MOVE_LEN], int first, int last, int current )
-{
-    MoveHistorySet( movelist, first, last, current, pvInfoList );
-
-    EvalGraphSet( first, last, current, pvInfoList );
-}
-