#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
// 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
# 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__)
// 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)
// 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)
#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
// ----------------------------------------------------------------------------
#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
#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
#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
#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 | \
#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
*/
WXK_WINDOWS_LEFT,
WXK_WINDOWS_RIGHT,
- WXK_WINDOWS_MENU
+ WXK_WINDOWS_MENU ,
+ WXK_COMMAND
};
#if wxUSE_HOTKEY
#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++
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,
#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
#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. */
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
classname(const classname&); \
classname& operator=(const classname&);
+#define DECLARE_NO_ASSIGN_CLASS(classname) \
+ private: \
+ classname& operator=(const classname&);
+
#endif
// _WX_DEFS_H_