]> git.saurik.com Git - wxWidgets.git/commitdiff
wxVariantData no longer inherits from wxObject
authorRobert Roebling <robert@roebling.de>
Sat, 13 Oct 2007 11:45:34 +0000 (11:45 +0000)
committerRobert Roebling <robert@roebling.de>
Sat, 13 Oct 2007 11:45:34 +0000 (11:45 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49147 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/latex/wx/variant.tex
include/wx/variant.h
src/common/variant.cpp

index d165cd62816e8b6bb5f4d6674ce9f927fad8b2b0..892cac647ead26003e8a440457374cb2aa9fffe5 100644 (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>
index a0341750e419ec456769a262af60a0dbfc7c29a8..9d8a6819127e3a2215922c2c45f4e82a39378895 100644 (file)
  * 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;\
 \
index 65fbed6a4f7d0b735336609d6a3c812ddace194f..b0053916cf4f62c60e06b2d6b379b83d297df559 100644 (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; }
@@ -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);