]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/datectrl.cpp
use facename in wxFontRefData::Init() in Unicode build (part of patch 1671684)
[wxWidgets.git] / src / msw / datectrl.cpp
index c9129f87565be99bb5679012dc028edd206d74ec..d6a4315352a4fee867516a4ca68921e9630e5aa8 100644 (file)
@@ -156,6 +156,8 @@ wxDatePickerCtrl::Create(wxWindow *parent,
 
     if ( dt.IsValid() || (style & wxDP_ALLOWNONE) )
         SetValue(dt);
+    else
+        SetValue(wxDateTime::Today());
 
     return true;
 }
@@ -254,7 +256,11 @@ void wxDatePickerCtrl::SetValue(const wxDateTime& dt)
         wxLogDebug(_T("DateTime_SetSystemtime() failed"));
     }
 
+    // we need to keep only the date part, times don't make sense for this
+    // control (in particular, comparisons with other dates would fail)
     m_date = dt;
+    if ( m_date.IsValid() )
+        m_date.ResetTime();
 }
 
 wxDateTime wxDatePickerCtrl::GetValue() const
@@ -341,7 +347,8 @@ wxDatePickerCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
 
             // filter out duplicate DTN_DATETIMECHANGE events which the native
             // control sends us when using wxDP_DROPDOWN style
-            if ( !m_date.IsValid() || dt != m_date )
+            if ( (m_date.IsValid() != dt.IsValid()) ||
+                    (m_date.IsValid() && dt != m_date) )
             {
                 m_date = dt;
                 wxDateEvent event(this, dt, wxEVT_DATE_CHANGED);
@@ -351,6 +358,7 @@ wxDatePickerCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
                     return true;
                 }
             }
+            //else: both the old and new values are invalid, nothing changed
         }
     }