Moved most builtin controls structures into their respective C file.
Created new controls.h file private to user32.dll and moved remaining
builtin controls definitions there.
diff --git a/windows/mdi.c b/windows/mdi.c
index f6056d9..bd2e2df 100644
--- a/windows/mdi.c
+++ b/windows/mdi.c
@@ -77,10 +77,8 @@
#include "win.h"
#include "heap.h"
#include "nonclient.h"
-#include "mdi.h"
+#include "controls.h"
#include "user.h"
-#include "menu.h"
-#include "scroll.h"
#include "struct32.h"
#include "tweak.h"
#include "debugtools.h"
@@ -88,8 +86,37 @@
DEFAULT_DEBUG_CHANNEL(mdi);
+#define MDI_MAXLISTLENGTH 0x40
+#define MDI_MAXTITLELENGTH 0xa1
+
+#define MDI_NOFRAMEREPAINT 0
+#define MDI_REPAINTFRAMENOW 1
+#define MDI_REPAINTFRAME 2
+
+#define WM_MDICALCCHILDSCROLL 0x10ac /* this is exactly what Windows uses */
+
+/* "More Windows..." definitions */
+#define MDI_MOREWINDOWSLIMIT 9 /* after this number of windows, a "More Windows..."
+ option will appear under the Windows menu */
+#define MDI_IDC_LISTBOX 100
+#define MDI_IDS_MOREWINDOWS 13
+
#define MDIF_NEEDUPDATE 0x0001
+typedef struct
+{
+ UINT nActiveChildren;
+ HWND hwndChildMaximized;
+ HWND hwndActiveChild;
+ HMENU hWindowMenu;
+ UINT idFirstChild;
+ LPWSTR frameTitle;
+ UINT nTotalCreated;
+ UINT mdiFlags;
+ UINT sbRecalc; /* SB_xxx flags for scrollbar fixup */
+ HWND self;
+} MDICLIENTINFO;
+
static HBITMAP16 hBmpClose = 0;
static HBITMAP16 hBmpRestore = 0;
@@ -102,6 +129,7 @@
static HWND MDI_MoreWindowsDialog(WND*);
static void MDI_SwapMenuItems(WND *, UINT, UINT);
+static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
/* -------- Miscellaneous service functions ----------
*
* MDI_GetChildByID
@@ -124,6 +152,22 @@
ci->sbRecalc = recalc;
}
+
+/*********************************************************************
+ * MDIClient class descriptor
+ */
+const struct builtin_class_descr MDICLIENT_builtin_class =
+{
+ "MDIClient", /* name */
+ CS_GLOBALCLASS, /* style */
+ MDIClientWndProcA, /* procA */
+ NULL, /* procW (FIXME) */
+ sizeof(MDICLIENTINFO), /* extra */
+ IDC_ARROWA, /* cursor */
+ COLOR_APPWORKSPACE+1 /* brush */
+};
+
+
/**********************************************************************
* MDI_MenuModifyItem
*/
@@ -1190,12 +1234,11 @@
/**********************************************************************
- * MDIClientWndProc
+ * MDIClientWndProcA
*
* This function handles all MDI requests.
*/
-LRESULT WINAPI MDIClientWndProc( HWND hwnd, UINT message, WPARAM wParam,
- LPARAM lParam )
+static LRESULT WINAPI MDIClientWndProcA( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
LPCREATESTRUCTA cs;
MDICLIENTINFO *ci;