wxVariantData no longer inherits from wxObject

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2007-10-13 11:45:34 +00:00
parent 05725592b9
commit 3586d10f72
3 changed files with 16 additions and 65 deletions

View File

@@ -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}
<wx/variant.h>

View File

@@ -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;\
\

View File

@@ -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; }
@@ -973,17 +955,14 @@ public:
virtual wxVariantData* Clone() { return new wxVariantDataWxObjectPtr; }
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);