]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
compilation fix
[wxWidgets.git] / include / wx / defs.h
index 0796f7ffcf92014f7e7395b9233ad6cad0059409..e59c210063c98950a3ee18acd5b2f8b4d28da713 100644 (file)
 
 // 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: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: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
@@ -233,7 +232,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)
@@ -259,7 +258,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)
@@ -274,6 +273,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
 // ----------------------------------------------------------------------------
@@ -374,7 +397,10 @@ typedef int wxWindowID;
         #define WXMAKINGDLL_BASE
     #endif
 
+    #define WXMAKINGDLL_NET
     #define WXMAKINGDLL_CORE
+    #define WXMAKINGDLL_ADV
+    #define WXMAKINGDLL_ODBC
     #define WXMAKINGDLL_HTML
     #define WXMAKINGDLL_XML
 #endif // WXMAKINGDLL
@@ -392,6 +418,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 +440,28 @@ 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_HTML
     #define WXDLLIMPEXP_HTML WXEXPORT
     #define WXDLLIMPEXP_DATA_HTML(type) WXEXPORT type
@@ -2017,6 +2076,7 @@ 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);
@@ -2322,5 +2382,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_