X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/856bf319b572699cc31ceef8cf78d1b9770cacf9..49bffb1482cd2a6a30b38280f6c9bffc72dbfe42:/wxPython/src/_datetime.i diff --git a/wxPython/src/_datetime.i b/wxPython/src/_datetime.i index 34d2114a90..dd08788512 100644 --- a/wxPython/src/_datetime.i +++ b/wxPython/src/_datetime.i @@ -713,12 +713,39 @@ public: wxDateTime __sub__(const wxTimeSpan& other) { return *self - other; } wxDateTime __sub__(const wxDateSpan& other) { return *self - other; } - bool __lt__(const wxDateTime& other) { return *self < other; } - bool __le__(const wxDateTime& other) { return *self <= other; } - bool __gt__(const wxDateTime& other) { return *self > other; } - bool __ge__(const wxDateTime& other) { return *self >= other; } - bool __eq__(const wxDateTime& other) { return *self == other; } - bool __ne__(const wxDateTime& 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; } + + + // 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 +836,15 @@ public: %pythoncode { def __repr__(self): - return '' % ( self.Format(), self.this) + if self.IsValid(): + return '' % ( self.Format(), self.this) + else: + return '' % self.this def __str__(self): - return self.Format() + if self.IsValid(): + return self.Format() + else: + return "INVALID DateTime" } }; @@ -889,12 +922,13 @@ public: wxTimeSpan __sub__(const wxTimeSpan& other) { return *self - other; } wxTimeSpan __mul__(int n) { return *self * n; } wxTimeSpan __rmul__(int n) { return n * *self; } - bool __lt__(const wxTimeSpan& other) { return *self < other; } - bool __le__(const wxTimeSpan& other) { return *self <= other; } - bool __gt__(const wxTimeSpan& other) { return *self > other; } - bool __ge__(const wxTimeSpan& other) { return *self >= other; } - bool __eq__(const wxTimeSpan& other) { return *self == other; } - bool __ne__(const wxTimeSpan& other) { return *self != other; } + + 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; } } @@ -954,7 +988,7 @@ public: %pythoncode { def __repr__(self): - return '' % ( self.Format(), self.this) + return '' % ( self.Format(), self.this) def __str__(self): return self.Format() } @@ -1074,12 +1108,14 @@ public: wxDateSpan __sub__(const wxDateSpan& other) { return *self - other; } wxDateSpan __mul__(int n) { return *self * n; } wxDateSpan __rmul__(int n) { return n * *self; } -// bool __lt__(const wxDateSpan& other) { return *self < other; } -// bool __le__(const wxDateSpan& other) { return *self <= other; } -// bool __gt__(const wxDateSpan& other) { return *self > other; } -// bool __ge__(const wxDateSpan& other) { return *self >= other; } - bool __eq__(const wxDateSpan& other) { return *self == other; } - bool __ne__(const wxDateSpan& other) { return *self != other; } + +// 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; } } };