/////////////////////////////////////////////////////////////////////////////
-// Name: wxprec.h
+// Name: wx/wxprec.h
// Purpose: Includes the appropriate files for precompiled headers
// Author: Julian Smart
// Modified by:
// Created: 01/02/97
// RCS-ID: $Id$
-// Copyright: (c)
-// Licence: wxWindows licence
+// Copyright: (c) Julian Smart
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
-// check if to use precompiled headers
-#if (defined(__BORLANDC__) || defined(_MSC_VER) || defined(__WATCOMC__) || defined(__GNUWIN32__)) && defined(__WXMSW__)
-#if !NOPCH
-#define WX_PRECOMP
-#endif
-#endif
+// compiler detection; includes setup.h
+#include "wx/defs.h"
-// For some reason, this must be defined for common dialogs to work.
-#ifdef __WATCOMC__
-#define INCLUDE_COMMDLG_H 1
-#endif
+// check if to use precompiled headers: do it for most Windows compilers unless
+// explicitly disabled by defining NOPCH
+#if defined(__VISUALC__) || \
+ defined(__DMC__) || \
+ defined(__VISAGECPP__) || \
+ defined(__WATCOMC__) || \
+ defined(__BORLANDC__)
-// include the wx definitions
-#ifdef WX_PRECOMP
-#include "wx/wx.h"
-// Comment this out if you don't mind slower compilation of the wxWindows
-// library
-#include <windows.h>
-
-#ifdef GetClassInfo
-#undef GetClassInfo
+ // If user did not request NOCPH and we're not building using configure
+ // then assume user wants precompiled headers.
+ #if !defined(NOPCH) && !defined(__WX_SETUP_H__)
+ #define WX_PRECOMP
+ #endif
#endif
-#ifdef GetClassName
-#undef GetClassName
-#endif
-
-#ifdef DrawText
-#undef DrawText
+// For some reason, this must be defined for common dialogs to work.
+#ifdef __WATCOMC__
+ #define INCLUDE_COMMDLG_H 1
#endif
-#ifdef GetCharWidth
-#undef GetCharWidth
-#endif
+#ifdef WX_PRECOMP
-#ifdef StartDoc
-#undef StartDoc
-#endif
+// include "wx/chartype.h" first to ensure that UNICODE macro is correctly set
+// _before_ including <windows.h>
+#include "wx/chartype.h"
-#ifdef FindWindow
-#undef FindWindow
+// include standard Windows headers
+#if defined(__WXMSW__)
+ #include "wx/msw/wrapwin.h"
+ #include "wx/msw/wrapcctl.h"
+ #include "wx/msw/wrapcdlg.h"
+ #include "wx/msw/private.h"
+ #include "wx/msw/missing.h"
#endif
-#ifdef FindResource
-#undef FindResource
+// include <os2.h>
+#ifdef __OS2__
+# include "wx/os2/private.h"
#endif
-#else
- // always include this file (under Unix it's generated by configure)
- #include "wx/setup.h"
-#endif
+// include the most common wx headers
+#include "wx/wx.h"
+#endif // WX_PRECOMP