]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/object.h
added IMPLEMENT_APP_CONSOLE
[wxWidgets.git] / include / wx / object.h
index 7b954025e5a2b03e7dc0f05387ddad0ca0df82a9..b065d9d92baf6de341846c0b5f1ba438cabd297b 100644 (file)
@@ -83,8 +83,10 @@ public:
     wxObject *CreateObject() { return m_objectConstructor ? (*m_objectConstructor)() : 0; }
 
     const wxChar       *GetClassName() const { return m_className; }
-    const wxChar       *GetBaseClassName1() const { return m_baseInfo1->GetClassName(); }
-    const wxChar       *GetBaseClassName2() const { return m_baseInfo2->GetClassName(); }
+    const wxChar       *GetBaseClassName1() const
+        { return m_baseInfo1 ? m_baseInfo1->GetClassName() : NULL; }
+    const wxChar       *GetBaseClassName2() const
+        { return m_baseInfo2 ? m_baseInfo2->GetClassName() : NULL; }
     const wxClassInfo  *GetBaseClass1() const { return m_baseInfo1; }
     const wxClassInfo  *GetBaseClass2() const { return m_baseInfo2; }
     int                 GetSize() const { return m_objectSize; }
@@ -415,11 +417,6 @@ inline void wxCheckCast(void *ptr)
 
 #endif // WXDEBUG && wxUSE_MEMORY_TRACING
 
-#if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT)
-// needed by wxObject::Dump
-#include "wx/iosfwrap.h"
-#endif
-
 // ----------------------------------------------------------------------------
 // wxObject: the root class of wxWindows object hierarchy
 // ----------------------------------------------------------------------------
@@ -483,11 +480,6 @@ public:
     void operator delete[] (void* buf, const wxChar*, int );
 #endif
 
-
-#if wxUSE_STD_IOSTREAM && (defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT)
-    virtual void Dump(wxSTD ostream& str);
-#endif
-
     // ref counted data handling methods
 
     // get/set
@@ -542,6 +534,35 @@ inline wxObject *wxCheckDynamicCast(wxObject *obj, wxClassInfo *classInfo)
     return obj && obj->GetClassInfo()->IsKindOf(classInfo) ? obj : NULL;
 }
 
+#if wxUSE_EXTENDED_RTTI
+class WXDLLIMPEXP_BASE wxDynamicObject : public wxObject
+{
+public:
+    // instantiates this object with an instance of its superclass
+    wxDynamicObject(wxObject* superClassInstance, const wxDynamicClassInfo *info) ;
+    ~wxDynamicObject();
+
+    void SetProperty (const wxChar *PropertyName, const wxxVariant &Value);
+    wxxVariant GetProperty (const wxChar *PropertyName) const ;
+
+    // get the runtime identity of this object
+    wxClassInfo *GetClassInfo() const
+    {
+               return const_cast<wxClassInfo*>((const wxClassInfo*)m_classInfo);
+    }
+
+    wxObject* GetSuperClassInstance() const
+    {
+        return m_superClassInstance ;
+    }
+private :
+    wxObject *m_superClassInstance ;
+    const wxDynamicClassInfo *m_classInfo;
+    struct wxDynamicObjectInternal;
+    wxDynamicObjectInternal *m_data;
+};
+#endif
+
 // ----------------------------------------------------------------------------
 // more debugging macros
 // ----------------------------------------------------------------------------