X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e422162882bf4c5ae743fd618864e97206765fca..53c9228ead0c7c0955bdc882fc2ccc9aae8342ba:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 80896a98d8..e98d4a5498 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 @@ -95,7 +95,7 @@ // compiler defects workarounds // ---------------------------------------------------------------------------- -#if defined(__VISUALC__) && !defined(WIN32) +#if defined(__VISUALC__) && !defined(WIN32) && !defined(__WXWINCE__) // VC1.5 does not have LPTSTR type #define LPTSTR LPSTR #define LPCTSTR LPCSTR @@ -210,7 +210,7 @@ typedef short int WXTYPE; // window id is unsigned, so we must always do the cast before comparing them // (or else they would be always different!). Usign wxGetWindowId() which does // the cast itself is recommended. Note that this type can't be unsigned -// because -1 is a valid (and largely used) value for window id. +// because wxID_ANY == -1 is a valid (and largely used) value for window id. typedef int wxWindowID; // ---------------------------------------------------------------------------- @@ -229,12 +229,32 @@ typedef int wxWindowID; #define wxUSE_NESTED_CLASSES 0 #endif +// check for explicit keyword support +#ifndef HAVE_EXPLICIT + #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 + #elif defined(__MWERKS__) && (__MWERKS__ >= 0x2400) + // Metrowerks CW6 or higher has explicit + #define HAVE_EXPLICIT + #endif +#endif // !HAVE_EXPLICIT + +#ifdef HAVE_EXPLICIT + #define wxEXPLICIT explicit +#else // !HAVE_EXPLICIT + #define wxEXPLICIT +#endif // HAVE_EXPLICIT/!HAVE_EXPLICIT + // ---------------------------------------------------------------------------- // portable calling conventions macros // ---------------------------------------------------------------------------- // 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 @@ -350,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" @@ -427,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__) -# 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) // ---------------------------------------------------------------------------- @@ -1079,6 +1099,7 @@ enum wxBorder * wxRadioButton style flag */ #define wxRB_GROUP 0x0004 +#define wxRB_SINGLE 0x0008 /* * wxGauge flags @@ -1152,8 +1173,12 @@ enum wxBorder */ #define wxTC_RIGHTJUSTIFY 0x0010 #define wxTC_FIXEDWIDTH 0x0020 -#define wxTC_OWNERDRAW 0x0040 +#define wxTC_TOP 0x0000 // default +#define wxTC_LEFT 0x0020 +#define wxTC_RIGHT 0x0040 +#define wxTC_BOTTOM 0x0080 #define wxTC_MULTILINE wxNB_MULTILINE +#define wxTC_OWNERDRAW 0x0200 // wxToolBar style flags #define wxTB_HORIZONTAL wxHORIZONTAL // == 0x0004 @@ -1768,17 +1793,17 @@ 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 // macro to specify "All Files" on different platforms #if defined(__WXMSW__) || defined(__WXPM__) -# define wxALL_FILES_PATTERN "*.*" -# define wxALL_FILES gettext_noop("All files (*.*)|*.*") +# define wxALL_FILES_PATTERN wxT("*.*") +# define wxALL_FILES gettext_noop(wxT("All files (*.*)|*.*")) #else -# define wxALL_FILES_PATTERN "*" -# define wxALL_FILES gettext_noop("All files (*)|*") +# define wxALL_FILES_PATTERN wxT("*") +# define wxALL_FILES gettext_noop(wxT("All files (*)|*")) #endif // --------------------------------------------------------------------------- @@ -2063,13 +2088,24 @@ typedef GtkWidget *WXWidget; #endif #ifdef __WXGTK20__ +/* Input method thing */ +typedef struct _GtkIMMulticontext GtkIMMulticontext; +#endif // __WXGTK20__ + +#endif // __WXGTK__ + +#if defined(__WXGTK20__) || (defined(__WXX11__) && wxUSE_UNICODE) +#define wxUSE_PANGO 1 +#else +#define wxUSE_PANGO 0 +#endif + +#if wxUSE_PANGO /* Stand-ins for Pango types */ typedef struct _PangoContext PangoContext; typedef struct _PangoLayout PangoLayout; typedef struct _PangoFontDescription PangoFontDescription; -#endif // GTK+ 2.0 - -#endif // GTK +#endif #ifdef __WXMGL__ typedef struct window_t *WXWidget;