X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/384223b34b597844512652e5200ceaae82229c55..0e080be64b6b1f1269d78d95efb2ac728fc95a6d:/include/wx/datetime.h diff --git a/include/wx/datetime.h b/include/wx/datetime.h index 69872ce28a..654041d61c 100644 --- a/include/wx/datetime.h +++ b/include/wx/datetime.h @@ -13,10 +13,12 @@ #ifndef _WX_DATETIME_H #define _WX_DATETIME_H -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(__APPLE__) #pragma interface "datetime.h" #endif +#if wxUSE_DATETIME + #include #include // for INT_MIN @@ -26,16 +28,35 @@ class WXDLLEXPORT wxDateTime; class WXDLLEXPORT wxTimeSpan; class WXDLLEXPORT wxDateSpan; -// don't use inline functions in debug builds - we don't care about +// a hack: don't use inline functions in debug builds - we don't care about // performances and this only leads to increased rebuild time (because every // time an inline method is changed, all files including the header must be // rebuilt) -// For Mingw32, causes a link error. + +// For Mingw32, causes a link error. (VZ: why?) #if defined( __WXDEBUG__) && !defined(__MINGW32__) + #define wxDATETIME_DONT_INLINE + #undef inline #define inline +#else + // just in case + #undef wxDATETIME_DONT_INLINE #endif // Debug +// not all c-runtimes are based on 1/1/1970 being (time_t) 0 +// set this to the corresponding value in seconds 1/1/1970 has on your +// systems c-runtime + +#ifdef __WXMAC__ +#if __MSL__ < 0x6000 + #define WX_TIME_BASE_OFFSET ( 2082844800L + 126144000L ) +#else + #define WX_TIME_BASE_OFFSET 0 +#endif +#else + #define WX_TIME_BASE_OFFSET 0 +#endif /* * TODO * @@ -100,7 +121,7 @@ class WXDLLEXPORT wxDateSpan; // wxInvalidDateTime) class WXDLLEXPORT wxDateTime; -WXDLLEXPORT_DATA(extern const wxDateTime&) wxDefaultDateTime; +WXDLLEXPORT_DATA(extern const wxDateTime) wxDefaultDateTime; #define wxInvalidDateTime wxDefaultDateTime // ---------------------------------------------------------------------------- @@ -526,7 +547,7 @@ public: // ------------------------------------------------------------------------ // default ctor does not initialize the object, use Set()! - wxDateTime() { } + wxDateTime() { m_time = wxLongLong((long)ULONG_MAX, ULONG_MAX); } // from time_t: seconds since the Epoch 00:00:00 UTC, Jan 1, 1970) #if (!(defined(__VISAGECPP__) && __IBMCPP__ >= 400)) @@ -548,7 +569,7 @@ public: wxDateTime_t millisec = 0); // from separate values for each component with explicit date inline wxDateTime(wxDateTime_t day, // day of the month - Month month = Inv_Month, + Month month, int year = Inv_Year, // 1999, not 99 please! wxDateTime_t hour = 0, wxDateTime_t minute = 0, @@ -591,7 +612,7 @@ public: // from separate values for each component with explicit date // (defaults for month and year are the current values) wxDateTime& Set(wxDateTime_t day, - Month month = Inv_Month, + Month month, int year = Inv_Year, // 1999, not 99 please! wxDateTime_t hour = 0, wxDateTime_t minute = 0, @@ -760,8 +781,7 @@ public: // result of timezone shift) // ------------------------------------------------------------------------ - // is the date valid? Note that this will return TRUE for non - // initialized objects but FALSE if *this == wxInvalidDateTime + // is the date valid? inline bool IsValid() const { return m_time != wxInvalidDateTime.m_time; } // get the broken down date/time representation in the given timezone @@ -1322,14 +1342,16 @@ protected: // else than datetime.cpp in debug builds: this minimizes rebuilds if we change // some inline function and the performance doesn't matter in the debug builds. -#if !defined(__WXDEBUG__) || defined(wxDEFINE_TIME_CONSTANTS) +#if !defined(wxDATETIME_DONT_INLINE) || defined(wxDEFINE_TIME_CONSTANTS) #define INCLUDED_FROM_WX_DATETIME_H #include "wx/datetime.inl" #undef INCLUDED_FROM_WX_DATETIME_H #endif // if we defined it to be empty above, restore it now -#undef inline +#ifdef wxDATETIME_DONT_INLINE + #undef inline +#endif // ============================================================================ // binary operators @@ -1558,4 +1580,6 @@ inline WXDLLEXPORT void wxPrevWDay(wxDateTime::WeekDay& wd) : (wxDateTime::WeekDay)(wd - 1); } +#endif // wxUSE_DATETIME + #endif // _WX_DATETIME_H