#ifdef __GNUG__
#pragma implementation "variant.h"
+#pragma implementation "time.h"
+#pragma implementation "date.h"
#endif
// For compilers that support precompilation, includes "wx/wx.h".
#pragma hdrstop
#endif
-#if wxUSE_IOSTREAMH && wxUSE_STD_IOSTREAM
-# include <fstream.h>
-#else
-# include <fstream>
+#if wxUSE_STD_IOSTREAM
+ #if wxUSE_IOSTREAMH
+ #include <fstream.h>
+ #else
+ #include <fstream>
+ #endif
#endif
#if wxUSE_STREAMS
#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;
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"); };
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataList::Write(ostream& str) const
+bool wxVariantDataList::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataList::Read(istream& WXUNUSED(str))
+bool wxVariantDataList::Read(wxSTD istream& WXUNUSED(str))
{
wxFAIL_MSG(wxT("Unimplemented"));
// TODO
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"); };
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataStringList::Write(ostream& str) const
+bool wxVariantDataStringList::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataStringList::Read(istream& WXUNUSED(str))
+bool wxVariantDataStringList::Read(wxSTD istream& WXUNUSED(str))
{
wxFAIL_MSG(wxT("Unimplemented"));
// TODO
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);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataLong::Write(ostream& str) const
+bool wxVariantDataLong::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataLong::Read(istream& str)
+bool wxVariantDataLong::Read(wxSTD istream& str)
{
str >> m_value;
return TRUE;
{
wxTextOutputStream s(str);
- s.Write32(m_value);
+ s.Write32((size_t)m_value);
return TRUE;
}
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);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataReal::Write(ostream& str) const
+bool wxVariantDataReal::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataReal::Read(istream& str)
+bool wxVariantDataReal::Read(wxSTD istream& str)
{
str >> m_value;
return TRUE;
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);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataBool::Write(ostream& str) const
+bool wxVariantDataBool::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#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;
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;
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataChar::Write(ostream& str) const
+bool wxVariantDataChar::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataChar::Read(istream& WXUNUSED(str))
+bool wxVariantDataChar::Read(wxSTD istream& WXUNUSED(str))
{
wxFAIL_MSG(wxT("Unimplemented"));
// str >> m_value;
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);
}
#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;
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataString::Read(istream& str)
+bool wxVariantDataString::Read(wxSTD istream& str)
{
str >> m_value;
return TRUE;
* 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
{
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"); };
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataTime::Write(ostream& str) const
+bool wxVariantDataTime::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataTime::Read(istream& WXUNUSED(str))
+bool wxVariantDataTime::Read(wxSTD istream& WXUNUSED(str))
{
// Not implemented
return FALSE;
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"); };
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataDate::Write(ostream& str) const
+bool wxVariantDataDate::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataDate::Read(istream& WXUNUSED(str))
+bool wxVariantDataDate::Read(wxSTD istream& WXUNUSED(str))
{
// Not implemented
return FALSE;
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*"); };
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataVoidPtr::Write(ostream& str) const
+bool wxVariantDataVoidPtr::Write(wxSTD ostream& str) const
{
wxString s;
Write(s);
}
#if wxUSE_STD_IOSTREAM
-bool wxVariantDataVoidPtr::Read(istream& WXUNUSED(str))
+bool wxVariantDataVoidPtr::Read(wxSTD istream& WXUNUSED(str))
{
// Not implemented
return FALSE;
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);
wxString thisValue;
if (!Convert(&thisValue))
return FALSE;
- else
- return (value == thisValue);
+
+ return value == thisValue;
}
bool wxVariant::operator!= (const wxString& value) const
}
}
-#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
wxDate thisValue;
if (!Convert(&thisValue))
return FALSE;
- else
- return (value == thisValue);
+
+ return (value == thisValue);
}
bool wxVariant::operator!= (const wxDate& value) const
bool wxVariant::operator!= (void* value) const
{
- return (!((*this) == value));
+ return (!((*this) == (void*) value));
}
void wxVariant::operator= (void* value)
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
{
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());
}
#endif
// wxUSE_TIMEDATE
+