X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cafc76a4bbbcb59f1c48d9c8f592c671238ffb51..8a82c9ecc9a2cba9727b538c818ebdba243eacbc:/include/wx/object.h diff --git a/include/wx/object.h b/include/wx/object.h index 23f2359656..6882c25f4a 100644 --- a/include/wx/object.h +++ b/include/wx/object.h @@ -13,7 +13,7 @@ #ifndef _WX_OBJECTH__ #define _WX_OBJECTH__ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "object.h" #endif @@ -542,6 +542,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((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 // ----------------------------------------------------------------------------