]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
avoid a bug in Carbon headers
[wxWidgets.git] / include / wx / defs.h
index fc44b548ac0039060d36b581c75a3eb45680aadc..f991cbe8a142ca463d92007ce4776496041814cd 100644 (file)
@@ -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
 
@@ -60,6 +60,8 @@
 #   pragma warning(disable:4244)    // conversion from double to float
 #   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
 #ifndef WIN32
 #   pragma warning(disable:4135)    // conversion between different integral types
 #   pragma warning(disable:4769)    // assignment of near pointer to long integer
 #   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
 // ----------------------------------------------------------------------------
     #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__)
@@ -230,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)
@@ -256,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)
@@ -271,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
 // ----------------------------------------------------------------------------
@@ -371,7 +402,11 @@ 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
@@ -389,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
@@ -400,6 +446,39 @@ 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
@@ -1100,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 | \
@@ -1738,7 +1813,8 @@ enum wxKeyCode
 
     WXK_WINDOWS_LEFT,
     WXK_WINDOWS_RIGHT,
-    WXK_WINDOWS_MENU
+    WXK_WINDOWS_MENU ,
+    WXK_COMMAND
 };
 
 #if wxUSE_HOTKEY
@@ -2018,11 +2094,15 @@ 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(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
@@ -2092,7 +2172,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. */
@@ -2125,7 +2205,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