+// All compilers get this one
+#define _WX_WANT_NEW_SIZET_WXCHAR_INT
+
+// Everyone except Visage gets the next one
+#ifndef __VISAGECPP__
+ #define _WX_WANT_DELETE_VOID
+#endif
+
+// Only visage gets this one under the correct circumstances
+#if defined(__VISAGECPP__) && __DEBUG_ALLOC__
+ #define _WX_WANT_DELETE_VOID_CONSTCHAR_SIZET
+#endif
+
+// Only VC++ 6.0 and CodeWarrior compilers get overloaded delete that matches new
+#if ( defined(__VISUALC__) && (__VISUALC__ >= 1200) ) || (defined(__MWERKS__) && (__MWERKS__ >= 0x2400))
+ #define _WX_WANT_DELETE_VOID_WXCHAR_INT
+#endif
+
+// Now see who (if anyone) gets the array memory operators
+#if wxUSE_ARRAY_MEMORY_OPERATORS
+
+ // Everyone except Visual C++ (cause problems for VC++ - crashes)
+ #if !defined(__VISUALC__)
+ #define _WX_WANT_ARRAY_NEW_SIZET_WXCHAR_INT
+ #endif
+
+ // Everyone except Visual C++ (cause problems for VC++ - crashes)
+ #if !defined(__VISUALC__)
+ #define _WX_WANT_ARRAY_DELETE_VOID
+ #endif
+
+ // Only CodeWarrior 6 or higher
+ #if defined(__MWERKS__) && (__MWERKS__ >= 0x2400)
+ #define _WX_WANT_ARRAY_DELETE_VOID_WXCHAR_INT
+ #endif
+
+#endif // wxUSE_ARRAY_MEMORY_OPERATORS
+
+#endif // WXDEBUG && wxUSE_MEMORY_TRACING
+
+// ----------------------------------------------------------------------------
+// wxObject: the root class of wxWidgets object hierarchy
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_BASE wxObject
+{
+ DECLARE_ABSTRACT_CLASS(wxObject)
+
+private:
+ void InitFrom(const wxObject& other);
+
+public:
+ wxObject() { m_refData = NULL; }
+ virtual ~wxObject() { UnRef(); }
+
+ wxObject(const wxObject& other)
+ {
+ InitFrom(other);
+ }
+
+ wxObject& operator=(const wxObject& other)
+ {
+ if ( this != &other )
+ {
+ UnRef();
+ InitFrom(other);
+ }
+ return *this;
+ }
+
+ bool IsKindOf(wxClassInfo *info) const;
+
+
+ // Turn on the correct set of new and delete operators
+
+#ifdef _WX_WANT_NEW_SIZET_WXCHAR_INT
+ void *operator new ( size_t size, const wxChar *fileName = NULL, int lineNum = 0 );