$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;
}
// 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() );
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);
wxDateTime_t minute = 0,
wxDateTime_t second = 0,
wxDateTime_t millisec = 0));
+ %RenameCtor(DateTimeFromDateTime, wxDateTime(const wxDateTime& date));
~wxDateTime();
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?
//
inline wxDateTime& operator-=(const wxDateSpan& diff);
+// inline bool operator<(const wxDateTime& dt) const;
+// inline bool operator<=(const wxDateTime& dt) const;
+// inline bool operator>(const wxDateTime& dt) const;
+// inline bool operator>=(const wxDateTime& dt) const;
+// inline bool operator==(const wxDateTime& dt) const;
+// inline bool operator!=(const wxDateTime& dt) const;
+
%nokwargs __add__;
%nokwargs __sub__;
- %nokwargs __lt__;
- %nokwargs __le__;
- %nokwargs __gt__;
- %nokwargs __ge__;
- %nokwargs __eq__;
- %nokwargs __ne__;
%extend {
wxDateTime __add__(const wxTimeSpan& other) { return *self + other; }
wxDateTime __add__(const wxDateSpan& other) { return *self + other; }
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; }
-
-
// These fall back to just comparing pointers if other is NULL, or if
- // either operand is invalid.
+ // either operand is invalid. This allows Python comparrisons to None
+ // to not assert and to return a sane value for the compare.
bool __lt__(const wxDateTime* other) {
if (!other || !self->IsValid() || !other->IsValid()) return self < other;
return (*self < *other);
}
}
+
+
+
// ------------------------------------------------------------------------
// conversion from text: all conversions from text return -1 on failure,
%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"
}
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
- static wxTimeSpan Seconds(long sec);
+ static wxTimeSpan Seconds(/*wxLongLong*/ long sec);
static wxTimeSpan Second();
// return the timespan for the given number of minutes
// milliseconds)
wxTimeSpan(long hours = 0,
long minutes = 0,
- long seconds = 0,
- long milliseconds = 0);
+ /*wxLongLong*/ long seconds = 0,
+ /*wxLongLong*/ long milliseconds = 0);
~wxTimeSpan();
%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())
}
};