* 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;
private:
int m_count;
-
-private:
- DECLARE_ABSTRACT_CLASS(wxVariantData)
};
/*
\
protected:\
classname m_value; \
-\
-private: \
- DECLARE_CLASS(classname##VariantData) \
};\
\
-IMPLEMENT_CLASS(classname##VariantData, wxVariantData)\
-\
wxString classname##VariantData::GetType() const\
{\
return m_value.GetClassInfo()->GetClassName();\
\
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();\
\
bool classname##VariantData::Eq(wxVariantData& data) const \
{\
- wxASSERT( wxIsKindOf((&data), classname##VariantData) );\
+ wxASSERT( GetType() == data.GetType() );\
\
classname##VariantData & otherData = (classname##VariantData &) data;\
\
\
bool classname##VariantData::Eq(wxVariantData& data) const \
{\
- wxASSERT( wxIsKindOf((&data), classname##VariantData) );\
+ wxASSERT( GetType() == data.GetType() );\
\
classname##VariantData & otherData = (classname##VariantData &) data;\
\
#include "wx/string.h"
#include "wx/tokenzr.h"
-IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject)
-
wxVariant WXDLLIMPEXP_BASE wxNullVariant;
class WXDLLIMPEXP_BASE wxVariantDataLong: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataLong)
public:
wxVariantDataLong() { m_value = 0; }
wxVariantDataLong(long value) { m_value = value; }
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") );
class WXDLLIMPEXP_BASE wxVariantDoubleData: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDoubleData)
public:
wxVariantDoubleData() { m_value = 0.0; }
wxVariantDoubleData(double value) { m_value = value; }
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") );
class WXDLLIMPEXP_BASE wxVariantDataBool: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataBool)
public:
wxVariantDataBool() { m_value = 0; }
wxVariantDataBool(bool value) { m_value = value; }
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") );
class WXDLLIMPEXP_BASE wxVariantDataChar: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataChar)
public:
wxVariantDataChar() { m_value = 0; }
wxVariantDataChar(const wxUniChar& value) { m_value = value; }
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") );
class WXDLLIMPEXP_BASE wxVariantDataString: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataString)
public:
wxVariantDataString() { }
wxVariantDataString(const wxString& value) { m_value = value; }
return true;
}
-IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData)
-
// wxVariant ****
wxVariant::wxVariant(const wxString& val, const wxString& name)
class wxVariantDataWxObjectPtr: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataWxObjectPtr)
public:
wxVariantDataWxObjectPtr() { }
wxVariantDataWxObjectPtr(wxObject* value) { m_value = value; }
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;
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;
}
wxObject* wxVariant::GetWxObjectPtr() const
{
- wxASSERT(wxIsKindOf(GetData(), wxVariantDataWxObjectPtr));
return (wxObject*) ((wxVariantDataWxObjectPtr*) m_data)->GetValue();
}
class wxVariantDataVoidPtr: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataVoidPtr)
public:
wxVariantDataVoidPtr() { }
wxVariantDataVoidPtr(void* value) { m_value = value; }
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;
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);
}
class wxVariantDataDateTime: public wxVariantData
{
- DECLARE_DYNAMIC_CLASS(wxVariantDataDateTime)
-
public:
wxVariantDataDateTime() { }
wxVariantDataDateTime(const wxDateTime& value) { m_value = value; }
};
-IMPLEMENT_DYNAMIC_CLASS(wxVariantDataDateTime, wxVariantData)
-
bool wxVariantDataDateTime::Eq(wxVariantData& data) const
{
wxASSERT_MSG( (data.GetType() == wxT("datetime")), wxT("wxVariantDataDateTime::Eq: argument mismatch") );
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") );
class WXDLLIMPEXP_BASE wxVariantDataList: public wxVariantData
{
-DECLARE_DYNAMIC_CLASS(wxVariantDataList)
public:
wxVariantDataList() {}
wxVariantDataList(const wxList& list);
wxList m_value;
};
-IMPLEMENT_DYNAMIC_CLASS(wxVariantDataList, wxVariantData)
-
wxVariantDataList::wxVariantDataList(const wxList& list)
{
SetValue(list);