]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/timectrlg.cpp
Add a public wxModalDialogHook class for intercepting modal dialogs.
[wxWidgets.git] / src / generic / timectrlg.cpp
index b3d0e5acafb79edc5f34e860a841547f50309323..b040ee9beb03dd382d13fd48172aee485958f2fb 100644 (file)
@@ -131,6 +131,17 @@ public:
     {
         m_time = time.IsValid() ? time : wxDateTime::Now();
 
+        // Ensure that the date part doesn't correspond to a DST change date as
+        // time is discontinuous then resulting in many problems, e.g. it's
+        // impossible to even enter 2:00:00 at the beginning of summer time
+        // date as this time doesn't exist. By using Jan 1, on which nobody
+        // changes DST, we avoid all such problems.
+        wxDateTime::Tm tm = m_time.GetTm();
+        tm.mday =
+        tm.yday = 1;
+        tm.mon = wxDateTime::Jan;
+        m_time.Set(tm);
+
         UpdateTextWithoutEvent();
     }
 
@@ -259,7 +270,7 @@ private:
 
     void OnTextClick(wxMouseEvent& event)
     {
-        Field field wxDUMMY_INITIALIZE(Field_Max);
+        Field field = Field_Max; // Initialize just to suppress warnings.
         long pos;
         switch ( m_text->HitTest(event.GetPosition(), &pos) )
         {
@@ -446,8 +457,8 @@ private:
             // The first digit simply replaces the existing field contents,
             // but the second one should be combined with the previous one,
             // otherwise entering 2-digit numbers would be impossible.
-            int currentValue wxDUMMY_INITIALIZE(0),
-                maxValue wxDUMMY_INITIALIZE(0);
+            int currentValue = 0,
+                maxValue  = 0;
 
             switch ( m_currentField )
             {
@@ -469,6 +480,7 @@ private:
                 case Field_AMPM:
                 case Field_Max:
                     wxFAIL_MSG( "Invalid field" );
+                    return;
             }
 
             // Check if the new value is acceptable. If not, we just handle