X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/daeb83303c09f9e3225350cd8c18d0436c802b91..b4e0b521e0878a495c570af3d68b40c82b4a92b3:/include/wx/platform.h diff --git a/include/wx/platform.h b/include/wx/platform.h index be0205c91b..aed9b04776 100644 --- a/include/wx/platform.h +++ b/include/wx/platform.h @@ -24,29 +24,29 @@ #endif /* - WXMAC variants - __WXMAC_CLASSIC__ means ppc non-carbon builds, __WXMAC_CARBON__ means - carbon API available (mach or cfm builds) , __WXMAC_OSX__ means mach-o - builds, running under 10.2 + only + WXMAC variants + __WXMAC_CLASSIC__ means ppc non-carbon builds, __WXMAC_CARBON__ means + carbon API available (mach or cfm builds) , __WXMAC_OSX__ means mach-o + builds, running under 10.2 + only */ #ifdef __WXMAC__ - #if defined(__MACH__) - #define __WXMAC_OSX__ 1 - #define __WXMAC_CARBON__ 1 - #define __WXMAC_CLASSIC__ 0 + #if defined(__MACH__) + #define __WXMAC_OSX__ 1 + #define __WXMAC_CARBON__ 1 + #define __WXMAC_CLASSIC__ 0 #ifdef __WXMAC_XCODE__ #include "wx/mac/carbon/config_xcode.h" #endif - #else - #define __WXMAC_OSX__ 0 - #if TARGET_CARBON - #define __WXMAC_CARBON__ 1 - #define __WXMAC_CLASSIC__ 0 - #else - #define __WXMAC_CARBON__ 0 - #define __WXMAC_CLASSIC__ 1 - #endif - #endif + #else + #define __WXMAC_OSX__ 0 + #if TARGET_CARBON + #define __WXMAC_CARBON__ 1 + #define __WXMAC_CLASSIC__ 0 + #else + #define __WXMAC_CARBON__ 0 + #define __WXMAC_CLASSIC__ 1 + #endif + #endif #endif /* @@ -84,7 +84,8 @@ # endif /* !__WIN64__ */ #endif /* _WIN64 */ -#if defined(_WIN32) || defined(WIN32) || defined(__NT__) || defined(__WXWINCE__) +#if (defined(_WIN32) || defined(WIN32) || defined(__NT__) || defined(__WXWINCE__)) \ + && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__) # ifndef __WXMSW__ # define __WXMSW__ # endif @@ -94,13 +95,46 @@ # endif /* - see MSDN for the description of possible WINVER values, this one is a - good default and, anyhow, we check for most of the features we use - during run-time. - */ -# ifndef WINVER -# define WINVER 0x0400 -# endif + The library user may override the default setting of WINVER by defining + it in his own makefile or project file -- if it is defined, we don't + touch it at all. + + It makes sense to define WINVER as: + - either some lowish value (e.g. 0x0302) to not even compile in the + features not available in Windows version lower than some given + one + - or to a higher value than the one used by default for the given + compiler if you updated its headers to newer version of Platform + SDK, e.g. VC6 ships with 0x0400 headers by default but may also + work with 0x0500 headers and beyond + */ +# ifndef WINVER +# if defined(_MSC_VER) && _MSC_VER < 1300 + /* + VC6 defines some stuff in its default headers which is normally + only present if WINVER >= 0x0500 (FLASHW_XXX constants) which + means that our usual tests not involving WINVER sometimes fail + with it, hence explicitly define a lower WINVER value for it. + */ +# define WINVER 0x0400 +# elif defined(__DMC__) + /* + Digital Mars is distributed with a little outdated headers. + */ +# define WINVER 0x0400 +# else /* !VC++ 6 */ + /* + see MSDN for the description of possible WINVER values, this one + is the highest one defined right now (Windows Server 2003) and + we use it unless it was explicitly overridden by the user to + disable recent features support as we check for all of the + features we use which could be not available on earlier Windows + systems during run-time anyhow, so there is almost no + disadvantage in using it. + */ +# define WINVER 0x0502 +# endif /* VC++ 6/!VC++6 */ +# endif /* Win95 means Win95-style UI, i.e. Win9x/NT 4+ */ # if !defined(__WIN95__) && (WINVER >= 0x0400) @@ -109,36 +143,45 @@ #endif /* Win32 */ #if defined(__WXMSW__) || defined(__WIN32__) -# if !defined(__WINDOWS__) -# define __WINDOWS__ -# endif +# if !defined(__WINDOWS__) +# define __WINDOWS__ +# endif #endif #ifdef __WINE__ -# ifndef __WIN95__ -# define __WIN95__ -# endif +# ifndef __WIN95__ +# define __WIN95__ +# endif #endif /* WINE */ -/* detect SmartPhone */ +/* detect MS SmartPhone */ #if defined( WIN32_PLATFORM_WFSP ) -# ifndef __SMARTPHONE__ -# define __SMARTPHONE__ -# endif +# ifndef __SMARTPHONE__ +# define __SMARTPHONE__ +# endif +# ifndef __WXWINCE__ +# define __WXWINCE__ +# endif #endif /* detect PocketPC */ #if defined( WIN32_PLATFORM_PSPC ) -# ifndef __POCKETPC__ -# define __POCKETPC__ -# endif +# ifndef __POCKETPC__ +# define __POCKETPC__ +# endif +# ifndef __WXWINCE__ +# define __WXWINCE__ +# endif #endif /* detect Standard WinCE SDK */ #if defined( WCE_PLATFORM_STANDARDSDK ) -# ifndef __WINCE_STANDARDSDK__ -# define __WINCE_STANDARDSDK__ -# endif +# ifndef __WINCE_STANDARDSDK__ +# define __WINCE_STANDARDSDK__ +# endif +# ifndef __WXWINCE__ +# define __WXWINCE__ +# endif #endif #if defined(_WIN32_WCE) && !defined(WIN32_PLATFORM_WFSP) && !defined(WIN32_PLATFORM_PSPC) @@ -146,11 +189,14 @@ # ifndef __WINCE_NET__ # define __WINCE_NET__ # endif -# elif (_WIN32_WCE >= 200) +# elif (_WIN32_WCE >= 200) # ifndef __HANDHELDPC__ # define __HANDHELDPC__ # endif # endif +# ifndef __WXWINCE__ +# define __WXWINCE__ +# endif #endif /* @@ -203,7 +249,10 @@ #elif defined(__DMC__) || defined(__WATCOMC__) # undef wxUSE_IOSTREAMH # define wxUSE_IOSTREAMH 1 -#endif /* compilers not supporting iostream.h */ +#elif defined(__MINGW32__) +# undef wxUSE_IOSTREAMH +# define wxUSE_IOSTREAMH 0 +#endif /* compilers with/without iostream.h */ /* old C++ headers (like ) declare classes in the global namespace @@ -378,12 +427,6 @@ # define __UNIX__ #endif /* Unix */ -#if defined(__HPUX__) && !defined(__WXGTK__) -# ifndef __WXMOTIF__ -# define __WXMOTIF__ -# endif /* __WXMOTIF__ */ -#endif - #if defined(__WXMOTIF__) || defined(__WXX11__) # define __X__ #endif @@ -422,7 +465,7 @@ #if ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \ defined( __CYGWIN__ ) || \ (defined(__WATCOMC__) && __WATCOMC__ >= 1200) ) && \ - !defined(__DOS__) + !defined(__DOS__) && !defined(__WXMOTIF__) && !defined(__WXGTK__) && !defined(__WXX11__) # include "wx/msw/gccpriv.h" #else # undef wxCHECK_W32API_VERSION