]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_datetime.i
Fix GBSpan and GBPosition typemaps
[wxWidgets.git] / wxPython / src / _datetime.i
index 04ef881b0e165a4e4792366b6d18c2b8d43036fc..da3bd3099e34a1055eb51d031cb1bc2567607c7b 100644 (file)
 %{
 #include <wx/datetime.h>
 
-    DECLARE_DEF_STRING2(DateFormatStr, wxT("%c"));
-    DECLARE_DEF_STRING2(TimeSpanFormatStr, wxT("%H:%M:%S"));
-
-%}    
+%}
+MAKE_CONST_WXSTRING2(DateFormatStr, wxT("%c"));
+MAKE_CONST_WXSTRING2(TimeSpanFormatStr, wxT("%H:%M:%S"));
 
 //---------------------------------------------------------------------------
 
 
-%typemap(in) wxDateTime::TimeZone& {
+%typemap(in) wxDateTime::TimeZone& (bool temp=False) {
     $1 = new wxDateTime::TimeZone((wxDateTime::TZ)PyInt_AsLong($input));
+    temp = True;
 }
 %typemap(python,freearg) wxDateTime::TimeZone& {
-    if ($1) delete $1;
+    if (temp$argnum) delete $1;
 }
 
 
 
 //---------------------------------------------------------------------------
 
+//typedef unsigned short wxDateTime_t;
+#define wxDateTime_t int
 
 // wxDateTime represents an absolute moment in the time
 class wxDateTime {
 public:
-    typedef unsigned short wxDateTime_t;
 
     enum TZ
     {
@@ -362,8 +363,10 @@ public:
     static wxString GetWeekDayName(WeekDay weekday,
                                    NameFlags flags = Name_Full);
 
-        // get the AM and PM strings in the current locale (may be empty)
-    static void GetAmPmStrings(wxString *OUTPUT, wxString *OUTPUT);
+    DocDeclAStr(
+        static void, GetAmPmStrings(wxString *OUTPUT, wxString *OUTPUT),
+        "GetAmPmStrings() -> (am, pm)",
+        "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,
@@ -577,7 +580,10 @@ public:
 
         // is the date valid (True even for non initialized objects)?
     inline bool IsValid() const;
+    %pythoncode { Ok = IsValid }
+    %pythoncode { def __nonzero__(self): return self.Ok() };
 
+    
         // get the number of seconds since the Unix epoch - returns (time_t)-1
         // if the value is out of range
     inline time_t GetTicks() const;
@@ -707,12 +713,12 @@ 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;  }
+        bool __eq__(const wxDateTime* other) { return other ? (*self == *other) : False; }
+        bool __ne__(const wxDateTime* other) { return other ? (*self != *other) : True;  }
     }
 
         
@@ -883,12 +889,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;  }
     }
 
 
@@ -1068,12 +1075,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;  }
     }
 };
 
@@ -1089,5 +1098,9 @@ long wxGetUTCTime();
 long wxGetCurrentTime();
 wxLongLong wxGetLocalTimeMillis();
 
+%immutable;
+const wxDateTime        wxDefaultDateTime;
+%mutable;
+
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------