]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/variant.cpp
merged in the commit from the 2.2 branch
[wxWidgets.git] / src / common / variant.cpp
index 4bcefec312a99acabecb44d35935cfc7c006327b..26e623c1b53487e88a7becc03a7a720115366e03 100644 (file)
@@ -11,6 +11,8 @@
 
 #ifdef __GNUG__
 #pragma implementation "variant.h"
 
 #ifdef __GNUG__
 #pragma implementation "variant.h"
+#pragma implementation "time.h"
+#pragma implementation "date.h"
 #endif
 
 // For compilers that support precompilation, includes "wx/wx.h".
 #endif
 
 // For compilers that support precompilation, includes "wx/wx.h".
     #pragma hdrstop
 #endif
 
     #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
 #endif
 
 #if wxUSE_STREAMS
 #include "wx/string.h"
 #include "wx/variant.h"
 
 #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;
+#endif
+
 IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject)
 
 wxVariant WXDLLEXPORT wxNullVariant;
 IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject)
 
 wxVariant WXDLLEXPORT wxNullVariant;
@@ -377,7 +389,7 @@ bool wxVariantDataLong::Write(wxOutputStream& str) const
 {
     wxTextOutputStream s(str);
 
 {
     wxTextOutputStream s(str);
 
-    s.Write32(m_value);
+    s.Write32((size_t)m_value);
     return TRUE;
 }
 
     return TRUE;
 }
 
@@ -818,7 +830,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData)
  * wxVariantDataTime
  */
 
  * 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
 {
 
 class wxVariantDataTime: public wxVariantData
 {
@@ -1125,7 +1138,8 @@ wxVariant::wxVariant(const wxList& val, const wxString& name) // List of variant
     m_name = name;
 }
 
     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);
 wxVariant::wxVariant(const wxTime& val, const wxString& name) // Time
 {
     m_data = new wxVariantDataTime(val);
@@ -1338,8 +1352,8 @@ bool wxVariant::operator== (const wxString& value) const
     wxString thisValue;
     if (!Convert(&thisValue))
         return FALSE;
     wxString thisValue;
     if (!Convert(&thisValue))
         return FALSE;
-    else
-        return (value == thisValue);
+
+    return value == thisValue;
 }
 
 bool wxVariant::operator!= (const wxString& value) const
 }
 
 bool wxVariant::operator!= (const wxString& value) const
@@ -1429,14 +1443,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;
 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
 }
 
 bool wxVariant::operator!= (const wxTime& value) const
@@ -1463,8 +1478,8 @@ bool wxVariant::operator== (const wxDate& value) const
     wxDate thisValue;
     if (!Convert(&thisValue))
         return FALSE;
     wxDate thisValue;
     if (!Convert(&thisValue))
         return FALSE;
-    else
-        return (value == thisValue);
+
+    return (value == thisValue);
 }
 
 bool wxVariant::operator!= (const wxDate& value) const
 }
 
 bool wxVariant::operator!= (const wxDate& value) const
@@ -1494,7 +1509,7 @@ bool wxVariant::operator== (void* value) const
 
 bool wxVariant::operator!= (void* value) const
 {
 
 bool wxVariant::operator!= (void* value) const
 {
-    return (!((*this) == value));
+    return (!((*this) == (void*) value));
 }
 
 void wxVariant::operator= (void* value)
 }
 
 void wxVariant::operator= (void* value)
@@ -1653,40 +1668,38 @@ bool wxVariant::GetBool() const
 wxString wxVariant::GetString() const
 {
     wxString 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"));
     {
         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;
 wxTime wxVariant::GetTime() const
 {
     wxTime value;
-    if (Convert(& value))
-        return value;
-    else
+    if (!Convert(& value))
     {
         wxFAIL_MSG(wxT("Could not convert to a time"));
     {
         wxFAIL_MSG(wxT("Could not convert to a time"));
-        return wxTime();
     }
     }
+
+    return value;
 }
 
 wxDate wxVariant::GetDate() const
 {
     wxDate 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"));
     {
         wxFAIL_MSG(wxT("Could not convert to a date"));
-        return wxDate();
     }
     }
+
+    return value;
 }
 }
-#endif
+#endif // wxUSE_TIMEDATE
 
 void* wxVariant::GetVoidPtr() const
 {
 
 void* wxVariant::GetVoidPtr() const
 {
@@ -1862,7 +1875,8 @@ bool wxVariant::Convert(wxString* value) const
     return TRUE;
 }
 
     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());
 bool wxVariant::Convert(wxTime* value) const
 {
     wxString type(GetType());
@@ -1888,3 +1902,4 @@ bool wxVariant::Convert(wxDate* value) const
 }
 #endif
  // wxUSE_TIMEDATE
 }
 #endif
  // wxUSE_TIMEDATE
+