// headers
// ----------------------------------------------------------------------------
-#include "wx/defs.h"
#include "wx/memory.h"
class WXDLLIMPEXP_BASE wxObject;
~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
// 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
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 ;