]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/platform.h
Document wxKill(wxSIGTERM) reliance on having an open window in wxMSW.
[wxWidgets.git] / include / wx / platform.h
index 928ca3574366a928f937701161b5f04bceab7910..5a7db0625bd7bd9f67198b886135762589d5b8d1 100644 (file)
 #endif
 
 /*
 #endif
 
 /*
-   first define Windows symbols if they're not defined on the command line: we
-   can autodetect everything we need if _WIN32 is defined
+    We use __WINDOWS__ as our main identification symbol for Microsoft Windows
+    but it's actually not predefined directly by any commonly used compilers
+    (only Watcom defines it itself and it's not supported any longer), so we
+    define it ourselves if any of the following macros is defined:
+
+    - MSVC _WIN32 (notice that this is also defined under Win64)
+    - Borland __WIN32__
+    - Our __WXMSW__ which selects Windows as platform automatically
  */
  */
-#if defined(__CYGWIN__) && defined(__WINDOWS__)
-#    ifndef __WXMSW__
-#        define __WXMSW__
-#    endif
-#endif
+#if defined(_WIN32) || defined(__WIN32__) || defined(__WXMSW__)
+#    ifndef __WINDOWS__
+#        define __WINDOWS__
+#    endif /* !__WINDOWS__ */
+#endif /* Any standard symbol indicating Windows */
 
 #if defined(_WIN64)
 #    ifndef _WIN32
 
 #if defined(_WIN64)
 #    ifndef _WIN32
 #   endif /* !__WIN64__ */
 #endif /* _WIN64 */
 
 #   endif /* !__WIN64__ */
 #endif /* _WIN64 */
 
-#if (defined(_WIN32) || defined(WIN32) || defined(__NT__) || defined(__WXWINCE__)) \
-    && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__)
-#    ifndef __WXMSW__
-#        define __WXMSW__
-#    endif
-#endif /* Win32 */
+#if defined(__WINDOWS__)
+    /* Select wxMSW under Windows if no other port is specified. */
+#   if !defined(__WXMSW__) && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__)
+#       define __WXMSW__
+#   endif
 
 
-#if defined(_WIN32)
 #   if !defined(__WINDOWS__)
 #       define __WINDOWS__
 #   endif
 
 #   if !defined(__WINDOWS__)
 #       define __WINDOWS__
 #   endif
 
+#   ifndef _WIN32
+#        define _WIN32
+#   endif
+
 #   ifndef WIN32
 #        define WIN32
 #   endif
 #   ifndef WIN32
 #        define WIN32
 #   endif
@@ -86,7 +94,7 @@
 #   ifndef __WIN32__
 #        define __WIN32__
 #   endif
 #   ifndef __WIN32__
 #        define __WIN32__
 #   endif
-#endif /* _WIN32 */
+#endif /* __WINDOWS__ */
 
 /* Don't use widget toolkit specific code in non-GUI code */
 #if defined(wxUSE_GUI) && !wxUSE_GUI
 
 /* Don't use widget toolkit specific code in non-GUI code */
 #if defined(wxUSE_GUI) && !wxUSE_GUI
 #    define wxSIZE_T_IS_UINT
 
 /*
 #    define wxSIZE_T_IS_UINT
 
 /*
-   OS: Otherwise it must be Windows
+   OS: Windows
  */
  */
-#else   /* Windows */
-#    ifndef __WINDOWS__
-#        define __WINDOWS__
-#    endif  /* Windows */
+#elif defined(__WINDOWS__)
 
     /* to be changed for Win64! */
 #    ifndef __WIN32__
 
     /* to be changed for Win64! */
 #    ifndef __WIN32__
 #    if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) && !defined(__WIN64__)
 #        define wxSIZE_T_IS_UINT
 #    endif
 #    if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) && !defined(__WIN64__)
 #        define wxSIZE_T_IS_UINT
 #    endif
+#else
+#   error "Unknown platform."
 #endif  /* OS */
 
 /*
 #endif  /* OS */
 
 /*
 #define wxNEEDS_CHARPP
 #endif
 
 #define wxNEEDS_CHARPP
 #endif
 
+#if ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \
+    ( defined( __CYGWIN__ ) && defined( __WINDOWS__ ) ) || \
+      wxCHECK_WATCOM_VERSION(1,0) ) && \
+    !defined(__DOS__) && \
+    !defined(__WXPM__) && \
+    !defined(__WXMOTIF__) && \
+    !defined(__WXX11__)
+#    include "wx/msw/gccpriv.h"
+#else
+#    undef wxCHECK_W32API_VERSION
+#    define wxCHECK_W32API_VERSION(maj, min) (0)
+#endif
+
+
 /*
     Handle Darwin gcc universal compilation.  Don't do this in an Apple-
     specific case since no sane compiler should be defining either
 /*
     Handle Darwin gcc universal compilation.  Don't do this in an Apple-
     specific case since no sane compiler should be defining either