]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_datetime.i
added a test to check how exception handling works with Win32 SEH; corrected copyright
[wxWidgets.git] / wxPython / src / _datetime.i
index da3bd3099e34a1055eb51d031cb1bc2567607c7b..d932869e94656486db23e3135b12678340fb5012 100644 (file)
@@ -26,9 +26,9 @@ MAKE_CONST_WXSTRING2(TimeSpanFormatStr, wxT("%H:%M:%S"));
 //---------------------------------------------------------------------------
 
 
-%typemap(in) wxDateTime::TimeZone& (bool temp=False) {
+%typemap(in) wxDateTime::TimeZone& (bool temp=false) {
     $1 = new wxDateTime::TimeZone((wxDateTime::TZ)PyInt_AsLong($input));
-    temp = True;
+    temp = true;
 }
 %typemap(python,freearg) wxDateTime::TimeZone& {
     if (temp$argnum) delete $1;
@@ -343,15 +343,15 @@ public:
 
         // returns the number of days in this year (356 or 355 for Gregorian
         // calendar usually :-)
-    %name(GetNumberOfDaysinYear)
-        static wxDateTime_t GetNumberOfDays(int year, Calendar cal = Gregorian);
+    %Rename(GetNumberOfDaysinYear, 
+        static wxDateTime_t, GetNumberOfDays(int year, Calendar cal = Gregorian));
 
         // get the number of the days in the given month (default value for
         // the year means the current one)
-    %name(GetNumberOfDaysInMonth)
-        static wxDateTime_t GetNumberOfDays(Month month,
+    %Rename(GetNumberOfDaysInMonth, 
+        static wxDateTime_t, GetNumberOfDays(Month month,
                                             int year = Inv_Year,
-                                            Calendar cal = Gregorian);
+                                            Calendar cal = Gregorian));
 
         // get the full (default) or abbreviated month name in the current
         // locale, returns empty string on error
@@ -366,7 +366,7 @@ public:
     DocDeclAStr(
         static void, GetAmPmStrings(wxString *OUTPUT, wxString *OUTPUT),
         "GetAmPmStrings() -> (am, pm)",
-        "Get the AM and PM strings in the current locale (may be empty)");
+        "Get the AM and PM strings in the current locale (may be empty)", "");
 
         // return True if the given country uses DST for this year
     static bool IsDSTApplicable(int year = Inv_Year,
@@ -400,19 +400,19 @@ public:
     // constructors
 
     wxDateTime();
-    %name(DateTimeFromTimeT)wxDateTime(time_t timet);
-    %name(DateTimeFromJDN)wxDateTime(double jdn);
-    %name(DateTimeFromHMS)wxDateTime(wxDateTime_t hour,
+    %RenameCtor(DateTimeFromTimeT, wxDateTime(time_t timet));
+    %RenameCtor(DateTimeFromJDN, wxDateTime(double jdn));
+    %RenameCtor(DateTimeFromHMS, wxDateTime(wxDateTime_t hour,
                                      wxDateTime_t minute = 0,
                                      wxDateTime_t second = 0,
-                                     wxDateTime_t millisec = 0);
-    %name(DateTimeFromDMY)wxDateTime(wxDateTime_t day,
+                                     wxDateTime_t millisec = 0));
+    %RenameCtor(DateTimeFromDMY, wxDateTime(wxDateTime_t day,
                                      Month        month = Inv_Month,
                                      int          year = Inv_Year,
                                      wxDateTime_t hour = 0,
                                      wxDateTime_t minute = 0,
                                      wxDateTime_t second = 0,
-                                     wxDateTime_t millisec = 0);
+                                     wxDateTime_t millisec = 0));
             
     ~wxDateTime();
 
@@ -422,16 +422,16 @@ public:
     wxDateTime& SetToCurrent();
 
         // set to given time_t value
-    %name(SetTimeT)wxDateTime& Set(time_t timet);
+    %Rename(SetTimeT, wxDateTime&, Set(time_t timet));
 
         // set to given JDN (beware of rounding errors)
-    %name(SetJDN)wxDateTime& Set(double jdn);
+    %Rename(SetJDN, wxDateTime&, Set(double jdn));
 
         // set to given time, date = today
-    %name(SetHMS)wxDateTime& Set(wxDateTime_t hour,
+    %Rename(SetHMS, wxDateTime&, Set(wxDateTime_t hour,
                     wxDateTime_t minute = 0,
                     wxDateTime_t second = 0,
-                    wxDateTime_t millisec = 0);
+                    wxDateTime_t millisec = 0));
 
         // from separate values for each component with explicit date
         // (defaults for month and year are the current values)
@@ -507,6 +507,17 @@ public:
     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,
+                                      wxDateTime_t numWeek,
+                                      WeekDay weekday = Mon);
+    
         // sets the date to the last day of the given (or current) month or the
         // given (or current) year
     wxDateTime& SetToLastMonthDay(Month month = Inv_Month,
@@ -559,12 +570,12 @@ public:
     // timezone stuff
 
         // transform to any given timezone
-    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);
-    wxDateTime& MakeGMT(bool noDST = False);
+    wxDateTime ToGMT(bool noDST = false);
+    wxDateTime& MakeGMT(bool noDST = false);
 
         // is daylight savings time in effect at this moment according to the
         // rules of the specified country?
@@ -670,15 +681,15 @@ public:
     // arithmetics with dates (see also below for more operators)
 
         // add a time span (positive or negative)
-    %name(AddTS) wxDateTime& Add(const wxTimeSpan& diff);
+    %Rename(AddTS,  wxDateTime&, Add(const wxTimeSpan& diff));
         // add a date span (positive or negative)
-    %name(AddDS) wxDateTime& Add(const wxDateSpan& diff);
+    %Rename(AddDS,  wxDateTime&, Add(const wxDateSpan& diff));
 
         // subtract a time span (positive or negative)
-    %name(SubtractTS) wxDateTime& Subtract(const wxTimeSpan& diff);
+    %Rename(SubtractTS,  wxDateTime&, Subtract(const wxTimeSpan& diff));
 
         // subtract a date span (positive or negative)
-    %name(SubtractDS) wxDateTime& Subtract(const wxDateSpan& diff);
+    %Rename(SubtractDS,  wxDateTime&, Subtract(const wxDateSpan& diff));
 
         // return the difference between two dates
     wxTimeSpan Subtract(const wxDateTime& dt) const;
@@ -713,12 +724,39 @@ public:
         wxDateTime __sub__(const wxTimeSpan& other) { return *self - other; }
         wxDateTime __sub__(const wxDateSpan& other) { return *self - other; }
 
-        bool __lt__(const wxDateTime* other) { return other ? (*self <  *other) : False; }
-        bool __le__(const wxDateTime* other) { return other ? (*self <= *other) : False; }
-        bool __gt__(const wxDateTime* other) { return other ? (*self >  *other) : True;  }
-        bool __ge__(const wxDateTime* other) { return other ? (*self >= *other) : True;  }
-        bool __eq__(const wxDateTime* other) { return other ? (*self == *other) : False; }
-        bool __ne__(const wxDateTime* other) { return other ? (*self != *other) : True;  }
+//         bool __lt__(const wxDateTime* other) { return other ? (*self <  *other) : false; }
+//         bool __le__(const wxDateTime* other) { return other ? (*self <= *other) : false; }
+//         bool __gt__(const wxDateTime* other) { return other ? (*self >  *other) : true;  }
+//         bool __ge__(const wxDateTime* other) { return other ? (*self >= *other) : true;  }
+
+
+        // These fall back to just comparing pointers if other is NULL, or if
+        // either operand is invalid.
+        bool __lt__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self <  other; 
+            return (*self <  *other);
+        }
+        bool __le__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self <= other; 
+            return (*self <= *other);
+        }
+        bool __gt__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self >  other; 
+            return (*self >  *other);
+        }
+        bool __ge__(const wxDateTime* other) { 
+            if (!other || !self->IsValid() || !other->IsValid()) return self >= other; 
+            return (*self >= *other);
+        }
+
+        bool __eq__(const wxDateTime* other) {
+            if (!other || !self->IsValid() || !other->IsValid()) return self == other; 
+            return (*self == *other);
+        }
+        bool __ne__(const wxDateTime* other) {
+            if (!other || !self->IsValid() || !other->IsValid()) return self != other; 
+            return (*self != *other);
+        }            
     }
 
         
@@ -809,9 +847,15 @@ public:
 
     %pythoncode {
     def __repr__(self):
-        return '<wxDateTime: \"%s\" at %s>' % ( self.Format(), self.this)
+        if self.IsValid():
+            return '<wx.DateTime: \"%s\" at %s>' % ( self.Format(), self.this)
+        else:
+            return '<wx.DateTime: \"INVALID\" at %s>' % self.this
     def __str__(self):
-        return self.Format()
+        if self.IsValid():
+            return self.Format()
+        else:
+            return "INVALID DateTime"
     }
 };
 
@@ -890,12 +934,12 @@ public:
         wxTimeSpan __mul__(int n)                   { return *self * n; }
         wxTimeSpan __rmul__(int n)                  { return n * *self; }
         
-        bool __lt__(const wxTimeSpan* other) { return other ? (*self <  *other) : False; }
-        bool __le__(const wxTimeSpan* other) { return other ? (*self <= *other) : False; }
-        bool __gt__(const wxTimeSpan* other) { return other ? (*self >  *other) : True;  }
-        bool __ge__(const wxTimeSpan* other) { return other ? (*self >= *other) : True;  }
-        bool __eq__(const wxTimeSpan* other) { return other ? (*self == *other) : False; }
-        bool __ne__(const wxTimeSpan* other) { return other ? (*self != *other) : True;  }
+        bool __lt__(const wxTimeSpan* other) { return other ? (*self <  *other) : false; }
+        bool __le__(const wxTimeSpan* other) { return other ? (*self <= *other) : false; }
+        bool __gt__(const wxTimeSpan* other) { return other ? (*self >  *other) : true;  }
+        bool __ge__(const wxTimeSpan* other) { return other ? (*self >= *other) : true;  }
+        bool __eq__(const wxTimeSpan* other) { return other ? (*self == *other) : false; }
+        bool __ne__(const wxTimeSpan* other) { return other ? (*self != *other) : true;  }
     }
 
 
@@ -955,7 +999,7 @@ public:
 
     %pythoncode {
      def __repr__(self):
-         return '<wxTimeSpan: \"%s\" at %s>' % ( self.Format(), self.this)
+         return '<wx.TimeSpan: \"%s\" at %s>' % ( self.Format(), self.this)
      def __str__(self):
          return self.Format()
      }
@@ -1076,13 +1120,13 @@ public:
         wxDateSpan __mul__(int n)                   { return *self * n; }
         wxDateSpan __rmul__(int n)                  { return n * *self; }
         
-//         bool __lt__(const wxDateSpan* other) { return other ? (*self <  *other) : False; }
-//         bool __le__(const wxDateSpan* other) { return other ? (*self <= *other) : False; }
-//         bool __gt__(const wxDateSpan* other) { return other ? (*self >  *other) : True;  }
-//         bool __ge__(const wxDateSpan* other) { return other ? (*self >= *other) : True;  }
+//         bool __lt__(const wxDateSpan* other) { return other ? (*self <  *other) : false; }
+//         bool __le__(const wxDateSpan* other) { return other ? (*self <= *other) : false; }
+//         bool __gt__(const wxDateSpan* other) { return other ? (*self >  *other) : true;  }
+//         bool __ge__(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;  }
+        bool __eq__(const wxDateSpan* other) { return other ? (*self == *other) : false; }
+        bool __ne__(const wxDateSpan* other) { return other ? (*self != *other) : true;  }
     }
 };