worked on premove bug
[xboard.git] / winboard / winboard.h
index 5823b2e..fab659e 100644 (file)
@@ -1,8 +1,13 @@
 /*\r
  * WinBoard.h -- Definitions for Windows NT front end to XBoard\r
  *\r
- * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts.\r
- * Enhancements Copyright 1992-97 Free Software Foundation, Inc.\r
+ * Copyright 1991 by Digital Equipment Corporation, Maynard,\r
+ * Massachusetts. \r
+ *\r
+ * Enhancements Copyright 1992-2001, 2002, 2003, 2004, 2005, 2006,\r
+ * 2007, 2008, 2009 Free Software Foundation, Inc.\r
+ *\r
+ * Enhancements Copyright 2005 Alessandro Scotti\r
  *\r
  * The following terms apply to Digital Equipment Corporation's copyright\r
  * interest in XBoard:\r
  * SOFTWARE.\r
  * ------------------------------------------------------------------------\r
  *\r
- * The following terms apply to the enhanced version of XBoard distributed\r
- * by the Free Software Foundation:\r
+ * The following terms apply to the enhanced version of XBoard\r
+ * distributed by the Free Software Foundation:\r
  * ------------------------------------------------------------------------\r
- * This program is free software; you can redistribute it and/or modify\r
+ *\r
+ * GNU XBoard is free software: you can redistribute it and/or modify\r
  * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
+ * the Free Software Foundation, either version 3 of the License, or (at\r
+ * your option) any later version.\r
  *\r
- * This program is distributed in the hope that it will be useful,\r
- * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
- * GNU General Public License for more details.\r
+ * GNU XBoard is distributed in the hope that it will be useful, but\r
+ * WITHOUT ANY WARRANTY; without even the implied warranty of\r
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\r
+ * General Public License for more details.\r
  *\r
  * You should have received a copy of the GNU General Public License\r
- * along with this program; if not, write to the Free Software\r
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\r
- * ------------------------------------------------------------------------\r
- */\r
+ * along with this program. If not, see http://www.gnu.org/licenses/.  *\r
+ *\r
+ *------------------------------------------------------------------------\r
+ ** See the file ChangeLog for a revision history.  */\r
+\r
 #include "resource.h"\r
 #include <dlgs.h>\r
 \r
@@ -101,7 +108,7 @@ VOID ICSInitScript(VOID);
 BOOL CenterWindow(HWND hwndChild, HWND hwndParent);\r
 VOID ResizeEditPlusButtons(HWND hDlg, HWND hText, int sizeX, int sizeY, int newSizeX, int newSizeY);\r
 VOID PromotionPopup(HWND hwnd);\r
-FILE *OpenFileDialog(HWND hWnd, BOOL write, char *defName, char *defExt, \r
+FILE *OpenFileDialog(HWND hWnd, char *write, char *defName, char *defExt, \r
                     char *nameFilt, char *dlgTitle, UINT *number,\r
                     char fileTitle[MSG_SIZ], char fileName[MSG_SIZ]);\r
 VOID InputEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);\r
@@ -112,7 +119,7 @@ BOOL ChangeColor(HWND hwnd, COLORREF *which);
 VOID ChangeBoardSize(BoardSize newSize);\r
 BOOL APIENTRY MyCreateFont(HWND hwnd, MyFont *font);\r
 VOID ErrorPopDown(VOID);\r
-VOID EnsureOnScreen(int *x, int *y);\r
+VOID EnsureOnScreen(int *x, int *y, int minX, int minY);\r
 typedef char GetFunc(void *getClosure);\r
 VOID ParseArgs(GetFunc get, void *cl);\r
 HBITMAP \r
@@ -135,7 +142,8 @@ VOID ExitArgError(char *msg, char *badArg);
 #define CONSOLE_FONT 3\r
 #define COMMENT_FONT 4\r
 #define EDITTAGS_FONT 5\r
-#define NUM_FONTS 6\r
+#define MOVEHISTORY_FONT 6\r
+#define NUM_FONTS 7\r
 \r
 /* Positions of some menu items.  Origin is zero and separator lines count. */\r
 /* It's gross that these are needed. */\r
@@ -163,3 +171,20 @@ extern MyFont *font[NUM_SIZES][NUM_FONTS];
 \r
 #define COPY_TMP "wbcopy.tmp"\r
 #define PASTE_TMP "wbpaste.tmp"\r
+\r
+/* [AS] Layout management */\r
+typedef struct {\r
+    Boolean visible;\r
+    int x;\r
+    int y;\r
+    int width;\r
+    int height;\r
+} WindowPlacement;\r
+\r
+VOID InitWindowPlacement( WindowPlacement * wp );\r
+\r
+VOID RestoreWindowPlacement( HWND hWnd, WindowPlacement * wp );\r
+\r
+VOID ReattachAfterMove( LPRECT lprcOldPos, int new_x, int new_y, HWND hWndChild, WindowPlacement * pwpChild );\r
+\r
+VOID ReattachAfterSize( LPRECT lprcOldPos, int new_w, int new_h, HWND hWndChild, WindowPlacement * pwpChild );\r