X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..ed582841a275d236b9bac7651a0f3e7c91be868d:/src/common/variant.cpp diff --git a/src/common/variant.cpp b/src/common/variant.cpp index 4bcefec312..0ada278e3e 100644 --- a/src/common/variant.cpp +++ b/src/common/variant.cpp @@ -11,6 +11,8 @@ #ifdef __GNUG__ #pragma implementation "variant.h" +#pragma implementation "time.h" +#pragma implementation "date.h" #endif // For compilers that support precompilation, includes "wx/wx.h". @@ -20,10 +22,12 @@ #pragma hdrstop #endif -#if wxUSE_IOSTREAMH && wxUSE_STD_IOSTREAM -# include -#else -# include +#if wxUSE_STD_IOSTREAM + #if wxUSE_IOSTREAMH + #include + #else + #include + #endif #endif #if wxUSE_STREAMS @@ -34,6 +38,15 @@ #include "wx/string.h" #include "wx/variant.h" +#if wxUSE_TIMEDATE +IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject) +IMPLEMENT_DYNAMIC_CLASS(wxTime, wxObject) + +wxTime::tFormat wxTime::ms_Format = wxTime::wx12h; +wxTime::tPrecision wxTime::ms_Precision = wxTime::wxStdMinSec; +wxChar wxTime::ms_bufTime[128]; +#endif + IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject) wxVariant WXDLLEXPORT wxNullVariant; @@ -56,11 +69,11 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif virtual bool Read(wxString& str); virtual wxString GetType() const { return wxT("list"); }; @@ -144,7 +157,7 @@ bool wxVariantDataList::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataList::Write(ostream& str) const +bool wxVariantDataList::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -171,7 +184,7 @@ bool wxVariantDataList::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataList::Read(istream& WXUNUSED(str)) +bool wxVariantDataList::Read(wxSTD istream& WXUNUSED(str)) { wxFAIL_MSG(wxT("Unimplemented")); // TODO @@ -203,11 +216,11 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif virtual bool Read(wxString& str); virtual wxString GetType() const { return wxT("stringlist"); }; @@ -253,7 +266,7 @@ bool wxVariantDataStringList::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataStringList::Write(ostream& str) const +bool wxVariantDataStringList::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -279,7 +292,7 @@ bool wxVariantDataStringList::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataStringList::Read(istream& WXUNUSED(str)) +bool wxVariantDataStringList::Read(wxSTD istream& WXUNUSED(str)) { wxFAIL_MSG(wxT("Unimplemented")); // TODO @@ -314,8 +327,8 @@ public: virtual bool Read(wxString& str); virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; + virtual bool Read(wxSTD istream& str); + virtual bool Write(wxSTD ostream& str) const; #endif #if wxUSE_STREAMS virtual bool Read(wxInputStream& str); @@ -349,7 +362,7 @@ bool wxVariantDataLong::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataLong::Write(ostream& str) const +bool wxVariantDataLong::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -365,7 +378,7 @@ bool wxVariantDataLong::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataLong::Read(istream& str) +bool wxVariantDataLong::Read(wxSTD istream& str) { str >> m_value; return TRUE; @@ -377,7 +390,7 @@ bool wxVariantDataLong::Write(wxOutputStream& str) const { wxTextOutputStream s(str); - s.Write32(m_value); + s.Write32((size_t)m_value); return TRUE; } @@ -413,11 +426,11 @@ public: virtual bool Eq(wxVariantData& data) const; virtual bool Read(wxString& str); #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif #if wxUSE_STREAMS virtual bool Read(wxInputStream& str); @@ -450,7 +463,7 @@ bool wxVariantDataReal::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataReal::Write(ostream& str) const +bool wxVariantDataReal::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -466,7 +479,7 @@ bool wxVariantDataReal::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataReal::Read(istream& str) +bool wxVariantDataReal::Read(wxSTD istream& str) { str >> m_value; return TRUE; @@ -513,12 +526,12 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; virtual bool Read(wxString& str); #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif #if wxUSE_STREAMS virtual bool Read(wxInputStream& str); @@ -551,7 +564,7 @@ bool wxVariantDataBool::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataBool::Write(ostream& str) const +bool wxVariantDataBool::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -567,7 +580,7 @@ bool wxVariantDataBool::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataBool::Read(istream& WXUNUSED(str)) +bool wxVariantDataBool::Read(wxSTD istream& WXUNUSED(str)) { wxFAIL_MSG(wxT("Unimplemented")); // str >> (long) m_value; @@ -617,8 +630,8 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; + virtual bool Read(wxSTD istream& str); + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Read(wxString& str); virtual bool Write(wxString& str) const; @@ -653,7 +666,7 @@ bool wxVariantDataChar::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataChar::Write(ostream& str) const +bool wxVariantDataChar::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -669,7 +682,7 @@ bool wxVariantDataChar::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataChar::Read(istream& WXUNUSED(str)) +bool wxVariantDataChar::Read(wxSTD istream& WXUNUSED(str)) { wxFAIL_MSG(wxT("Unimplemented")); // str >> m_value; @@ -727,12 +740,12 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Read(wxString& str); virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif #if wxUSE_STREAMS virtual bool Read(wxInputStream& str); @@ -763,7 +776,7 @@ bool wxVariantDataString::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataString::Write(ostream& str) const +bool wxVariantDataString::Write(wxSTD ostream& str) const { str << (const char*) m_value.mb_str(); return TRUE; @@ -777,7 +790,7 @@ bool wxVariantDataString::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataString::Read(istream& str) +bool wxVariantDataString::Read(wxSTD istream& str) { str >> m_value; return TRUE; @@ -818,7 +831,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData) * wxVariantDataTime */ -#if wxUSE_TIMEDATE +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) class wxVariantDataTime: public wxVariantData { @@ -833,11 +847,11 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif virtual bool Read(wxString& str); virtual wxString GetType() const { return wxT("time"); }; @@ -868,7 +882,7 @@ bool wxVariantDataTime::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataTime::Write(ostream& str) const +bool wxVariantDataTime::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -885,7 +899,7 @@ bool wxVariantDataTime::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataTime::Read(istream& WXUNUSED(str)) +bool wxVariantDataTime::Read(wxSTD istream& WXUNUSED(str)) { // Not implemented return FALSE; @@ -915,11 +929,11 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif virtual bool Read(wxString& str); virtual wxString GetType() const { return wxT("date"); }; @@ -950,7 +964,7 @@ bool wxVariantDataDate::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataDate::Write(ostream& str) const +bool wxVariantDataDate::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -966,7 +980,7 @@ bool wxVariantDataDate::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataDate::Read(istream& WXUNUSED(str)) +bool wxVariantDataDate::Read(wxSTD istream& WXUNUSED(str)) { // Not implemented return FALSE; @@ -998,11 +1012,11 @@ public: virtual void Copy(wxVariantData& data); virtual bool Eq(wxVariantData& data) const; #if wxUSE_STD_IOSTREAM - virtual bool Write(ostream& str) const; + virtual bool Write(wxSTD ostream& str) const; #endif virtual bool Write(wxString& str) const; #if wxUSE_STD_IOSTREAM - virtual bool Read(istream& str); + virtual bool Read(wxSTD istream& str); #endif virtual bool Read(wxString& str); virtual wxString GetType() const { return wxT("void*"); }; @@ -1033,7 +1047,7 @@ bool wxVariantDataVoidPtr::Eq(wxVariantData& data) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataVoidPtr::Write(ostream& str) const +bool wxVariantDataVoidPtr::Write(wxSTD ostream& str) const { wxString s; Write(s); @@ -1049,7 +1063,7 @@ bool wxVariantDataVoidPtr::Write(wxString& str) const } #if wxUSE_STD_IOSTREAM -bool wxVariantDataVoidPtr::Read(istream& WXUNUSED(str)) +bool wxVariantDataVoidPtr::Read(wxSTD istream& WXUNUSED(str)) { // Not implemented return FALSE; @@ -1125,7 +1139,8 @@ wxVariant::wxVariant(const wxList& val, const wxString& name) // List of variant m_name = name; } -#if wxUSE_TIMEDATE +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) wxVariant::wxVariant(const wxTime& val, const wxString& name) // Time { m_data = new wxVariantDataTime(val); @@ -1338,8 +1353,8 @@ bool wxVariant::operator== (const wxString& value) const wxString thisValue; if (!Convert(&thisValue)) return FALSE; - else - return (value == thisValue); + + return value == thisValue; } bool wxVariant::operator!= (const wxString& value) const @@ -1429,14 +1444,15 @@ void wxVariant::operator= (const wxList& value) } } -#if wxUSE_TIMEDATE +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) bool wxVariant::operator== (const wxTime& value) const { wxTime thisValue; if (!Convert(&thisValue)) return FALSE; - else - return (value == thisValue); + + return value == thisValue; } bool wxVariant::operator!= (const wxTime& value) const @@ -1463,8 +1479,8 @@ bool wxVariant::operator== (const wxDate& value) const wxDate thisValue; if (!Convert(&thisValue)) return FALSE; - else - return (value == thisValue); + + return (value == thisValue); } bool wxVariant::operator!= (const wxDate& value) const @@ -1494,7 +1510,7 @@ bool wxVariant::operator== (void* value) const bool wxVariant::operator!= (void* value) const { - return (!((*this) == value)); + return (!((*this) == (void*) value)); } void wxVariant::operator= (void* value) @@ -1653,40 +1669,38 @@ bool wxVariant::GetBool() const wxString wxVariant::GetString() const { wxString value; - if (Convert(& value)) - return value; - else + if (!Convert(& value)) { wxFAIL_MSG(wxT("Could not convert to a string")); - return wxString(""); } + + return value; } -#if wxUSE_TIMEDATE +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) wxTime wxVariant::GetTime() const { wxTime value; - if (Convert(& value)) - return value; - else + if (!Convert(& value)) { wxFAIL_MSG(wxT("Could not convert to a time")); - return wxTime(); } + + return value; } wxDate wxVariant::GetDate() const { wxDate value; - if (Convert(& value)) - return value; - else + if (!Convert(& value)) { wxFAIL_MSG(wxT("Could not convert to a date")); - return wxDate(); } + + return value; } -#endif +#endif // wxUSE_TIMEDATE void* wxVariant::GetVoidPtr() const { @@ -1862,7 +1876,8 @@ bool wxVariant::Convert(wxString* value) const return TRUE; } -#if wxUSE_TIMEDATE +// For some reason, Watcom C++ can't link variant.cpp with time/date classes compiled +#if wxUSE_TIMEDATE && !defined(__WATCOMC__) bool wxVariant::Convert(wxTime* value) const { wxString type(GetType()); @@ -1888,3 +1903,4 @@ bool wxVariant::Convert(wxDate* value) const } #endif // wxUSE_TIMEDATE +