X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/74bdbc46c3a8cda6dcd7b027c371b0bdce7c8fbb..b7282ad267ebd476ec7353e84757d5e0777af01a:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index dbd1be4c13..f0ce9ccc28 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -12,7 +12,7 @@ #ifndef _WX_DEFS_H_ #define _WX_DEFS_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "defs.h" #endif @@ -231,11 +231,14 @@ typedef int wxWindowID; // check for explicit keyword support #ifndef HAVE_EXPLICIT - // VC++ 6.0 has explicit (what about the earlier versions?) #if defined(__VISUALC__) && (__VISUALC__ > 1200) + // VC++ 6.0 has explicit (what about the earlier versions?) + #define HAVE_EXPLICIT + #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x0520) + // BC++ 4.52 doesn't support explicit, CBuilder 1 does #define HAVE_EXPLICIT - // Metrowerks CW6 or higher has explicit #elif defined(__MWERKS__) && (__MWERKS__ >= 0x2400) + // Metrowerks CW6 or higher has explicit #define HAVE_EXPLICIT #endif #endif // !HAVE_EXPLICIT @@ -251,7 +254,7 @@ typedef int wxWindowID; // ---------------------------------------------------------------------------- // stdcall is used for all functions called by Windows under Windows -#ifdef __WINDOWS__ +#if defined(__WINDOWS__) && !defined(__WXWINE__) #if defined(__GNUWIN32__) #define wxSTDCALL __attribute__((stdcall)) #else @@ -367,6 +370,27 @@ class WXDLLEXPORT wxEvent; // Very common macros // ---------------------------------------------------------------------------- +// Printf-like attribute definitions to obtain warnings with GNU C/C++ +#if defined(__GNUC__) && !wxUSE_UNICODE +# ifndef ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) +# define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) +# define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) +# define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) +# define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) +# define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) +# endif /* ATTRIBUTE_PRINTF */ +#else +# ifndef ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF_1 +# define ATTRIBUTE_PRINTF_2 +# define ATTRIBUTE_PRINTF_3 +# define ATTRIBUTE_PRINTF_4 +# define ATTRIBUTE_PRINTF_5 +# endif /* ATTRIBUTE_PRINTF */ +#endif + // everybody gets the assert and other debug macros #ifdef __cplusplus #include "wx/debug.h" @@ -444,27 +468,6 @@ class WXDLLEXPORT wxEvent; typedef void (*wxFunction) (wxObject&, wxEvent&); #endif -// Printf-like attribute definitions to obtain warnings with GNU C/C++ -#if defined(__GNUC__) && !wxUSE_UNICODE -# ifndef ATTRIBUTE_PRINTF -# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) -# define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) -# define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) -# define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) -# define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) -# define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) -# endif /* ATTRIBUTE_PRINTF */ -#else -# ifndef ATTRIBUTE_PRINTF -# define ATTRIBUTE_PRINTF -# define ATTRIBUTE_PRINTF_1 -# define ATTRIBUTE_PRINTF_2 -# define ATTRIBUTE_PRINTF_3 -# define ATTRIBUTE_PRINTF_4 -# define ATTRIBUTE_PRINTF_5 -# endif /* ATTRIBUTE_PRINTF */ -#endif - // ---------------------------------------------------------------------------- // OS mnemonics -- Identify the running OS (useful for Windows) // ---------------------------------------------------------------------------- @@ -1785,7 +1788,7 @@ enum wxPrintMode // ---------------------------------------------------------------------------- // define this macro if font handling is done using the X font names -#if defined(__WXGTK__) || defined(__X__) +#if (defined(__WXGTK__) && !defined(__WXGTK20__)) || defined(__X__) #define _WX_X_FONTLIKE #endif