]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/object.h
Compile fixes
[wxWidgets.git] / include / wx / object.h
index b181ed0a84562b574456295d8e1d01be76e04356..dfb88a48c62f946e4c7fe80caeeb14b8b0483669 100644 (file)
@@ -17,7 +17,6 @@
 // headers
 // ----------------------------------------------------------------------------
 
-#include "wx/defs.h"
 #include "wx/memory.h"
 
 class WXDLLIMPEXP_BASE wxObject;
@@ -65,7 +64,8 @@ public:
 
     ~wxClassInfo();
 
-    wxObject *CreateObject() { return m_objectConstructor ? (*m_objectConstructor)() : 0; }
+    wxObject *CreateObject() const { return m_objectConstructor ? (*m_objectConstructor)() : 0; }
+    bool IsDynamic() const { return (NULL != m_objectConstructor); }
 
     const wxChar       *GetClassName() const { return m_className; }
     const wxChar       *GetBaseClassName1() const
@@ -470,13 +470,16 @@ public:
     // destroy a reference
     void UnRef();
 
+    // Make sure this object has only one reference
+    void UnShare() { AllocExclusive(); }
+
 protected:
     // ensure that our data is not shared with anybody else: if we have no
     // data, it is created using CreateRefData() below, if we have shared data
     // it is copied using CloneRefData(), otherwise nothing is done
     void AllocExclusive();
 
-    // both methods must be implemented if Unshare() is used, not pure virtual
+    // both methods must be implemented if AllocExclusive() is used, not pure virtual
     // only because of the backwards compatibility reasons
 
     // create a new m_refData
@@ -500,7 +503,7 @@ class WXDLLIMPEXP_BASE wxDynamicObject : public wxObject
 public:
     // instantiates this object with an instance of its superclass
     wxDynamicObject(wxObject* superClassInstance, const wxDynamicClassInfo *info) ;
-    ~wxDynamicObject();
+    virtual ~wxDynamicObject();
 
     void SetProperty (const wxChar *propertyName, const wxxVariant &value);
     wxxVariant GetProperty (const wxChar *propertyName) const ;