From 3586d10f7287c92fc988229c384346f0a04c42ac Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Sat, 13 Oct 2007 11:45:34 +0000 Subject: [PATCH] wxVariantData no longer inherits from wxObject git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/latex/wx/variant.tex | 4 --- include/wx/variant.h | 20 ++++---------- src/common/variant.cpp | 57 ++++++++------------------------------- 3 files changed, 16 insertions(+), 65 deletions(-) diff --git a/docs/latex/wx/variant.tex b/docs/latex/wx/variant.tex index d165cd6281..892cac647e 100644 --- a/docs/latex/wx/variant.tex +++ b/docs/latex/wx/variant.tex @@ -509,10 +509,6 @@ Also note that the destructor is protected, so you can never explicitly delete a instance. Instead, \helpref{DecRef}{wxvariantdatadecref} will delete the object automatically when the reference count reaches zero. -\wxheading{Derived from} - -\helpref{wxObject}{wxobject} - \wxheading{Include files} diff --git a/include/wx/variant.h b/include/wx/variant.h index a0341750e4..9d8a681912 100644 --- a/include/wx/variant.h +++ b/include/wx/variant.h @@ -59,13 +59,11 @@ * overloading wxVariant with unnecessary functionality. */ -class WXDLLIMPEXP_BASE wxVariantData: public wxObject +class WXDLLIMPEXP_BASE wxVariantData { friend class wxVariant; public: - wxVariantData() - : wxObject(), m_count(1) - { } + wxVariantData() : m_count(1) { } // Override these to provide common functionality virtual bool Eq(wxVariantData& data) const = 0; @@ -100,9 +98,6 @@ protected: private: int m_count; - -private: - DECLARE_ABSTRACT_CLASS(wxVariantData) }; /* @@ -369,13 +364,8 @@ public:\ \ protected:\ classname m_value; \ -\ -private: \ - DECLARE_CLASS(classname##VariantData) \ };\ \ -IMPLEMENT_CLASS(classname##VariantData, wxVariantData)\ -\ wxString classname##VariantData::GetType() const\ {\ return m_value.GetClassInfo()->GetClassName();\ @@ -388,7 +378,7 @@ wxClassInfo* classname##VariantData::GetValueClassInfo()\ \ expdecl classname& operator << ( classname &value, const wxVariant &variant )\ {\ - wxASSERT( wxIsKindOf( variant.GetData(), classname##VariantData ) );\ + wxASSERT( variant.GetType() == #classname );\ \ classname##VariantData *data = (classname##VariantData*) variant.GetData();\ value = data->GetValue();\ @@ -409,7 +399,7 @@ IMPLEMENT_VARIANT_OBJECT_EXPORTED_NO_EQ(classname,wxEMPTY_PARAMETER_VALUE expdec \ bool classname##VariantData::Eq(wxVariantData& data) const \ {\ - wxASSERT( wxIsKindOf((&data), classname##VariantData) );\ + wxASSERT( GetType() == data.GetType() );\ \ classname##VariantData & otherData = (classname##VariantData &) data;\ \ @@ -426,7 +416,7 @@ IMPLEMENT_VARIANT_OBJECT_EXPORTED_NO_EQ(classname,wxEMPTY_PARAMETER_VALUE expdec \ bool classname##VariantData::Eq(wxVariantData& data) const \ {\ - wxASSERT( wxIsKindOf((&data), classname##VariantData) );\ + wxASSERT( GetType() == data.GetType() );\ \ classname##VariantData & otherData = (classname##VariantData &) data;\ \ diff --git a/src/common/variant.cpp b/src/common/variant.cpp index 65fbed6a4f..b0053916cf 100644 --- a/src/common/variant.cpp +++ b/src/common/variant.cpp @@ -49,8 +49,6 @@ using namespace std ; #include "wx/string.h" #include "wx/tokenzr.h" -IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject) - wxVariant WXDLLIMPEXP_BASE wxNullVariant; @@ -206,7 +204,6 @@ bool wxVariant::IsValueKindOf(const wxClassInfo* type) const class WXDLLIMPEXP_BASE wxVariantDataLong: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataLong) public: wxVariantDataLong() { m_value = 0; } wxVariantDataLong(long value) { m_value = value; } @@ -233,8 +230,6 @@ protected: long m_value; }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataLong, wxVariantData) - bool wxVariantDataLong::Eq(wxVariantData& data) const { wxASSERT_MSG( (data.GetType() == wxT("long")), wxT("wxVariantDataLong::Eq: argument mismatch") ); @@ -357,7 +352,6 @@ long wxVariant::GetLong() const class WXDLLIMPEXP_BASE wxVariantDoubleData: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDoubleData) public: wxVariantDoubleData() { m_value = 0.0; } wxVariantDoubleData(double value) { m_value = value; } @@ -384,8 +378,6 @@ protected: double m_value; }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDoubleData, wxVariantData) - bool wxVariantDoubleData::Eq(wxVariantData& data) const { wxASSERT_MSG( (data.GetType() == wxT("double")), wxT("wxVariantDoubleData::Eq: argument mismatch") ); @@ -497,7 +489,6 @@ double wxVariant::GetDouble() const class WXDLLIMPEXP_BASE wxVariantDataBool: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataBool) public: wxVariantDataBool() { m_value = 0; } wxVariantDataBool(bool value) { m_value = value; } @@ -524,8 +515,6 @@ protected: bool m_value; }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataBool, wxVariantData) - bool wxVariantDataBool::Eq(wxVariantData& data) const { wxASSERT_MSG( (data.GetType() == wxT("bool")), wxT("wxVariantDataBool::Eq: argument mismatch") ); @@ -640,7 +629,6 @@ bool wxVariant::GetBool() const class WXDLLIMPEXP_BASE wxVariantDataChar: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataChar) public: wxVariantDataChar() { m_value = 0; } wxVariantDataChar(const wxUniChar& value) { m_value = value; } @@ -665,8 +653,6 @@ protected: wxUniChar m_value; }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataChar, wxVariantData) - bool wxVariantDataChar::Eq(wxVariantData& data) const { wxASSERT_MSG( (data.GetType() == wxT("char")), wxT("wxVariantDataChar::Eq: argument mismatch") ); @@ -792,7 +778,6 @@ wxUniChar wxVariant::GetChar() const class WXDLLIMPEXP_BASE wxVariantDataString: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataString) public: wxVariantDataString() { } wxVariantDataString(const wxString& value) { m_value = value; } @@ -866,8 +851,6 @@ bool wxVariantDataString::Read(wxString& str) return true; } -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData) - // wxVariant **** wxVariant::wxVariant(const wxString& val, const wxString& name) @@ -952,7 +935,6 @@ wxString wxVariant::GetString() const class wxVariantDataWxObjectPtr: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataWxObjectPtr) public: wxVariantDataWxObjectPtr() { } wxVariantDataWxObjectPtr(wxObject* value) { m_value = value; } @@ -972,18 +954,15 @@ public: virtual wxString GetType() const ; virtual wxVariantData* Clone() { return new wxVariantDataWxObjectPtr; } - virtual wxClassInfo* GetValueClassInfo() ; + virtual wxClassInfo* GetValueClassInfo(); + protected: wxObject* m_value; - - DECLARE_NO_COPY_CLASS(wxVariantDataWxObjectPtr) }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataWxObjectPtr, wxVariantData) - bool wxVariantDataWxObjectPtr::Eq(wxVariantData& data) const { - wxASSERT_MSG( wxIsKindOf((&data), wxVariantDataWxObjectPtr), wxT("wxVariantDataWxObjectPtr::Eq: argument mismatch") ); + wxASSERT_MSG( data.GetType() == GetType(), wxT("wxVariantDataWxObjectPtr::Eq: argument mismatch") ); wxVariantDataWxObjectPtr& otherData = (wxVariantDataWxObjectPtr&) data; @@ -992,10 +971,14 @@ bool wxVariantDataWxObjectPtr::Eq(wxVariantData& data) const wxString wxVariantDataWxObjectPtr::GetType() const { - wxString returnVal(wxT("wxObject")); - if (m_value) { + wxString returnVal(wxT("wxObject*")); + + if (m_value) + { returnVal = m_value->GetClassInfo()->GetClassName(); + returnVal += wxT("*"); } + return returnVal; } @@ -1064,7 +1047,6 @@ void wxVariant::operator= (wxObject* value) wxObject* wxVariant::GetWxObjectPtr() const { - wxASSERT(wxIsKindOf(GetData(), wxVariantDataWxObjectPtr)); return (wxObject*) ((wxVariantDataWxObjectPtr*) m_data)->GetValue(); } @@ -1074,7 +1056,6 @@ wxObject* wxVariant::GetWxObjectPtr() const class wxVariantDataVoidPtr: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataVoidPtr) public: wxVariantDataVoidPtr() { } wxVariantDataVoidPtr(void* value) { m_value = value; } @@ -1096,15 +1077,11 @@ public: protected: void* m_value; - - DECLARE_NO_COPY_CLASS(wxVariantDataVoidPtr) }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataVoidPtr, wxVariantData) - bool wxVariantDataVoidPtr::Eq(wxVariantData& data) const { - wxASSERT_MSG( (data.GetType() == wxT("void*")), wxT("wxVariantDataVoidPtr::Eq: argument mismatch") ); + wxASSERT_MSG( data.GetType() == wxT("void*"), wxT("wxVariantDataVoidPtr::Eq: argument mismatch") ); wxVariantDataVoidPtr& otherData = (wxVariantDataVoidPtr&) data; @@ -1161,8 +1138,7 @@ bool wxVariant::operator!= (void* value) const void wxVariant::operator= (void* value) { - if (GetType() == wxT("void*") && - m_data->GetRefCount() == 1) + if (GetType() == wxT("void*") && (m_data->GetRefCount() == 1)) { ((wxVariantDataVoidPtr*)GetData())->SetValue(value); } @@ -1188,8 +1164,6 @@ void* wxVariant::GetVoidPtr() const class wxVariantDataDateTime: public wxVariantData { - DECLARE_DYNAMIC_CLASS(wxVariantDataDateTime) - public: wxVariantDataDateTime() { } wxVariantDataDateTime(const wxDateTime& value) { m_value = value; } @@ -1223,8 +1197,6 @@ protected: }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataDateTime, wxVariantData) - bool wxVariantDataDateTime::Eq(wxVariantData& data) const { wxASSERT_MSG( (data.GetType() == wxT("datetime")), wxT("wxVariantDataDateTime::Eq: argument mismatch") ); @@ -1386,12 +1358,8 @@ public: protected: wxArrayString m_value; - - DECLARE_DYNAMIC_CLASS(wxVariantDataArrayString) }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataArrayString, wxVariantData) - bool wxVariantDataArrayString::Eq(wxVariantData& data) const { wxASSERT_MSG( data.GetType() == GetType(), wxT("wxVariantDataArrayString::Eq: argument mismatch") ); @@ -1492,7 +1460,6 @@ wxArrayString wxVariant::GetArrayString() const class WXDLLIMPEXP_BASE wxVariantDataList: public wxVariantData { -DECLARE_DYNAMIC_CLASS(wxVariantDataList) public: wxVariantDataList() {} wxVariantDataList(const wxList& list); @@ -1518,8 +1485,6 @@ protected: wxList m_value; }; -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataList, wxVariantData) - wxVariantDataList::wxVariantDataList(const wxList& list) { SetValue(list); -- 2.45.2