X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e78c47e3b870f520fb541fd448a66608bd332806..14619f10b0bdb630206607abd0ce0319d45e095a:/include/wx/platform.h diff --git a/include/wx/platform.h b/include/wx/platform.h index 2d570db1a4..9df1cd02a2 100644 --- a/include/wx/platform.h +++ b/include/wx/platform.h @@ -14,24 +14,32 @@ #ifndef _WX_PLATFORM_H_ #define _WX_PLATFORM_H_ - -/* - Codewarrior doesn't define any Windows symbols until some headers - are included -*/ -#ifdef __MWERKS__ -# include - -# if !defined(__WXMAC__) && !defined(__WINDOWS__) && !defined(WIN32) && !defined(_WIN32_WCE) -# define __PALMOS__ 0x05000000 -# endif -#endif - #ifdef __WXMAC_XCODE__ # include # include # include +# ifndef MAC_OS_X_VERSION_10_4 +# define MAC_OS_X_VERSION_10_4 1040 +# endif +# ifndef MAC_OS_X_VERSION_10_5 +# define MAC_OS_X_VERSION_10_5 1050 +# endif +# ifndef MAC_OS_X_VERSION_10_6 +# define MAC_OS_X_VERSION_10_6 1060 +# endif +# ifndef MAC_OS_X_VERSION_10_7 +# define MAC_OS_X_VERSION_10_7 1070 +# endif +# ifndef MAC_OS_X_VERSION_10_8 +# define MAC_OS_X_VERSION_10_8 1080 +# endif # include "wx/osx/config_xcode.h" +# ifndef __WXOSX__ +# define __WXOSX__ 1 +# endif +# ifndef __WXMAC__ +# define __WXMAC__ 1 +# endif #endif /* @@ -44,33 +52,6 @@ # endif #endif -#if defined(__PALMOS__) -# if __PALMOS__ == 0x06000000 -# define __WXPALMOS6__ 1 -# endif -# if __PALMOS__ == 0x05000000 -# define __WXPALMOS5__ 1 -# endif -# ifndef __WXPALMOS__ -# define __WXPALMOS__ 1 -# endif -# ifdef __WXMSW__ -# undef __WXMSW__ -# endif -# ifdef __WINDOWS__ -# undef __WINDOWS__ -# endif -# ifdef __WIN32__ -# undef __WIN32__ -# endif -# ifdef WIN32 -# undef WIN32 -# endif -# ifdef _WIN32 -# undef _WIN32 -# endif -#endif - #if defined(_WIN64) # ifndef _WIN32 /* @@ -93,15 +74,11 @@ # endif #endif /* Win32 */ -#if defined(__WXMSW__) +#if defined(_WIN32) # if !defined(__WINDOWS__) # define __WINDOWS__ # endif -# ifndef _WIN32 -# define _WIN32 -# endif - # ifndef WIN32 # define WIN32 # endif @@ -109,7 +86,25 @@ # ifndef __WIN32__ # define __WIN32__ # endif -#endif /* __WXMSW__ */ +#endif /* _WIN32 */ + +/* Don't use widget toolkit specific code in non-GUI code */ +#if defined(wxUSE_GUI) && !wxUSE_GUI +# ifdef __WXMSW__ +# undef __WXMSW__ +# endif +# ifdef __WXGTK__ +# undef __WXGTK__ +# endif +#endif + +#if defined(__WXGTK__) && defined(__WINDOWS__) + +# ifdef __WXMSW__ +# undef __WXMSW__ +# endif + +#endif /* __WXGTK__ && __WINDOWS__ */ /* detect MS SmartPhone */ #if defined( WIN32_PLATFORM_WFSP ) @@ -164,22 +159,28 @@ # define __WXHANDHELD__ #endif +#ifdef __ANDROID__ +# define __WXANDROID__ +# include "wx/android/config_android.h" +#endif + +#include "wx/compiler.h" + /* Include wx/setup.h for the Unix platform defines generated by configure and the library compilation options Note that it must be included before defining hardware symbols below as they - could be already defined by configure + could be already defined by configure but it must be included after defining + the compiler macros above as msvc/wx/setup.h relies on them under Windows. */ #include "wx/setup.h" -#ifdef __GCCXML__ - /* - we're using gccxml to create an XML representation of the entire - wxWidgets interface; use a special setup_gccxml.h file to fix some - of the stuff #defined by the real setup.h - */ - #include "wx/setup_gccxml.h" +/* + Convenience for any optional classes that use the wxAnyButton base class. + */ +#if wxUSE_TOGGLEBTN || wxUSE_BUTTON + #define wxHAS_ANY_BUTTON #endif @@ -239,11 +240,6 @@ # endif #endif /* wxUSE_UNICODE */ -#if defined( __MWERKS__ ) && !defined(__INTEL__) -/* otherwise MSL headers bring in WIN32 dependant APIs */ -#undef UNICODE -#endif - /* test for old versions of Borland C, normally need at least 5.82, Turbo @@ -282,25 +278,6 @@ # define wxCOMPILER_BROKEN_CONCAT_OPER #endif /* __BORLANDC__ */ -/* - Define Watcom-specific macros. -*/ -#ifndef __WATCOMC__ -# define wxWATCOM_VERSION(major,minor) 0 -# define wxCHECK_WATCOM_VERSION(major,minor) 0 -# define wxONLY_WATCOM_EARLIER_THAN(major,minor) 0 -# define WX_WATCOM_ONLY_CODE( x ) -#else -# if __WATCOMC__ < 1200 -# error "Only Open Watcom is supported in this release" -# endif - -# define wxWATCOM_VERSION(major,minor) ( major * 100 + minor * 10 + 1100 ) -# define wxCHECK_WATCOM_VERSION(major,minor) ( __WATCOMC__ >= wxWATCOM_VERSION(major,minor) ) -# define wxONLY_WATCOM_EARLIER_THAN(major,minor) ( __WATCOMC__ < wxWATCOM_VERSION(major,minor) ) -# define WX_WATCOM_ONLY_CODE( x ) x -#endif - /* OS: first of all, test for MS-DOS platform. We must do this before testing for Unix, because DJGPP compiler defines __unix__ under MS-DOS @@ -350,12 +327,6 @@ # endif # endif /* SGI */ -# if defined(__SUNPRO_CC) -# ifndef __SUNCC__ -# define __SUNCC__ __SUNPRO_CC -# endif /* Sun CC */ -# endif /* Sun CC */ - # ifdef __EMX__ # define OS2EMX_PLAIN_CHAR # endif @@ -400,17 +371,6 @@ # endif # endif -/* - OS: Classic Mac OS - */ -#elif defined(applec) || \ - defined(THINK_C) || \ - (defined(__MWERKS__) && !defined(__INTEL__)) - /* MacOS */ -# if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) -# define wxSIZE_T_IS_ULONG -# endif - /* OS: OS/2 */ @@ -434,20 +394,6 @@ # endif # define wxSIZE_T_IS_UINT -/* - OS: Palm OS - */ -#elif defined(__PALMOS__) -# ifdef __WIN32__ -# error "__WIN32__ should not be defined for PalmOS" -# endif -# ifdef __WINDOWS__ -# error "__WINDOWS__ should not be defined for PalmOS" -# endif -# ifdef __WXMSW__ -# error "__WXMSW__ should not be defined for PalmOS" -# endif - /* OS: Otherwise it must be Windows */ @@ -461,42 +407,6 @@ # error "__WIN32__ should be defined for Win32 and Win64, Win16 is not supported" # endif - /* - define another standard symbol for Microsoft Visual C++: the standard - one (_MSC_VER) is also defined by Metrowerks compiler - */ -# if defined(_MSC_VER) && !defined(__MWERKS__) -# define __VISUALC__ _MSC_VER - - /* - define special symbols for different VC version instead of writing tests - for magic numbers such as 1200, 1300 &c repeatedly - */ -# if __VISUALC__ < 1100 -# error "This Visual C++ version is too old and not supported any longer." -# elif __VISUALC__ < 1200 -# define __VISUALC5__ -# elif __VISUALC__ < 1300 -# define __VISUALC6__ -# elif __VISUALC__ < 1400 -# define __VISUALC7__ -# elif __VISUALC__ < 1500 -# define __VISUALC8__ -# elif __VISUALC__ < 1600 -# define __VISUALC9__ -# elif __VISUALC__ < 1700 -# define __VISUALC10__ -# else -# pragma message("Please update wx/platform.h to recognize this VC++ version") -# endif - -# elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) -# define __BORLANDC__ -# elif defined(__WATCOMC__) -# elif defined(__SC__) -# define __SYMANTECC__ -# endif /* compiler */ - /* size_t is the same as unsigned int for all Windows compilers we know, */ /* so define it if it hadn't been done by configure yet */ # if !defined(wxSIZE_T_IS_UINT) && !defined(wxSIZE_T_IS_ULONG) && !defined(__WIN64__) @@ -516,18 +426,6 @@ # define __X__ #endif -#ifdef __SC__ -# ifdef __DMC__ -# define __DIGITALMARS__ -# else -# define __SYMANTEC__ -# endif -#endif - -#ifdef __INTEL_COMPILER -# define __INTELC__ -#endif - /* We get "Large Files (ILP32) not supported in strict ANSI mode." #error from HP-UX standard headers when compiling with g++ without this: @@ -543,70 +441,23 @@ # include "wx/msw/libraries.h" #endif -/* - This macro can be used to test the gcc version and can be used like this: - -# if wxCHECK_GCC_VERSION(3, 1) - ... we have gcc 3.1 or later ... -# else - ... no gcc at all or gcc < 3.1 ... -# endif -*/ -#if defined(__GNUC__) && defined(__GNUC_MINOR__) - #define wxCHECK_GCC_VERSION( major, minor ) \ - ( ( __GNUC__ > (major) ) \ - || ( __GNUC__ == (major) && __GNUC_MINOR__ >= (minor) ) ) -#else - #define wxCHECK_GCC_VERSION( major, minor ) 0 -#endif - #if defined(__BORLANDC__) || (defined(__GNUC__) && __GNUC__ < 3) #define wxNEEDS_CHARPP #endif -/* - This macro can be used to test the Visual C++ version. -*/ -#ifndef __VISUALC__ -# define wxVISUALC_VERSION(major) 0 -# define wxCHECK_VISUALC_VERSION(major) 0 -#else -# define wxVISUALC_VERSION(major) ( (6 + major) * 100 ) -# define wxCHECK_VISUALC_VERSION(major) ( __VISUALC__ >= wxVISUALC_VERSION(major) ) -#endif - -/* - This macro can be used to check that the version of mingw32 compiler is - at least maj.min - */ #if ( defined( __GNUWIN32__ ) || defined( __MINGW32__ ) || \ ( defined( __CYGWIN__ ) && defined( __WINDOWS__ ) ) || \ wxCHECK_WATCOM_VERSION(1,0) ) && \ !defined(__DOS__) && \ !defined(__WXPM__) && \ !defined(__WXMOTIF__) && \ - !defined(__WXGTK__) && \ - !defined(__WXX11__) && \ - !defined(__WXPALMOS__) + !defined(__WXX11__) # include "wx/msw/gccpriv.h" #else # undef wxCHECK_W32API_VERSION # define wxCHECK_W32API_VERSION(maj, min) (0) -# undef wxCHECK_MINGW32_VERSION -# define wxCHECK_MINGW32_VERSION(maj, min) (0) #endif -/** - This is similar to wxCHECK_GCC_VERSION but for Sun CC compiler. - */ -#ifdef __SUNCC__ - /* - __SUNCC__ is 0xVRP where V is major version, R release and P patch level - */ - #define wxCHECK_SUNCC_VERSION(maj, min) (__SUNCC__ >= (((maj)<<8) | ((min)<<4))) -#else - #define wxCHECK_SUNCC_VERSION(maj, min) (0) -#endif /* Handle Darwin gcc universal compilation. Don't do this in an Apple- @@ -660,8 +511,7 @@ checking for any OS X port (Carbon and Cocoa) and __WXMAC__ is an old name for it. */ -#if defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) \ - || (defined(__DARWIN__) && !wxUSE_GUI) +#if defined(__WXOSX_CARBON__) || defined(__WXOSX_COCOA__) || defined(__WXOSX_IPHONE__) # ifndef __WXOSX__ # define __WXOSX__ 1 # endif @@ -700,6 +550,12 @@ # ifndef MAC_OS_X_VERSION_10_6 # define MAC_OS_X_VERSION_10_6 1060 # endif +# ifndef MAC_OS_X_VERSION_10_7 +# define MAC_OS_X_VERSION_10_7 1070 +# endif +# ifndef MAC_OS_X_VERSION_10_8 +# define MAC_OS_X_VERSION_10_8 1080 +# endif # else # error "only mach-o configurations are supported" # endif @@ -786,10 +642,10 @@ /* Choose which method we will use for updating menus * - in OnIdle, or when we receive a wxEVT_MENU_OPEN event. - * Presently, only Windows and GTK+ support wxEVT_MENU_OPEN. + * Presently, only Windows, OS X and GTK+ support wxEVT_MENU_OPEN. */ #ifndef wxUSE_IDLEMENUUPDATES -# if (defined(__WXMSW__) || defined(__WXGTK__)) && !defined(__WXUNIVERSAL__) +# if (defined(__WXMSW__) || defined(__WXGTK__) || defined(__WXOSX__)) && !defined(__WXUNIVERSAL__) # define wxUSE_IDLEMENUUPDATES 0 # else # define wxUSE_IDLEMENUUPDATES 1 @@ -818,31 +674,6 @@ # define wxUSE_WXDIB 1 #endif -#if defined (__WXPALMOS__) -#include "wx/palmos/missing.h" -#endif /* __WXPALMOS__ */ - -#if !defined (__WXPALMOS5__) -#define POSSEC_APPBASE -#define POSSEC_ARCHIVE -#define POSSEC_CLNTDATA -#define POSSEC_CMDLINE -#define POSSEC_CONFIG -#define POSSEC_DATETIME -#define POSSEC_DATETIME2 -#define POSSEC_DATSTRM -#define POSSEC_DIRCMN -#define POSSEC_DYNARRAY -#define POSSEC_DYNLIB -#define POSSEC_DYNLOAD -#define POSSEC_ENCCONV -#define POSSEC_EXTENDED -#define POSSEC_FFILE -#define POSSEC_FILE -#define POSSEC_FILECONF -#define POSSEC_FILEFN -#endif /* __WXPALMOS5__ */ - /* Optionally supported C++ features. */