/*
* frontend.h -- Interface exported by all XBoard front ends
- * $Id: frontend.h,v 2.2 2003/11/06 07:22:14 mann Exp $
*
- * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts.
- * Enhancements Copyright 1992-95 Free Software Foundation, Inc.
+ * Copyright 1991 by Digital Equipment Corporation, Maynard,
+ * Massachusetts.
+ *
+ * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
+ * 2007, 2008, 2009 Free Software Foundation, Inc.
+ *
+ * Enhancements Copyright 2005 Alessandro Scotti
*
* The following terms apply to Digital Equipment Corporation's copyright
* interest in XBoard:
* SOFTWARE.
* ------------------------------------------------------------------------
*
- * The following terms apply to the enhanced version of XBoard distributed
- * by the Free Software Foundation:
+ * The following terms apply to the enhanced version of XBoard
+ * distributed by the Free Software Foundation:
* ------------------------------------------------------------------------
- * This program is free software; you can redistribute it and/or modify
+ *
+ * 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 2 of the License, or
- * (at your option) any later version.
+ * the Free Software Foundation, either version 3 of the License, or (at
+ * your option) any later version.
*
- * This program 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.
+ * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * ------------------------------------------------------------------------
- */
+ * along with this program. If not, see http://www.gnu.org/licenses/. *
+ *
+ *------------------------------------------------------------------------
+ ** See the file ChangeLog for a revision history. */
#ifndef _FRONTEND
#define _FRONTEND
void DisplayIcsInteractionTitle P((String title));
void DrawPosition P((int fullRedraw, Board board));
void ResetFrontEnd P((void));
+void NotifyFrontendLogin P((void));
void CommentPopUp P((String title, String comment));
void CommentPopDown P((void));
void EditCommentPopUp P((int index, String title, String text));
+void ErrorPopDown P((void));
+int EventToSquare P((int x, int limit));
void RingBell P((void));
void PlayIcsWinSound P((void));
void ScheduleDelayedEvent P((DelayedEventCallback cb, long millisec));
DelayedEventCallback GetDelayedEvent P((void));
void CancelDelayedEvent P((void));
+// [HGM] mouse: next six used by mouse handler, which was moved to backend
+extern int fromX, fromY, toX, toY;
+typedef enum { Press, Release } ClickType;
+void PromotionPopUp P((void));
+void DragPieceBegin P((int x, int y));
+void DragPieceEnd P((int x, int y));
+void LeftClick P((ClickType c, int x, int y));
int StartChildProcess P((char *cmdLine, char *dir, ProcRef *pr));
void DestroyChildProcess P((ProcRef pr, int/*boolean*/ signal));
void ICSInitScript P((void));
void StartAnalysisClock P((void));
-void AnalysisPopUp P((char *title, char *label));
-void AnalysisPopDown P((void));
+void EngineOutputPopUp P((void));
+void EgineOutputPopDown P((void));
void SetHighlights P((int fromX, int fromY, int toX, int toY));
void ClearHighlights P((void));
void ShutDownFrontEnd P((void));
void BoardToTop P((void));
void AnimateMove P((Board board, int fromX, int fromY, int toX, int toY));
-void HistorySet P((char movelist[][2*MOVE_LEN],
- int first, int last, int current));
+void HistorySet P((char movelist[][2*MOVE_LEN], int first, int last, int current));
void FreezeUI P((void));
void ThawUI P((void));
extern char *programName;
+extern int commentUp;
+
+typedef struct FrontEndProgramStats_TAG {
+ int which;
+ int depth;
+ unsigned long nodes;
+ int score;
+ int time;
+ char * pv;
+ char * hint;
+ int an_move_index;
+ int an_move_count;
+} FrontEndProgramStats;
+
+void SetProgramStats P(( FrontEndProgramStats * stats )); /* [AS] */
#endif