%define DOCSTRING
"Classes for an interactive Calendar control."
%enddef
-%module(docstring=DOCSTRING) calendar
+
+%module(package="wx", docstring=DOCSTRING) calendar
%{
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())
+ }
};
");
+MustHaveApp(wxCalendarCtrl);
+
class wxCalendarCtrl : public wxControl
{
public:
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 %{