]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/time.cpp
Applied #15375 to stop event-sending in generic wxSpinCtrl ctor (eco)
[wxWidgets.git] / src / common / time.cpp
index 03df19ec62b0488688fdc7e334c20126e7db612d..011b601490611758d736d16313354cd13af50e30 100644 (file)
@@ -3,7 +3,6 @@
 // Purpose:     Implementation of time-related functions.
 // Author:      Vadim Zeitlin
 // Created:     2011-11-26
-// RCS-ID:      $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $
 // Copyright:   (c) 2011 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -26,7 +25,7 @@
 #include "wx/time.h"
 
 #ifndef WX_PRECOMP
-    #ifdef __WXMSW__
+    #ifdef __WINDOWS__
         #include "wx/msw/wrapwin.h"
     #endif
     #include "wx/intl.h"
@@ -36,7 +35,7 @@
 #ifndef WX_GMTOFF_IN_TM
     // Define it for some systems which don't (always) use configure but are
     // known to have tm_gmtoff field.
-    #if defined(__WXPALMOS__) || defined(__DARWIN__)
+    #if defined(__DARWIN__)
         #define WX_GMTOFF_IN_TM
     #endif
 #endif
 #  endif
 #endif
 
-#if defined(__MWERKS__) && defined(__WXMSW__)
-#   undef HAVE_FTIME
-#   undef HAVE_GETTIMEOFDAY
-#endif
-
-#ifndef __WXPALMOS5__
 #ifndef __WXWINCE__
 #include <time.h>
 #else
 #include "wx/msw/private.h"
 #include "wx/msw/wince/time.h"
 #endif
-#endif // __WXPALMOS5__
 
 
 #if !defined(__WXMAC__) && !defined(__WXWINCE__)
     #include <sys/timeb.h>
 #endif
 
-#ifdef __WXPALMOS__
-    #include <DateTime.h>
-    #include <TimeMgr.h>
-    #include <SystemMgr.h>
-#endif
-
-#if defined(__MWERKS__) && wxUSE_UNICODE
-    #include <wtime.h>
-#endif
-
 #if defined(__DJGPP__) || defined(__WINE__)
     #include <sys/timeb.h>
     #include <values.h>
@@ -223,15 +205,18 @@ int wxGetTimeZone()
     #else // VC++ < 8
         return timezone;
     #endif
-#elif defined(WX_TIMEZONE) // If WX_TIMEZONE was defined by configure, use it.
-    return WX_TIMEZONE;
-#elif defined(__BORLANDC__) || defined(__MINGW32__) || defined(__VISAGECPP__)
-    return _timezone;
-#elif defined(__MWERKS__)
-    return 28800;
-#else // unknown platform -- assume it has timezone
-    return timezone;
-#endif // WX_GMTOFF_IN_TM/!WX_GMTOFF_IN_TM
+#else // Use some kind of time zone variable.
+    // In any case we must initialize the time zone before using it.
+    tzset();
+
+    #if defined(WX_TIMEZONE) // If WX_TIMEZONE was defined by configure, use it.
+        return WX_TIMEZONE;
+    #elif defined(__BORLANDC__) || defined(__MINGW32__) || defined(__VISAGECPP__)
+        return _timezone;
+    #else // unknown platform -- assume it has timezone
+        return timezone;
+    #endif // different time zone variables
+#endif // different ways to determine time zone
 }
 
 // Get local time as seconds since 00:00:00, Jan 1st 1970
@@ -275,7 +260,7 @@ long wxGetUTCTime()
 
 wxLongLong wxGetUTCTimeUSec()
 {
-#if defined(__WXMSW__)
+#if defined(__WINDOWS__)
     FILETIME ft;
     ::GetSystemTimeAsFileTime(&ft);
 
@@ -306,23 +291,9 @@ wxLongLong wxGetUTCTimeUSec()
 // Get local time as milliseconds since 00:00:00, Jan 1st 1970
 wxLongLong wxGetUTCTimeMillis()
 {
-    wxLongLong val = MILLISECONDS_PER_SECOND;
-
     // If possible, use a function which avoids conversions from
     // broken-up time structures to milliseconds
-#if defined(__WXPALMOS__)
-    DateTimeType thenst;
-    thenst.second  = 0;
-    thenst.minute  = 0;
-    thenst.hour    = 0;
-    thenst.day     = 1;
-    thenst.month   = 1;
-    thenst.year    = 1970;
-    thenst.weekDay = 5;
-    uint32_t now = TimGetSeconds();
-    uint32_t then = TimDateTimeToSeconds (&thenst);
-    return SysTimeToMilliSecs(SysTimeInSecs(now - then));
-#elif defined(__WXMSW__)
+#if defined(__WINDOWS__)
     FILETIME ft;
     ::GetSystemTimeAsFileTime(&ft);
 
@@ -332,7 +303,10 @@ wxLongLong wxGetUTCTimeMillis()
     t /= 10000;
     t -= wxLL(11644473600000); // Unix - Windows epochs difference in ms.
     return t;
-#elif defined(HAVE_GETTIMEOFDAY)
+#else // !__WINDOWS__
+    wxLongLong val = MILLISECONDS_PER_SECOND;
+
+#if defined(HAVE_GETTIMEOFDAY)
     struct timeval tp;
     if ( wxGetTimeOfDay(&tp) != -1 )
     {
@@ -368,6 +342,8 @@ wxLongLong wxGetUTCTimeMillis()
     val *= wxGetUTCTime();
     return val;
 #endif // time functions
+
+#endif // __WINDOWS__/!__WINDOWS__
 }
 
 wxLongLong wxGetLocalTimeMillis()