}
wxVariant::wxVariant(const wxVariant& variant)
+ : wxObject()
{
if (!variant.IsNull())
{
delete m_data;
m_data = (wxVariantData*) variant.GetData()->GetClassInfo()->CreateObject();
}
-// GetData()->Copy(* variant.GetData());
+
variant.GetData()->Copy(* GetData());
+
+ m_name = variant.m_name;
}
// Assignment using data, e.g.
return (wxStringList&) ((wxVariantDataStringList*) m_data)->GetValue();
}
+// Make empty list
+void wxVariant::NullList()
+{
+ SetData(new wxVariantDataList());
+};
+
// Append to list
void wxVariant::Append(const wxVariant& value)
{
{
wxString type(GetType());
if (type == wxT("datetime"))
+ {
*value = ((wxVariantDataDateTime*)GetData())->GetValue();
- else
- return FALSE;
-
- return TRUE;
+ return TRUE;
+ }
+ // Fallback to string conversion
+ wxString val;
+ return Convert(&val) && (value->ParseDate(val));
}