git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49149
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
\helpref{wxObject}{wxobject} itself. By default, wxWidgets already implements
the shift operator conversion for a few of its drawing related classes:
\helpref{wxObject}{wxobject} itself. By default, wxWidgets already implements
the shift operator conversion for a few of its drawing related classes:
+Note that as of wxWidgets 2.9.0, wxVariantData no longer inherits from wxObject
+and wxVariant no longer uses the type-unsafe wxList class for list
+operations but the type-safe wxVariantList class.
+
\begin{verbatim}
IMPLEMENT_VARIANT_OBJECT(wxColour)
IMPLEMENT_VARIANT_OBJECT(wxImage)
\begin{verbatim}
IMPLEMENT_VARIANT_OBJECT(wxColour)
IMPLEMENT_VARIANT_OBJECT(wxImage)
Construction from a double-precision floating point value.
Construction from a double-precision floating point value.
-\func{}{wxVariant}{\param{const wxList\&}{ value}, \param{const wxString\& }{name = ``"}}
+\func{}{wxVariant}{\param{const wxVariantList\&}{ value}, \param{const wxString\& }{name = ``"}}
Construction from a list of wxVariant objects. This constructor
copies {\it value}, the application is still responsible for
Construction from a list of wxVariant objects. This constructor
copies {\it value}, the application is still responsible for
Returns the floating point value.
Returns the floating point value.
+\membersection{wxVariant::GetList}\label{wxvariantgetlist}
+
+\constfunc{wxVariantList &}{GetList}{\void}
+
+Returns a reference to the wxVariantList class used by
+wxVariant if this wxVariant is currently a list of variants.
+
\membersection{wxVariant::GetLong}\label{wxvariantgetlong}
\constfunc{long}{GetLong}{\void}
\membersection{wxVariant::GetLong}\label{wxvariantgetlong}
\constfunc{long}{GetLong}{\void}
\func{void}{operator $=$}{\param{wxObject* }{value}}
\func{void}{operator $=$}{\param{wxObject* }{value}}
-\func{void}{operator $=$}{\param{const wxList\& }{value}}
+\func{void}{operator $=$}{\param{const wxVariantList\& }{value}}
\func{void}{operator $=$}{\param{const wxDateTime\& }{value}}
\func{void}{operator $=$}{\param{const wxDateTime\& }{value}}
\constfunc{bool}{operator $==$}{\param{wxObject* }{value}}
\constfunc{bool}{operator $==$}{\param{wxObject* }{value}}
-\constfunc{bool}{operator $==$}{\param{const wxList\& }{value}}
+\constfunc{bool}{operator $==$}{\param{const wxVariantList\& }{value}}
\constfunc{bool}{operator $==$}{\param{const wxArrayString\& }{value}}
\constfunc{bool}{operator $==$}{\param{const wxArrayString\& }{value}}
\constfunc{bool}{operator $!=$}{\param{wxObject* }{value}}
\constfunc{bool}{operator $!=$}{\param{wxObject* }{value}}
-\constfunc{bool}{operator $!=$}{\param{const wxList\& }{value}}
+\constfunc{bool}{operator $!=$}{\param{const wxVariantList\& }{value}}
\constfunc{bool}{operator $!=$}{\param{const wxArrayString\& }{value}}
\constfunc{bool}{operator $!=$}{\param{const wxArrayString\& }{value}}
// list operations
// ------------------------------
// list operations
// ------------------------------
- wxVariant(const wxList& val, const wxString& name = wxEmptyString); // List of variants
- bool operator== (const wxList& value) const;
- bool operator!= (const wxList& value) const;
- void operator= (const wxList& value) ;
+ wxVariant(const wxVariantList& val, const wxString& name = wxEmptyString); // List of variants
+ bool operator== (const wxVariantList& value) const;
+ bool operator!= (const wxVariantList& value) const;
+ void operator= (const wxVariantList& value) ;
// Treat a list variant as an array
wxVariant operator[] (size_t idx) const;
wxVariant& operator[] (size_t idx) ;
// Treat a list variant as an array
wxVariant operator[] (size_t idx) const;
wxVariant& operator[] (size_t idx) ;
- wxList& GetList() const ;
+ wxVariantList& GetList() const ;
// Return the number of elements in a list
size_t GetCount() const;
// Return the number of elements in a list
size_t GetCount() const;
{
public:
wxVariantDataList() {}
{
public:
wxVariantDataList() {}
- wxVariantDataList(const wxList& list);
+ wxVariantDataList(const wxVariantList& list);
virtual ~wxVariantDataList();
virtual ~wxVariantDataList();
- wxList& GetValue() { return m_value; }
- void SetValue(const wxList& value) ;
+ wxVariantList& GetValue() { return m_value; }
+ void SetValue(const wxVariantList& value) ;
virtual bool Eq(wxVariantData& data) const;
#if wxUSE_STD_IOSTREAM
virtual bool Eq(wxVariantData& data) const;
#if wxUSE_STD_IOSTREAM
-wxVariantDataList::wxVariantDataList(const wxList& list)
+wxVariantDataList::wxVariantDataList(const wxVariantList& list)
-void wxVariantDataList::SetValue(const wxList& value)
+void wxVariantDataList::SetValue(const wxVariantList& value)
- wxList::compatibility_iterator node = value.GetFirst();
+ wxVariantList::compatibility_iterator node = value.GetFirst();
- wxVariant* var = (wxVariant*) node->GetData();
+ wxVariant* var = node->GetData();
m_value.Append(new wxVariant(*var));
node = node->GetNext();
}
m_value.Append(new wxVariant(*var));
node = node->GetNext();
}
void wxVariantDataList::Clear()
{
void wxVariantDataList::Clear()
{
- wxList::compatibility_iterator node = m_value.GetFirst();
+ wxVariantList::compatibility_iterator node = m_value.GetFirst();
- wxVariant* var = (wxVariant*) node->GetData();
+ wxVariant* var = node->GetData();
delete var;
node = node->GetNext();
}
delete var;
node = node->GetNext();
}
wxASSERT_MSG( (data.GetType() == wxT("list")), wxT("wxVariantDataList::Eq: argument mismatch") );
wxVariantDataList& listData = (wxVariantDataList&) data;
wxASSERT_MSG( (data.GetType() == wxT("list")), wxT("wxVariantDataList::Eq: argument mismatch") );
wxVariantDataList& listData = (wxVariantDataList&) data;
- wxList::compatibility_iterator node1 = m_value.GetFirst();
- wxList::compatibility_iterator node2 = listData.GetValue().GetFirst();
+ wxVariantList::compatibility_iterator node1 = m_value.GetFirst();
+ wxVariantList::compatibility_iterator node2 = listData.GetValue().GetFirst();
- wxVariant* var1 = (wxVariant*) node1->GetData();
- wxVariant* var2 = (wxVariant*) node2->GetData();
+ wxVariant* var1 = node1->GetData();
+ wxVariant* var2 = node2->GetData();
if ((*var1) != (*var2))
return false;
node1 = node1->GetNext();
if ((*var1) != (*var2))
return false;
node1 = node1->GetNext();
bool wxVariantDataList::Write(wxString& str) const
{
str = wxEmptyString;
bool wxVariantDataList::Write(wxString& str) const
{
str = wxEmptyString;
- wxList::compatibility_iterator node = m_value.GetFirst();
+ wxVariantList::compatibility_iterator node = m_value.GetFirst();
- wxVariant* var = (wxVariant*) node->GetData();
+ wxVariant* var = node->GetData();
if (node != m_value.GetFirst())
str += wxT(" ");
wxString str1;
if (node != m_value.GetFirst())
str += wxT(" ");
wxString str1;
-wxVariant::wxVariant(const wxList& val, const wxString& name) // List of variants
+wxVariant::wxVariant(const wxVariantList& val, const wxString& name) // List of variants
{
m_data = new wxVariantDataList(val);
m_name = name;
}
{
m_data = new wxVariantDataList(val);
m_name = name;
}
-bool wxVariant::operator== (const wxList& value) const
+bool wxVariant::operator== (const wxVariantList& value) const
{
wxASSERT_MSG( (GetType() == wxT("list")), wxT("Invalid type for == operator") );
{
wxASSERT_MSG( (GetType() == wxT("list")), wxT("Invalid type for == operator") );
return (GetData()->Eq(other));
}
return (GetData()->Eq(other));
}
-bool wxVariant::operator!= (const wxList& value) const
+bool wxVariant::operator!= (const wxVariantList& value) const
{
return (!((*this) == value));
}
{
return (!((*this) == value));
}
-void wxVariant::operator= (const wxList& value)
+void wxVariant::operator= (const wxVariantList& value)
{
if (GetType() == wxT("list") &&
m_data->GetRefCount() == 1)
{
if (GetType() == wxT("list") &&
m_data->GetRefCount() == 1)
-wxList& wxVariant::GetList() const
+wxVariantList& wxVariant::GetList() const
{
wxASSERT( (GetType() == wxT("list")) );
{
wxASSERT( (GetType() == wxT("list")) );
- return (wxList&) ((wxVariantDataList*) m_data)->GetValue();
+ return (wxVariantList&) ((wxVariantDataList*) m_data)->GetValue();
// Append to list
void wxVariant::Append(const wxVariant& value)
{
// Append to list
void wxVariant::Append(const wxVariant& value)
{
- wxList& list = GetList();
+ wxVariantList& list = GetList();
list.Append(new wxVariant(value));
}
list.Append(new wxVariant(value));
}
// Insert at front of list
void wxVariant::Insert(const wxVariant& value)
{
// Insert at front of list
void wxVariant::Insert(const wxVariant& value)
{
- wxList& list = GetList();
+ wxVariantList& list = GetList();
list.Insert(new wxVariant(value));
}
list.Insert(new wxVariant(value));
}
// Returns true if the variant is a member of the list
bool wxVariant::Member(const wxVariant& value) const
{
// Returns true if the variant is a member of the list
bool wxVariant::Member(const wxVariant& value) const
{
- wxList& list = GetList();
+ wxVariantList& list = GetList();
- wxList::compatibility_iterator node = list.GetFirst();
+ wxVariantList::compatibility_iterator node = list.GetFirst();
- wxVariant* other = (wxVariant*) node->GetData();
+ wxVariant* other = node->GetData();
if (value == *other)
return true;
node = node->GetNext();
if (value == *other)
return true;
node = node->GetNext();
// Deletes the nth element of the list
bool wxVariant::Delete(size_t item)
{
// Deletes the nth element of the list
bool wxVariant::Delete(size_t item)
{
- wxList& list = GetList();
+ wxVariantList& list = GetList();
wxASSERT_MSG( (item < list.GetCount()), wxT("Invalid index to Delete") );
wxASSERT_MSG( (item < list.GetCount()), wxT("Invalid index to Delete") );
- wxList::compatibility_iterator node = list.Item(item);
- wxVariant* variant = (wxVariant*) node->GetData();
+ wxVariantList::compatibility_iterator node = list.Item(item);
+ wxVariant* variant = node->GetData();
delete variant;
list.Erase(node);
return true;
delete variant;
list.Erase(node);
return true;
{
wxVariantDataList* data = (wxVariantDataList*) m_data;
wxASSERT_MSG( (idx < data->GetValue().GetCount()), wxT("Invalid index for array") );
{
wxVariantDataList* data = (wxVariantDataList*) m_data;
wxASSERT_MSG( (idx < data->GetValue().GetCount()), wxT("Invalid index for array") );
- return * (wxVariant*) (data->GetValue().Item(idx)->GetData());
+ return *(data->GetValue().Item(idx)->GetData());
}
return wxNullVariant;
}
}
return wxNullVariant;
}
wxVariantDataList* data = (wxVariantDataList*) m_data;
wxASSERT_MSG( (idx < data->GetValue().GetCount()), wxT("Invalid index for array") );
wxVariantDataList* data = (wxVariantDataList*) m_data;
wxASSERT_MSG( (idx < data->GetValue().GetCount()), wxT("Invalid index for array") );
- return * (wxVariant*) (data->GetValue().Item(idx)->GetData());
+ return * (data->GetValue().Item(idx)->GetData());
}
// Return the number of elements in a list
}
// Return the number of elements in a list