X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/eac90854bd92def117248aa59927289b7e1d5c6a..3529fcc96ad95cb60a965b4f0a1d484f37bb0f11:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index f2e95d4aff..c9cf3236c5 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -12,7 +12,7 @@ #ifndef _WX_DEFS_H_ #define _WX_DEFS_H_ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "defs.h" #endif @@ -54,16 +54,14 @@ // suppress some Visual C++ warnings #ifdef __VISUALC__ + // the only "real" warning here is 4244 but there arej ust too many of them + // in our code... one day someone should go and fix them but until then... # pragma warning(disable:4201) // nonstandard extension used: nameless struct/union # pragma warning(disable:4244) // conversion from double to float -# pragma warning(disable:4100) // unreferenced formal parameter +# pragma warning(disable:4710) // function not inlined +# pragma warning(disable:4097) // typedef used as class # pragma warning(disable:4511) // copy ctor couldn't be generated # pragma warning(disable:4512) // operator=() couldn't be generated -# pragma warning(disable:4699) // using precompiled header -# pragma warning(disable:4134) // conversion between pointers to members of same class -# pragma warning(disable:4710) // function not inlined -# pragma warning(disable:4284) // -# pragma warning(disable:4097) // #ifndef WIN32 # pragma warning(disable:4135) // conversion between different integral types # pragma warning(disable:4769) // assignment of near pointer to long integer @@ -87,6 +85,11 @@ # pragma suppress 571 // Virtual function hiding #endif // __SALFORDC__ +// suppress some Borland C++ warnings +#ifdef __BORLANDC__ +# pragma warn -inl // Functions containing reserved words and certain constructs are not expanded inline +#endif // __BORLANDC__ + // ---------------------------------------------------------------------------- // wxWindows version and compatibility defines // ---------------------------------------------------------------------------- @@ -162,7 +165,7 @@ #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100) // Watcom 11+ supports bool #define HAVE_BOOL - #elif defined(__DIGITALMARS__) + #elif defined(__DIGITALMARS__) // DigitalMars supports bool #define HAVE_BOOL #elif defined(__GNUWIN32__) || defined(__MINGW32__) || defined(__CYGWIN__) @@ -234,7 +237,7 @@ typedef int wxWindowID; // check for explicit keyword support #ifndef HAVE_EXPLICIT #if defined(__VISUALC__) && (__VISUALC__ >= 1100) - // VC++ 6.0 and 5.0 have explicit (what about the earlier versions?) + // VC++ 6.0 and 5.0 have explicit (what about earlier versions?) #define HAVE_EXPLICIT #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \ && wxCHECK_GCC_VERSION(2, 95) @@ -260,7 +263,7 @@ typedef int wxWindowID; // check for static/const/reinterpret_cast<>() #ifndef HAVE_STATIC_CAST #if defined(__VISUALC__) && (__VISUALC__ >= 1100) - // VC++ 6.0 and 5.0 have C++ casts (what about the earlier versions?) + // VC++ 6.0 and 5.0 have C++ casts (what about earlier versions?) #define HAVE_CXX_CASTS #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \ && wxCHECK_GCC_VERSION(2, 95) @@ -275,6 +278,30 @@ typedef int wxWindowID; #endif #endif // HAVE_CXX_CASTS +#ifndef HAVE_STD_WSTRING + #if defined(__VISUALC__) && (__VISUALC__ >= 1100) + // VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) + #define HAVE_STD_WSTRING + #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \ + && wxCHECK_GCC_VERSION(3, 1) + // GCC 3.1 has std::wstring; 3.0 never was in MinGW, 2.95 hasn't it + #define HAVE_STD_WSTRING + #endif +#endif + +#ifndef HAVE_STD_STRING_COMPARE + #if defined(__VISUALC__) && (__VISUALC__ >= 1100) + // VC++ 6.0 and 5.0 have std::string::compare + // (what about earlier versions?) + #define HAVE_STD_STRING_COMPARE + #elif ( defined(__MINGW32__) || defined(__CYGWIN32__) ) \ + && wxCHECK_GCC_VERSION(3, 1) + // GCC 3.1 has std::string::compare; + // 3.0 never was in MinGW, 2.95 hasn't it + #define HAVE_STD_STRING_COMPARE + #endif +#endif + // ---------------------------------------------------------------------------- // portable calling conventions macros // ---------------------------------------------------------------------------- @@ -375,8 +402,13 @@ typedef int wxWindowID; #define WXMAKINGDLL_BASE #endif + #define WXMAKINGDLL_NET #define WXMAKINGDLL_CORE + #define WXMAKINGDLL_ADV + #define WXMAKINGDLL_ODBC + #define WXMAKINGDLL_DBGRID #define WXMAKINGDLL_HTML + #define WXMAKINGDLL_XML #endif // WXMAKINGDLL // WXDLLEXPORT maps to export declaration when building the DLL, to import @@ -392,6 +424,17 @@ typedef int wxWindowID; #define WXDLLIMPEXP_DATA_BASE(type) type #endif +#ifdef WXMAKINGDLL_NET + #define WXDLLIMPEXP_NET WXEXPORT + #define WXDLLIMPEXP_DATA_NET(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_NET WXIMPORT + #define WXDLLIMPEXP_DATA_NET(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_NET + #define WXDLLIMPEXP_DATA_NET(type) type +#endif + #ifdef WXMAKINGDLL_CORE #define WXDLLIMPEXP_CORE WXEXPORT #define WXDLLIMPEXP_DATA_CORE(type) WXEXPORT type @@ -403,6 +446,50 @@ typedef int wxWindowID; #define WXDLLIMPEXP_DATA_CORE(type) type #endif +#ifdef WXMAKINGDLL_ADV + #define WXDLLIMPEXP_ADV WXEXPORT + #define WXDLLIMPEXP_DATA_ADV(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_ADV WXIMPORT + #define WXDLLIMPEXP_DATA_ADV(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_ADV + #define WXDLLIMPEXP_DATA_ADV(type) type +#endif + +#ifdef WXMAKINGDLL_ODBC + #define WXDLLIMPEXP_ODBC WXEXPORT + #define WXDLLIMPEXP_DATA_ODBC(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_ODBC WXIMPORT + #define WXDLLIMPEXP_DATA_ODBC(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_ODBC + #define WXDLLIMPEXP_DATA_ODBC(type) type +#endif + +#ifdef WXMAKINGDLL_DBGRID + #define WXDLLIMPEXP_DBGRID WXEXPORT + #define WXDLLIMPEXP_DATA_DBGRID(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_DBGRID WXIMPORT + #define WXDLLIMPEXP_DATA_DBGRID(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_DBGRID + #define WXDLLIMPEXP_DATA_DBGRID(type) type +#endif + +#ifdef WXMAKINGDLL_HTML + #define WXDLLIMPEXP_HTML WXEXPORT + #define WXDLLIMPEXP_DATA_HTML(type) WXEXPORT type +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_HTML WXIMPORT + #define WXDLLIMPEXP_DATA_HTML(type) WXIMPORT type +#else // not making nor using DLL + #define WXDLLIMPEXP_HTML + #define WXDLLIMPEXP_DATA_HTML(type) type +#endif + #ifdef WXMAKINGDLL_GL #define WXDLLIMPEXP_GL WXEXPORT #elif defined(WXUSINGDLL) @@ -411,6 +498,14 @@ typedef int wxWindowID; #define WXDLLIMPEXP_GL #endif +#ifdef WXMAKINGDLL_XML + #define WXDLLIMPEXP_XML WXEXPORT +#elif defined(WXUSINGDLL) + #define WXDLLIMPEXP_XML WXIMPORT +#else // not making nor using DLL + #define WXDLLIMPEXP_XML +#endif + // for backwards compatibility, define suffix-less versions too #define WXDLLEXPORT WXDLLIMPEXP_CORE #define WXDLLEXPORT_DATA WXDLLIMPEXP_DATA_CORE @@ -1084,10 +1179,6 @@ enum wxBorder #define wxFRAME_NO_WINDOW_MENU 0x0100 -#if WXWIN_COMPATIBILITY -#define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE -#endif - #define wxDEFAULT_FRAME_STYLE \ (wxSYSTEM_MENU | wxRESIZE_BORDER | \ wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX | \ @@ -1218,20 +1309,6 @@ enum wxBorder #define wxSP_ARROW_KEYS 0x1000 #define wxSP_WRAP 0x2000 -/* - * wxSplitterWindow flags - */ -#define wxSP_NOBORDER 0x0000 -#define wxSP_NOSASH 0x0010 -#define wxSP_BORDER 0x0020 -#define wxSP_PERMIT_UNSPLIT 0x0040 -#define wxSP_LIVE_UPDATE 0x0080 -#define wxSP_3DSASH 0x0100 -#define wxSP_3DBORDER 0x0200 -#define wxSP_FULLSASH 0x0400 -#define wxSP_3D (wxSP_3DBORDER | wxSP_3DSASH) -#define wxSP_SASH_AQUA 0x0800 - /* * wxNotebook flags */ @@ -1377,6 +1454,19 @@ enum wxID_FIND, wxID_DUPLICATE, wxID_SELECTALL, + wxID_DELETE, + wxID_REPLACE, + wxID_REPLACE_ALL, + wxID_PROPERTIES, + + wxID_VIEW_DETAILS, + wxID_VIEW_LARGEICONS, + wxID_VIEW_SMALLICONS, + wxID_VIEW_LIST, + wxID_VIEW_SORTDATE, + wxID_VIEW_SORTNAME, + wxID_VIEW_SORTSIZE, + wxID_VIEW_SORTTYPE, wxID_FILE1 = 5050, wxID_FILE2, @@ -1723,7 +1813,8 @@ enum wxKeyCode WXK_WINDOWS_LEFT, WXK_WINDOWS_RIGHT, - WXK_WINDOWS_MENU + WXK_WINDOWS_MENU , + WXK_COMMAND }; #if wxUSE_HOTKEY @@ -1960,7 +2051,7 @@ typedef ControlHandle WXWidget; #ifdef __WXCOCOA__ // NOTE: This ought to work with other compilers too, but I'm being cautious -#if defined(__GNUC__) && defined(__APPLE__) +#if (defined(__GNUC__) && defined(__APPLE__)) || defined(__MWERKS__) /* It's desirable to have type safety for Objective-C(++) code as it does at least catch typos of method names among other things. However, it is not possible to declare an Objective-C class from plain old C or C++ @@ -1980,7 +2071,7 @@ typedef klass *WX_##klass typedef struct klass *WX_##klass #endif // defined(__OBJC__) -#else // not GNU +#else // not Apple's GNU or CodeWarrior #warning "Objective-C types will not be checked by the compiler." // NOTE: typedef struct objc_object *id; // IOW, we're declaring these using the id type without using that name, @@ -1990,22 +2081,29 @@ typedef struct klass *WX_##klass #define DECLARE_WXCOCOA_OBJC_CLASS(klass) \ typedef struct objc_object *WX_##klass -#endif // defined(__GNUC__) && defined(__APPLE__) +#endif // (defined(__GNUC__) && defined(__APPLE__)) || defined(__MWERKS__) DECLARE_WXCOCOA_OBJC_CLASS(NSApplication); +DECLARE_WXCOCOA_OBJC_CLASS(NSBitmapImageRep); DECLARE_WXCOCOA_OBJC_CLASS(NSBox); DECLARE_WXCOCOA_OBJC_CLASS(NSButton); DECLARE_WXCOCOA_OBJC_CLASS(NSColor); DECLARE_WXCOCOA_OBJC_CLASS(NSControl); DECLARE_WXCOCOA_OBJC_CLASS(NSEvent); +DECLARE_WXCOCOA_OBJC_CLASS(NSImage); DECLARE_WXCOCOA_OBJC_CLASS(NSLayoutManager); DECLARE_WXCOCOA_OBJC_CLASS(NSMenu); DECLARE_WXCOCOA_OBJC_CLASS(NSMenuItem); +DECLARE_WXCOCOA_OBJC_CLASS(NSMutableArray); +DECLARE_WXCOCOA_OBJC_CLASS(NSNotification); DECLARE_WXCOCOA_OBJC_CLASS(NSPanel); +DECLARE_WXCOCOA_OBJC_CLASS(NSScrollView); +DECLARE_WXCOCOA_OBJC_CLASS(NSTableColumn); DECLARE_WXCOCOA_OBJC_CLASS(NSTableView); DECLARE_WXCOCOA_OBJC_CLASS(NSTextContainer); DECLARE_WXCOCOA_OBJC_CLASS(NSTextField); DECLARE_WXCOCOA_OBJC_CLASS(NSTextStorage); +DECLARE_WXCOCOA_OBJC_CLASS(NSThread); DECLARE_WXCOCOA_OBJC_CLASS(NSWindow); DECLARE_WXCOCOA_OBJC_CLASS(NSView); typedef WX_NSView WXWidget; // wxWindows BASE definition @@ -2075,7 +2173,7 @@ typedef int (__stdcall *WXFARPROC)(); #endif // __WXMSW__ -#if defined(__WXPM__) +#if defined(__WXPM__) || defined(__EMX__) #ifdef __EMX__ /* Need a well-known type for WXFARPROC below. MPARAM is typedef'ed too late. */ @@ -2108,7 +2206,9 @@ typedef unsigned long HIMAGELIST; typedef unsigned long HGLOBAL; typedef unsigned long DWORD; typedef unsigned short WORD; +#endif // WXPM || EMX +#if defined (__WXPM__) // WIN32 graphics types for OS/2 GPI // RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def @@ -2303,5 +2403,9 @@ typedef struct window_t *WXWidget; classname(const classname&); \ classname& operator=(const classname&); +#define DECLARE_NO_ASSIGN_CLASS(classname) \ + private: \ + classname& operator=(const classname&); + #endif // _WX_DEFS_H_