X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/371a5b4e62eb415107e045588f614fa49e866e78..e450aa692b887adbae4350896f6c90ec8e1368e3:/include/wx/datetime.h?ds=sidebyside diff --git a/include/wx/datetime.h b/include/wx/datetime.h index c9e9ec35e8..c5cc700826 100644 --- a/include/wx/datetime.h +++ b/include/wx/datetime.h @@ -26,9 +26,9 @@ #include "wx/longlong.h" -class WXDLLEXPORT wxDateTime; -class WXDLLEXPORT wxTimeSpan; -class WXDLLEXPORT wxDateSpan; +class WXDLLIMPEXP_BASE wxDateTime; +class WXDLLIMPEXP_BASE wxTimeSpan; +class WXDLLIMPEXP_BASE wxDateSpan; // 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 @@ -117,16 +117,16 @@ class WXDLLEXPORT wxDateSpan; // argument for arguments of type wxDateTime; it is also returned by all // functions returning wxDateTime on failure (this is why it is also called // wxInvalidDateTime) -class WXDLLEXPORT wxDateTime; +class WXDLLIMPEXP_BASE wxDateTime; -WXDLLEXPORT_DATA(extern const wxDateTime) wxDefaultDateTime; +extern WXDLLIMPEXP_DATA_BASE(const wxDateTime) wxDefaultDateTime; #define wxInvalidDateTime wxDefaultDateTime // ---------------------------------------------------------------------------- // wxDateTime represents an absolute moment in the time // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDateTime +class WXDLLIMPEXP_BASE wxDateTime { public: // types @@ -398,7 +398,7 @@ public: // a class representing a time zone: basicly, this is just an offset // (in seconds) from GMT - class WXDLLEXPORT TimeZone + class WXDLLIMPEXP_BASE TimeZone { public: TimeZone(TZ tz); @@ -418,7 +418,7 @@ public: // NB: this struct should always be kept normalized (i.e. mon should // be < 12, 1 <= day <= 31 &c), so use AddMonths(), AddDays() // instead of modifying the member fields directly! - struct WXDLLEXPORT Tm + struct WXDLLIMPEXP_BASE Tm { wxDateTime_t msec, sec, min, hour, mday; Month mon; @@ -1005,7 +1005,7 @@ private: // objects of that class. See also wxDateSpan. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTimeSpan +class WXDLLIMPEXP_BASE wxTimeSpan { public: // constructors @@ -1185,7 +1185,7 @@ private: // associated with those. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDateSpan +class WXDLLIMPEXP_BASE wxDateSpan { public: // constructors @@ -1287,7 +1287,7 @@ private: #include "wx/dynarray.h" -WX_DECLARE_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray); +WX_DECLARE_USER_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray, WXDLLIMPEXP_BASE); // ---------------------------------------------------------------------------- // wxDateTimeHolidayAuthority: an object of this class will decide whether a @@ -1298,11 +1298,13 @@ WX_DECLARE_EXPORTED_OBJARRAY(wxDateTime, wxDateTimeArray); // virtual methods to work with the holidays they correspond to. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDateTimeHolidayAuthority; -WX_DEFINE_EXPORTED_ARRAY(wxDateTimeHolidayAuthority *, wxHolidayAuthoritiesArray); +class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority; +WX_DEFINE_USER_EXPORTED_ARRAY(wxDateTimeHolidayAuthority *, + wxHolidayAuthoritiesArray, + class WXDLLIMPEXP_BASE); class wxDateTimeHolidaysModule; -class WXDLLEXPORT wxDateTimeHolidayAuthority +class WXDLLIMPEXP_BASE wxDateTimeHolidayAuthority { friend class wxDateTimeHolidaysModule; public: @@ -1322,6 +1324,9 @@ public: // wxDateTimeHolidayAuthority) static void AddAuthority(wxDateTimeHolidayAuthority *auth); + // the base class must have a virtual dtor + virtual ~wxDateTimeHolidayAuthority(); + protected: // this function is called to determine whether a given day is a holiday virtual bool DoIsHoliday(const wxDateTime& dt) const = 0; @@ -1344,7 +1349,7 @@ private: }; // the holidays for this class are all Saturdays and Sundays -class WXDLLEXPORT wxDateTimeWorkDays : public wxDateTimeHolidayAuthority +class WXDLLIMPEXP_BASE wxDateTimeWorkDays : public wxDateTimeHolidayAuthority { protected: virtual bool DoIsHoliday(const wxDateTime& dt) const; @@ -1385,31 +1390,31 @@ protected: // no need to check for validity - the member functions we call will do it -inline wxDateTime WXDLLEXPORT operator+(const wxDateTime& dt, +inline wxDateTime WXDLLIMPEXP_BASE operator+(const wxDateTime& dt, const wxTimeSpan& ts) { return dt.Add(ts); } -inline wxDateTime WXDLLEXPORT operator-(const wxDateTime& dt, +inline wxDateTime WXDLLIMPEXP_BASE operator-(const wxDateTime& dt, const wxTimeSpan& ts) { return dt.Subtract(ts); } -inline wxDateTime WXDLLEXPORT operator+(const wxDateTime& dt, +inline wxDateTime WXDLLIMPEXP_BASE operator+(const wxDateTime& dt, const wxDateSpan& ds) { return dt.Add(ds); } -inline wxDateTime WXDLLEXPORT operator-(const wxDateTime& dt, +inline wxDateTime WXDLLIMPEXP_BASE operator-(const wxDateTime& dt, const wxDateSpan& ds) { return dt.Subtract(ds); } -inline wxTimeSpan WXDLLEXPORT operator-(const wxDateTime& dt1, +inline wxTimeSpan WXDLLIMPEXP_BASE operator-(const wxDateTime& dt1, const wxDateTime& dt2) { return dt1.Subtract(dt2); @@ -1418,42 +1423,42 @@ inline wxTimeSpan WXDLLEXPORT operator-(const wxDateTime& dt1, // comparison // ---------- -inline bool WXDLLEXPORT operator<(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator<(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); return t1.GetValue() < t2.GetValue(); } -inline bool WXDLLEXPORT operator<=(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator<=(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); return t1.GetValue() <= t2.GetValue(); } -inline bool WXDLLEXPORT operator>(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator>(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); return t1.GetValue() > t2.GetValue(); } -inline bool WXDLLEXPORT operator>=(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator>=(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); return t1.GetValue() >= t2.GetValue(); } -inline bool WXDLLEXPORT operator==(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator==(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); return t1.GetValue() == t2.GetValue(); } -inline bool WXDLLEXPORT operator!=(const wxDateTime& t1, const wxDateTime& t2) +inline bool WXDLLIMPEXP_BASE operator!=(const wxDateTime& t1, const wxDateTime& t2) { wxASSERT_MSG( t1.IsValid() && t2.IsValid(), _T("invalid wxDateTime") ); @@ -1467,24 +1472,24 @@ inline bool WXDLLEXPORT operator!=(const wxDateTime& t1, const wxDateTime& t2) // arithmetics // ----------- -inline wxTimeSpan WXDLLEXPORT operator+(const wxTimeSpan& ts1, +inline wxTimeSpan WXDLLIMPEXP_BASE operator+(const wxTimeSpan& ts1, const wxTimeSpan& ts2) { return wxTimeSpan(ts1.GetValue() + ts2.GetValue()); } -inline wxTimeSpan WXDLLEXPORT operator-(const wxTimeSpan& ts1, +inline wxTimeSpan WXDLLIMPEXP_BASE operator-(const wxTimeSpan& ts1, const wxTimeSpan& ts2) { return wxTimeSpan(ts1.GetValue() - ts2.GetValue()); } -inline wxTimeSpan WXDLLEXPORT operator*(const wxTimeSpan& ts, int n) +inline wxTimeSpan WXDLLIMPEXP_BASE operator*(const wxTimeSpan& ts, int n) { return wxTimeSpan(ts).Multiply(n); } -inline wxTimeSpan WXDLLEXPORT operator*(int n, const wxTimeSpan& ts) +inline wxTimeSpan WXDLLIMPEXP_BASE operator*(int n, const wxTimeSpan& ts) { return wxTimeSpan(ts).Multiply(n); } @@ -1492,32 +1497,32 @@ inline wxTimeSpan WXDLLEXPORT operator*(int n, const wxTimeSpan& ts) // comparison // ---------- -inline bool WXDLLEXPORT operator<(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator<(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() < t2.GetValue(); } -inline bool WXDLLEXPORT operator<=(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator<=(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() <= t2.GetValue(); } -inline bool WXDLLEXPORT operator>(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator>(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() > t2.GetValue(); } -inline bool WXDLLEXPORT operator>=(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator>=(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() >= t2.GetValue(); } -inline bool WXDLLEXPORT operator==(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator==(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() == t2.GetValue(); } -inline bool WXDLLEXPORT operator!=(const wxTimeSpan &t1, const wxTimeSpan &t2) +inline bool WXDLLIMPEXP_BASE operator!=(const wxTimeSpan &t1, const wxTimeSpan &t2) { return t1.GetValue() != t2.GetValue(); } @@ -1530,7 +1535,7 @@ inline bool WXDLLEXPORT operator!=(const wxTimeSpan &t1, const wxTimeSpan &t2) // ---------- // ds1 == d2 if and only if for every wxDateTime t t + ds1 == t + ds2 -inline WXDLLEXPORT bool operator==(const wxDateSpan& ds1, +inline WXDLLIMPEXP_BASE bool operator==(const wxDateSpan& ds1, const wxDateSpan& ds2) { return ds1.GetYears() == ds2.GetYears() && @@ -1538,7 +1543,7 @@ inline WXDLLEXPORT bool operator==(const wxDateSpan& ds1, ds1.GetTotalDays() == ds2.GetTotalDays(); } -inline WXDLLEXPORT bool operator!=(const wxDateSpan& ds1, +inline WXDLLIMPEXP_BASE bool operator!=(const wxDateSpan& ds1, const wxDateSpan& ds2) { return !(ds1 == ds2); @@ -1547,7 +1552,7 @@ inline WXDLLEXPORT bool operator!=(const wxDateSpan& ds1, // arithmetics // ----------- -inline WXDLLEXPORT wxDateSpan operator+(const wxDateSpan& ds1, +inline WXDLLIMPEXP_BASE wxDateSpan operator+(const wxDateSpan& ds1, const wxDateSpan& ds2) { return wxDateSpan(ds1.GetYears() + ds2.GetYears(), @@ -1556,7 +1561,7 @@ inline WXDLLEXPORT wxDateSpan operator+(const wxDateSpan& ds1, ds1.GetDays() + ds2.GetDays()); } -inline WXDLLEXPORT wxDateSpan operator-(const wxDateSpan& ds1, +inline WXDLLIMPEXP_BASE wxDateSpan operator-(const wxDateSpan& ds1, const wxDateSpan& ds2) { return wxDateSpan(ds1.GetYears() - ds2.GetYears(), @@ -1565,12 +1570,12 @@ inline WXDLLEXPORT wxDateSpan operator-(const wxDateSpan& ds1, ds1.GetDays() - ds2.GetDays()); } -inline WXDLLEXPORT wxDateSpan operator*(const wxDateSpan& ds, int n) +inline WXDLLIMPEXP_BASE wxDateSpan operator*(const wxDateSpan& ds, int n) { return wxDateSpan(ds).Multiply(n); } -inline WXDLLEXPORT wxDateSpan operator*(int n, const wxDateSpan& ds) +inline WXDLLIMPEXP_BASE wxDateSpan operator*(int n, const wxDateSpan& ds) { return wxDateSpan(ds).Multiply(n); } @@ -1585,7 +1590,7 @@ inline WXDLLEXPORT wxDateSpan operator*(int n, const wxDateSpan& ds) // for ( m = wxDateTime::Jan; m < wxDateTime::Inv_Month; wxNextMonth(m) ) // ---------------------------------------------------------------------------- -inline WXDLLEXPORT void wxNextMonth(wxDateTime::Month& m) +inline WXDLLIMPEXP_BASE void wxNextMonth(wxDateTime::Month& m) { wxASSERT_MSG( m < wxDateTime::Inv_Month, _T("invalid month") ); @@ -1593,7 +1598,7 @@ inline WXDLLEXPORT void wxNextMonth(wxDateTime::Month& m) m = (wxDateTime::Month)(m + 1); } -inline WXDLLEXPORT void wxPrevMonth(wxDateTime::Month& m) +inline WXDLLIMPEXP_BASE void wxPrevMonth(wxDateTime::Month& m) { wxASSERT_MSG( m < wxDateTime::Inv_Month, _T("invalid month") ); @@ -1601,7 +1606,7 @@ inline WXDLLEXPORT void wxPrevMonth(wxDateTime::Month& m) : (wxDateTime::Month)(m - 1); } -inline WXDLLEXPORT void wxNextWDay(wxDateTime::WeekDay& wd) +inline WXDLLIMPEXP_BASE void wxNextWDay(wxDateTime::WeekDay& wd) { wxASSERT_MSG( wd < wxDateTime::Inv_WeekDay, _T("invalid week day") ); @@ -1609,7 +1614,7 @@ inline WXDLLEXPORT void wxNextWDay(wxDateTime::WeekDay& wd) wd = (wxDateTime::WeekDay)(wd + 1); } -inline WXDLLEXPORT void wxPrevWDay(wxDateTime::WeekDay& wd) +inline WXDLLIMPEXP_BASE void wxPrevWDay(wxDateTime::WeekDay& wd) { wxASSERT_MSG( wd < wxDateTime::Inv_WeekDay, _T("invalid week day") );