2 * frontend.h -- Interface exported by all XBoard front ends
4 * Copyright 1991 by Digital Equipment Corporation, Maynard,
7 * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,
8 * 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
10 * Enhancements Copyright 2005 Alessandro Scotti
12 * The following terms apply to Digital Equipment Corporation's copyright
14 * ------------------------------------------------------------------------
17 * Permission to use, copy, modify, and distribute this software and its
18 * documentation for any purpose and without fee is hereby granted,
19 * provided that the above copyright notice appear in all copies and that
20 * both that copyright notice and this permission notice appear in
21 * supporting documentation, and that the name of Digital not be
22 * used in advertising or publicity pertaining to distribution of the
23 * software without specific, written prior permission.
25 * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
26 * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
27 * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
28 * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
29 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
30 * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
32 * ------------------------------------------------------------------------
34 * The following terms apply to the enhanced version of XBoard
35 * distributed by the Free Software Foundation:
36 * ------------------------------------------------------------------------
38 * GNU XBoard is free software: you can redistribute it and/or modify
39 * it under the terms of the GNU General Public License as published by
40 * the Free Software Foundation, either version 3 of the License, or (at
41 * your option) any later version.
43 * GNU XBoard is distributed in the hope that it will be useful, but
44 * WITHOUT ANY WARRANTY; without even the implied warranty of
45 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
46 * General Public License for more details.
48 * You should have received a copy of the GNU General Public License
49 * along with this program. If not, see http://www.gnu.org/licenses/. *
51 *------------------------------------------------------------------------
52 ** See the file ChangeLog for a revision history. */
59 char *T_ P((char *s));
60 void ModeHighlight P((void));
61 void SetICSMode P((void));
62 void SetGNUMode P((void));
63 void SetNCPMode P((void));
64 void SetCmailMode P((void));
65 void SetTrainingModeOn P((void));
66 void SetTrainingModeOff P((void));
67 void SetUserThinkingEnables P((void));
68 void SetMachineThinkingEnables P((void));
69 void DisplayTitle P((String title));
70 void DisplayMessage P((String message, String extMessage));
71 void DisplayMoveError P((String message));
73 void DisplayNote P((String message));
75 void DisplayInformation P((String message));
76 void AskQuestion P((String title, String question, String replyPrefix,
78 void DisplayIcsInteractionTitle P((String title));
79 void ParseArgsFromString P((char *p));
80 void ParseArgsFromFile P((FILE *f));
81 void DrawPosition P((int fullRedraw, Board board));
82 void ResetFrontEnd P((void));
83 void NotifyFrontendLogin P((void));
84 void CommentPopUp P((String title, String comment));
85 void CommentPopDown P((void));
86 void EditCommentPopUp P((int index, String title, String text));
87 void ErrorPopDown P((void));
88 int EventToSquare P((int x, int limit));
89 void DrawSeekAxis P(( int x, int y, int xTo, int yTo ));
90 void DrawSeekBackground P(( int left, int top, int right, int bottom ));
91 void DrawSeekText P((char *buf, int x, int y));
92 void DrawSeekDot P((int x, int y, int color));
93 void PopUpMoveDialog P((char first));
95 void RingBell P((void));
97 void PlayIcsWinSound P((void));
98 void PlayIcsLossSound P((void));
99 void PlayIcsDrawSound P((void));
100 void PlayIcsUnfinishedSound P((void));
101 void PlayAlarmSound P((void));
102 void PlayTellSound P((void));
103 int PlaySoundFile P((char *name));
104 void PlaySoundByColor P((void));
105 void EchoOn P((void));
106 void EchoOff P((void));
108 void Colorize P((ColorClass cc, int continuation));
109 char *InterpretFileName P((char *name, char *dir));
110 void DoSleep P((int n));
111 void DoEvents P((void));
113 char *UserName P((void));
114 char *HostName P((void));
116 int ClockTimerRunning P((void));
117 int StopClockTimer P((void));
118 void StartClockTimer P((long millisec));
119 void DisplayWhiteClock P((long timeRemaining, int highlight));
120 void DisplayBlackClock P((long timeRemaining, int highlight));
121 void UpdateLogos P((int display));
123 int LoadGameTimerRunning P((void));
124 int StopLoadGameTimer P((void));
125 void StartLoadGameTimer P((long millisec));
126 void AutoSaveGame P((void));
128 void ScheduleDelayedEvent P((DelayedEventCallback cb, long millisec));
129 DelayedEventCallback GetDelayedEvent P((void));
130 void CancelDelayedEvent P((void));
131 // [HGM] mouse: next six used by mouse handler, which was moved to backend
132 extern int fromX, fromY, toX, toY;
133 void PromotionPopUp P((char choice));
134 void DragPieceBegin P((int x, int y, Boolean instantly));
135 void DragPieceEnd P((int x, int y));
136 void DragPieceMove P((int x, int y));
137 void LeftClick P((ClickType c, int x, int y));
138 int RightClick P((ClickType c, int x, int y, int *col, int *row));
140 int StartChildProcess P((char *cmdLine, char *dir, ProcRef *pr));
141 void DestroyChildProcess P((ProcRef pr, int/*boolean*/ signal));
142 void InterruptChildProcess P((ProcRef pr));
143 void RunCommand P((char *buf));
145 int OpenTelnet P((char *host, char *port, ProcRef *pr));
146 int OpenTCP P((char *host, char *port, ProcRef *pr));
147 int OpenCommPort P((char *name, ProcRef *pr));
148 int OpenLoopback P((ProcRef *pr));
149 int OpenRcmd P((char *host, char *user, char *cmd, ProcRef *pr));
151 typedef void (*InputCallback) P((InputSourceRef isr, VOIDSTAR closure,
152 char *buf, int count, int error));
153 /* pr == NoProc means the local keyboard */
154 InputSourceRef AddInputSource P((ProcRef pr, int lineByLine,
155 InputCallback func, VOIDSTAR closure));
156 void RemoveInputSource P((InputSourceRef isr));
158 /* pr == NoProc means the local display */
159 int OutputToProcess P((ProcRef pr, char *message, int count, int *outError));
160 int OutputToProcessDelayed P((ProcRef pr, char *message, int count,
161 int *outError, long msdelay));
163 void CmailSigHandlerCallBack P((InputSourceRef isr, VOIDSTAR closure,
164 char *buf, int count, int error));
166 extern ProcRef cmailPR;
167 extern int shiftKey, controlKey;
169 /* in xgamelist.c or winboard.c */
170 void GLT_ClearList();
171 void GLT_DeSelectList();
172 void GLT_AddToList( char *name );
173 Boolean GLT_GetFromList( int index, char *name );
175 extern char lpUserGLT[];
176 extern char *homeDir;
178 /* these are in wgamelist.c */
179 void GameListPopUp P((FILE *fp, char *filename));
180 void GameListPopDown P((void));
181 void GameListHighlight P((int index));
182 void GameListDestroy P((void));
183 void GameListUpdate P((void));
184 FILE *GameFile P((void));
186 /* these are in wedittags.c */
187 void EditTagsPopUp P((char *tags, char **dest));
188 void TagsPopUp P((char *tags, char *msg));
189 void TagsPopDown P((void));
191 void ParseIcsTextColors P((void));
192 int ICSInitScript P((void));
193 void StartAnalysisClock P((void));
194 void EngineOutputPopUp P((void));
195 void EgineOutputPopDown P((void));
197 void SetHighlights P((int fromX, int fromY, int toX, int toY));
198 void ClearHighlights P((void));
199 void SetPremoveHighlights P((int fromX, int fromY, int toX, int toY));
200 void ClearPremoveHighlights P((void));
202 void AnimateAtomicCapture P((Board board, int fromX, int fromY, int toX, int toY));
203 void ShutDownFrontEnd P((void));
204 void BoardToTop P((void));
205 void AnimateMove P((Board board, int fromX, int fromY, int toX, int toY));
206 void HistorySet P((char movelist[][2*MOVE_LEN], int first, int last, int current));
207 void FreezeUI P((void));
208 void ThawUI P((void));
209 void ChangeDragPiece P((ChessSquare piece));
210 void CopyFENToClipboard P((void));
211 extern char *programName;
212 extern int commentUp;
213 extern char *firstChessProgramNames;
215 void GreyRevert P((Boolean grey));
216 void EnableNamedMenuItem P((char *menuRef, int state));
218 typedef struct FrontEndProgramStats_TAG {
228 } FrontEndProgramStats;
230 void SetProgramStats P(( FrontEndProgramStats * stats )); /* [AS] */
232 void EngineOutputPopUp P((void));
233 void EngineOutputPopDown P((void));
234 int EngineOutputIsUp P((void));
235 int EngineOutputDialogExists P((void));
236 void EvalGraphPopUp P((void));
237 Boolean EvalGraphIsUp P((void));
238 int EvalGraphDialogExists P((void));
239 void SlavePopUp P((void));
240 void ActivateTheme P((int new));
241 char *Col2Text P((int n));
243 /* these are in xhistory.c */
244 Boolean MoveHistoryIsUp P((void));
245 void HistoryPopUp P((void));
246 void FindMoveByCharIndex P(( int char_index ));
248 #endif /* XB_FRONTEND */