Extended the wx.calendar.CalendarCtrl class with methods that get/set

a Python datetime or date object.  (These will only work with Python
2.3+) The methods are PySetDate, PyGetDate, PySetLowerDateLimit,
PySetUpperDateLimit, PySetDateRange, PyGetLowerDateLimit, and
PyGetUpperDateLimit.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-09-10 20:53:21 +00:00
parent f499e61407
commit 31b468292c
2 changed files with 67 additions and 1 deletions

View File

@@ -119,6 +119,15 @@ public:
void SetWeekDay(const wxDateTime::WeekDay wd);
wxDateTime::WeekDay GetWeekDay() const;
%pythoncode {
def PySetDate(self, date):
"""takes datetime.datetime or datetime.date object"""
self.SetDate(_py2wx(date))
def PyGetDate(self):
"""returns datetime.date object"""
return _wx2py(self.GetDate())
}
};
@@ -409,9 +418,54 @@ The result codes are:
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
%pythoncode {
def PySetDate(self, date):
"""takes datetime.datetime or datetime.date object"""
self.SetDate(_py2wx(date))
def PyGetDate(self):
"""returns datetime.date object"""
return _wx2py(self.GetDate())
def PySetLowerDateLimit(self, date):
"""takes datetime.datetime or datetime.date object"""
self.SetLowerDateLimit(_py2wx(date))
def PySetUpperDateLimit(self, date):
"""takes datetime.datetime or datetime.date object"""
self.SetUpperDateLimit(_py2wx(date))
def PySetDateRange(self, lowerdate, upperdate):
"""takes datetime.datetime or datetime.date objects"""
self.PySetLowerDateLimit(lowerdate)
self.PySetUpperDateLimit(upperdate)
def PyGetLowerDateLimit(self):
"""returns datetime.date object"""
return _wx2py(self.GetLowerDateLimit())
def PyGetUpperDateLimit(self):
"""returns datetime.date object"""
return _wx2py(self.GetUpperDateLimit())
}
};
%pythoncode {
def _py2wx(date):
import datetime
assert isinstance(date, (datetime.datetime, datetime.date))
tt = date.timetuple()
dmy = (tt[2], tt[1]-1, tt[0])
return wx.DateTimeFromDMY(*dmy)
def _wx2py(date):
import datetime
assert isinstance(date, wx.DateTime)
ymd = map(int, date.FormatISODate().split('-'))
return datetime.date(*ymd)
}
//---------------------------------------------------------------------------
%init %{