]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_datetime.i
All platforms have the same GLCanvas API now
[wxWidgets.git] / wxPython / src / _datetime.i
index 9441f8ee1e782903d80c182e00f9617c3603557e..4eb0162dd17d74850ae744e15bf227470a5ec921 100644 (file)
@@ -30,7 +30,7 @@ MAKE_CONST_WXSTRING(DefaultTimeSpanFormat);
     $1 = new wxDateTime::TimeZone((wxDateTime::TZ)PyInt_AsLong($input));
     temp = true;
 }
     $1 = new wxDateTime::TimeZone((wxDateTime::TZ)PyInt_AsLong($input));
     temp = true;
 }
-%typemap(python,freearg) wxDateTime::TimeZone& {
+%typemap(freearg) wxDateTime::TimeZone& {
     if (temp$argnum) delete $1;
 }
 
     if (temp$argnum) delete $1;
 }
 
@@ -42,7 +42,7 @@ MAKE_CONST_WXSTRING(DefaultTimeSpanFormat);
 
 // Convert a wxLongLong to a Python Long by getting the hi/lo dwords, then
 // shifting and oring them together
 
 // Convert a wxLongLong to a Python Long by getting the hi/lo dwords, then
 // shifting and oring them together
-%typemap(python, out) wxLongLong {
+%typemap(out) wxLongLong {
     PyObject *hi, *lo, *shifter, *shifted;
     hi = PyLong_FromLong( $1.GetHi() );
     lo = PyLong_FromLong( $1.GetLo() );
     PyObject *hi, *lo, *shifter, *shifted;
     hi = PyLong_FromLong( $1.GetHi() );
     lo = PyLong_FromLong( $1.GetLo() );
@@ -78,7 +78,7 @@ public:
         GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
         GMT0,
         GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
         GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
         GMT0,
         GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
-        GMT7, GMT8, GMT9, GMT10, GMT11, GMT12,
+        GMT7, GMT8, GMT9, GMT10, GMT11, GMT12, GMT13,
 
         // Europe
         WET = GMT0,                         // Western Europe Time
 
         // Europe
         WET = GMT0,                         // Western Europe Time
@@ -108,10 +108,14 @@ public:
         // Australia
 
         A_WST = GMT8,                       // Western Standard Time
         // Australia
 
         A_WST = GMT8,                       // Western Standard Time
-        A_CST = GMT12 + 1,                  // Central Standard Time (+9.5)
+        A_CST = GMT13 + 1,                  // Central Standard Time (+9.5)
         A_EST = GMT10,                      // Eastern Standard Time
         A_ESST = GMT11,                     // Eastern Summer Time
 
         A_EST = GMT10,                      // Eastern Standard Time
         A_ESST = GMT11,                     // Eastern Summer Time
 
+        // New Zealand
+        NZST = GMT12,                       // Standard Time
+        NZDT = GMT13,                       // Daylight Saving Time
+        
         // Universal Coordinated Time = the new and politically correct name
         // for GMT
         UTC = GMT0
         // Universal Coordinated Time = the new and politically correct name
         // for GMT
         UTC = GMT0
@@ -372,7 +376,7 @@ public:
             wxString am;
             wxString pm;
             wxDateTime::GetAmPmStrings(&am, &pm);
             wxString am;
             wxString pm;
             wxDateTime::GetAmPmStrings(&am, &pm);
-            bool blocked = wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             PyObject* tup = PyTuple_New(2);
             PyTuple_SET_ITEM(tup, 0, wx2PyString(am));
             PyTuple_SET_ITEM(tup, 1, wx2PyString(pm));
             PyObject* tup = PyTuple_New(2);
             PyTuple_SET_ITEM(tup, 0, wx2PyString(am));
             PyTuple_SET_ITEM(tup, 1, wx2PyString(pm));
@@ -426,6 +430,7 @@ public:
                                      wxDateTime_t minute = 0,
                                      wxDateTime_t second = 0,
                                      wxDateTime_t millisec = 0));
                                      wxDateTime_t minute = 0,
                                      wxDateTime_t second = 0,
                                      wxDateTime_t millisec = 0));
+    %RenameCtor(DateTimeFromDateTime, wxDateTime(const wxDateTime& date));
             
     ~wxDateTime();
 
             
     ~wxDateTime();
 
@@ -459,6 +464,10 @@ public:
         // resets time to 00:00:00, doesn't change the date
     wxDateTime& ResetTime();
 
         // resets time to 00:00:00, doesn't change the date
     wxDateTime& ResetTime();
 
+        // get the date part of this object only, i.e. the object which has the
+        // same date as this one but time of 00:00:00
+    wxDateTime GetDateOnly() const;
+    
         // the following functions don't change the values of the other
         // fields, i.e. SetMinute() won't change either hour or seconds value
 
         // the following functions don't change the values of the other
         // fields, i.e. SetMinute() won't change either hour or seconds value
 
@@ -501,10 +510,6 @@ public:
                       int n = 1,
                       Month month = Inv_Month,
                       int year = Inv_Year);
                       int n = 1,
                       Month month = Inv_Month,
                       int year = Inv_Year);
-//      wxDateTime GetWeekDay(WeekDay weekday,
-//                            int n = 1,
-//                            Month month = Inv_Month,
-//                            int year = Inv_Year);
 
         // sets to the last weekday in the given month, year
     bool SetToLastWeekDay(WeekDay weekday,
 
         // sets to the last weekday in the given month, year
     bool SetToLastWeekDay(WeekDay weekday,
@@ -514,17 +519,6 @@ public:
                               Month month = Inv_Month,
                               int year = Inv_Year);
 
                               Month month = Inv_Month,
                               int year = Inv_Year);
 
-        // sets the date to the given day of the given week in the year,
-        // returns True on success and False if given date doesn't exist (e.g.
-        // numWeek is > 53)
-    bool SetToTheWeek(wxDateTime_t numWeek, WeekDay weekday = Mon, WeekFlags flags = Monday_First);
-    wxDateTime GetWeek(wxDateTime_t numWeek, WeekDay weekday = Mon, WeekFlags flags = Monday_First);
-
-    %pythoncode {
-        SetToTheWeek = wx._deprecated(SetToTheWeek, "SetToTheWeek is deprecated, use (static) SetToWeekOfYear instead")
-        GetWeek = wx._deprecated(GetWeek, "GetWeek is deprecated, use GetWeekOfYear instead")
-    }
-            
         // returns the date corresponding to the given week day of the given
         // week (in ISO notation) of the specified year
     static wxDateTime SetToWeekOfYear(int year,
         // returns the date corresponding to the given week day of the given
         // week (in ISO notation) of the specified year
     static wxDateTime SetToWeekOfYear(int year,
@@ -586,10 +580,22 @@ public:
     wxDateTime ToTimezone(const wxDateTime::TimeZone& tz, bool noDST = false);
     wxDateTime& MakeTimezone(const wxDateTime::TimeZone& tz, bool noDST = false);
 
     wxDateTime ToTimezone(const wxDateTime::TimeZone& tz, bool noDST = false);
     wxDateTime& MakeTimezone(const wxDateTime::TimeZone& tz, bool noDST = false);
 
-        // transform to GMT/UTC
-    wxDateTime ToGMT(bool noDST = false);
+        // interpret current value as being in another timezone and transform
+        // it to local one
+    wxDateTime FromTimezone(const wxDateTime::TimeZone& tz, bool noDST = false) const;
+    wxDateTime& MakeFromTimezone(const wxDateTime::TimeZone& tz, bool noDST = false);
+
+        // transform to/from GMT/UTC
+    wxDateTime ToUTC(bool noDST = false) const;
+    wxDateTime& MakeUTC(bool noDST = false);
+
+    wxDateTime ToGMT(bool noDST = false) const;
     wxDateTime& MakeGMT(bool noDST = false);
 
     wxDateTime& MakeGMT(bool noDST = false);
 
+    wxDateTime FromUTC(bool noDST = false) const;
+    wxDateTime& MakeFromUTC(bool noDST = false);
+
+    
         // is daylight savings time in effect at this moment according to the
         // rules of the specified country?
         //
         // is daylight savings time in effect at this moment according to the
         // rules of the specified country?
         //
@@ -604,8 +610,10 @@ public:
 
         // is the date valid (True even for non initialized objects)?
     inline bool IsValid() const;
 
         // is the date valid (True even for non initialized objects)?
     inline bool IsValid() const;
-    %pythoncode { Ok = IsValid }
-    %pythoncode { def __nonzero__(self): return self.Ok() };
+    %pythoncode { IsOk = IsValid }
+    %pythoncode { Ok = IsOk }
+   
+    %pythoncode { def __nonzero__(self): return self.IsOk() };
 
     
         // get the number of seconds since the Unix epoch - returns (time_t)-1
 
     
         // get the number of seconds since the Unix epoch - returns (time_t)-1
@@ -860,15 +868,41 @@ public:
     %pythoncode {
     def __repr__(self):
         if self.IsValid():
     %pythoncode {
     def __repr__(self):
         if self.IsValid():
-            return '<wx.DateTime: \"%s\" at %s>' % ( self.Format(), self.this)
+            f = self.Format().encode(wx.GetDefaultPyEncoding())
+            return '<wx.DateTime: \"%s\" at %s>' % ( f, self.this)
         else:
             return '<wx.DateTime: \"INVALID\" at %s>' % self.this
     def __str__(self):
         if self.IsValid():
         else:
             return '<wx.DateTime: \"INVALID\" at %s>' % self.this
     def __str__(self):
         if self.IsValid():
-            return self.Format()
+            return self.Format().encode(wx.GetDefaultPyEncoding())
         else:
             return "INVALID DateTime"
     }
         else:
             return "INVALID DateTime"
     }
+
+    %property(Day, GetDay, SetDay, doc="See `GetDay` and `SetDay`");
+    %property(DayOfYear, GetDayOfYear, doc="See `GetDayOfYear`");
+    %property(Hour, GetHour, SetHour, doc="See `GetHour` and `SetHour`");
+    %property(JDN, GetJDN, SetJDN, doc="See `GetJDN` and `SetJDN`");
+    %property(JulianDayNumber, GetJulianDayNumber, doc="See `GetJulianDayNumber`");
+    %property(LastMonthDay, GetLastMonthDay, doc="See `GetLastMonthDay`");
+    %property(LastWeekDay, GetLastWeekDay, doc="See `GetLastWeekDay`");
+    %property(MJD, GetMJD, doc="See `GetMJD`");
+    %property(Millisecond, GetMillisecond, SetMillisecond, doc="See `GetMillisecond` and `SetMillisecond`");
+    %property(Minute, GetMinute, SetMinute, doc="See `GetMinute` and `SetMinute`");
+    %property(ModifiedJulianDayNumber, GetModifiedJulianDayNumber, doc="See `GetModifiedJulianDayNumber`");
+    %property(Month, GetMonth, SetMonth, doc="See `GetMonth` and `SetMonth`");
+    %property(NextWeekDay, GetNextWeekDay, doc="See `GetNextWeekDay`");
+    %property(PrevWeekDay, GetPrevWeekDay, doc="See `GetPrevWeekDay`");
+    %property(RataDie, GetRataDie, doc="See `GetRataDie`");
+    %property(Second, GetSecond, SetSecond, doc="See `GetSecond` and `SetSecond`");
+    %property(Ticks, GetTicks, doc="See `GetTicks`");
+    %property(WeekDay, GetWeekDay, doc="See `GetWeekDay`");
+    %property(WeekDayInSameWeek, GetWeekDayInSameWeek, doc="See `GetWeekDayInSameWeek`");
+    %property(WeekOfMonth, GetWeekOfMonth, doc="See `GetWeekOfMonth`");
+    %property(WeekOfYear, GetWeekOfYear, doc="See `GetWeekOfYear`");
+    %property(Year, GetYear, SetYear, doc="See `GetYear` and `SetYear`");
+    %property(YearDay, GetYearDay, doc="See `GetYearDay`");
+    
 };
 
 //---------------------------------------------------------------------------
 };
 
 //---------------------------------------------------------------------------
@@ -881,9 +915,16 @@ public:
 class wxTimeSpan
 {
 public:
 class wxTimeSpan
 {
 public:
+
+    // TODO:  Need an input typemap for wxLongLong...
+    
+    
+        // return the timespan for the given number of milliseconds
+    static wxTimeSpan Milliseconds(/*wxLongLong*/ long ms);
+    static wxTimeSpan Millisecond(); 
     
         // return the timespan for the given number of seconds
     
         // return the timespan for the given number of seconds
-    static wxTimeSpan Seconds(long sec);
+    static wxTimeSpan Seconds(/*wxLongLong*/ long sec);
     static wxTimeSpan Second();
 
         // return the timespan for the given number of minutes
     static wxTimeSpan Second();
 
         // return the timespan for the given number of minutes
@@ -910,8 +951,8 @@ public:
         // milliseconds)
     wxTimeSpan(long hours = 0,
                long minutes = 0,
         // milliseconds)
     wxTimeSpan(long hours = 0,
                long minutes = 0,
-               long seconds = 0,
-               long milliseconds = 0);
+               /*wxLongLong*/ long seconds = 0,
+               /*wxLongLong*/ long milliseconds = 0);
 
     ~wxTimeSpan();
 
 
     ~wxTimeSpan();
 
@@ -1011,10 +1052,18 @@ public:
 
     %pythoncode {
      def __repr__(self):
 
     %pythoncode {
      def __repr__(self):
-         return '<wx.TimeSpan: \"%s\" at %s>' % ( self.Format(), self.this)
+         f = self.Format().encode(wx.GetDefaultPyEncoding())
+         return '<wx.TimeSpan: \"%s\" at %s>' % ( f, self.this)
      def __str__(self):
      def __str__(self):
-         return self.Format()
+         return self.Format().encode(wx.GetDefaultPyEncoding())
      }
      }
+
+    %property(Days, GetDays, doc="See `GetDays`");
+    %property(Hours, GetHours, doc="See `GetHours`");
+    %property(Milliseconds, GetMilliseconds, doc="See `GetMilliseconds`");
+    %property(Minutes, GetMinutes, doc="See `GetMinutes`");
+    %property(Seconds, GetSeconds, doc="See `GetSeconds`");
+    %property(Weeks, GetWeeks, doc="See `GetWeeks`");
 };
 
 
 };
 
 
@@ -1140,6 +1189,12 @@ public:
         bool __eq__(const wxDateSpan* other) { return other ? (*self == *other) : false; }
         bool __ne__(const wxDateSpan* other) { return other ? (*self != *other) : true;  }
     }
         bool __eq__(const wxDateSpan* other) { return other ? (*self == *other) : false; }
         bool __ne__(const wxDateSpan* other) { return other ? (*self != *other) : true;  }
     }
+
+    %property(Days, GetDays, SetDays, doc="See `GetDays` and `SetDays`");
+    %property(Months, GetMonths, SetMonths, doc="See `GetMonths` and `SetMonths`");
+    %property(TotalDays, GetTotalDays, doc="See `GetTotalDays`");
+    %property(Weeks, GetWeeks, SetWeeks, doc="See `GetWeeks` and `SetWeeks`");
+    %property(Years, GetYears, SetYears, doc="See `GetYears` and `SetYears`");
 };
 
 
 };