]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_datetime.i
Added the wx.DC.GradientFillConcentric and wx.DC.GradientFillLinear
[wxWidgets.git] / wxPython / src / _datetime.i
index d5d47b6e2b7a2c55ecba19cf171f0a36d121da00..8184fd5c92dc13cf0d6dc7dd1ab1ca783b3804ad 100644 (file)
@@ -30,7 +30,7 @@ MAKE_CONST_WXSTRING(DefaultTimeSpanFormat);
     $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;
 }
 
@@ -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
-%typemap(python, out) wxLongLong {
+%typemap(out) wxLongLong {
     PyObject *hi, *lo, *shifter, *shifted;
     hi = PyLong_FromLong( $1.GetHi() );
     lo = PyLong_FromLong( $1.GetLo() );
@@ -363,11 +363,24 @@ public:
     static wxString GetWeekDayName(WeekDay weekday,
                                    NameFlags flags = Name_Full);
 
-    DocDeclAStr(
-        static void, GetAmPmStrings(wxString *OUTPUT, wxString *OUTPUT),
-        "GetAmPmStrings() -> (am, pm)",
-        "Get the AM and PM strings in the current locale (may be empty)", "");
-
+    %extend {
+        DocAStr(
+            GetAmPmStrings,
+            "GetAmPmStrings() -> (am, pm)",
+            "Get the AM and PM strings in the current locale (may be empty)", "");
+        static PyObject* GetAmPmStrings() {
+            wxString am;
+            wxString pm;
+            wxDateTime::GetAmPmStrings(&am, &pm);
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
+            PyObject* tup = PyTuple_New(2);
+            PyTuple_SET_ITEM(tup, 0, wx2PyString(am));
+            PyTuple_SET_ITEM(tup, 1, wx2PyString(pm));
+            wxPyEndBlockThreads(blocked);
+            return tup;
+        }
+    }
+                
         // return True if the given country uses DST for this year
     static bool IsDSTApplicable(int year = Inv_Year,
                                 Country country = Country_Default);
@@ -573,10 +586,22 @@ public:
     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 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?
         //
@@ -847,12 +872,13 @@ public:
     %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():
-            return self.Format()
+            return self.Format().encode(wx.GetDefaultPyEncoding())
         else:
             return "INVALID DateTime"
     }
@@ -998,9 +1024,10 @@ public:
 
     %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):
-         return self.Format()
+         return self.Format().encode(wx.GetDefaultPyEncoding())
      }
 };