X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/79fccf9d17b16573d824b79957e6d69dd59c3bf1..576f712776551bc0261005ff7a8c508d37481baa:/wxPython/src/msw/calendar.py diff --git a/wxPython/src/msw/calendar.py b/wxPython/src/msw/calendar.py index 041c2a46c3..71b85d2a05 100644 --- a/wxPython/src/msw/calendar.py +++ b/wxPython/src/msw/calendar.py @@ -1,6 +1,10 @@ # This file was created automatically by SWIG. # Don't modify this file, modify the SWIG interface instead. +""" +Classes for an interactive Calendar control. +""" + import _calendar import _misc @@ -143,6 +147,14 @@ class CalendarEvent(_core.CommandEvent): """GetWeekDay(self) -> int""" return _calendar.CalendarEvent_GetWeekDay(*args, **kwargs) + def PySetDate(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetDate(_pydate2wxdate(date)) + + def PyGetDate(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetDate()) + class CalendarEventPtr(CalendarEvent): def __init__(self, this): @@ -451,16 +463,46 @@ class CalendarCtrl(_core.Control): Get the default attributes for this class. This is useful if you want to use the same font or colour in your own control as in a standard control -- which is a much better idea than hard coding specific - colours or fonts which might look completely out of place on the users - system, especially if it uses themes. + colours or fonts which might look completely out of place on the + user's system, especially if it uses themes. The variant parameter is only relevant under Mac currently and is ignore under other platforms. Under Mac, it will change the size of - the returned font. See SetWindowVariant for more about this. + the returned font. See `wx.Window.SetWindowVariant` for more about + this. """ return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs) GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes) + def PySetDate(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetDate(_pydate2wxdate(date)) + + def PyGetDate(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetDate()) + + def PySetLowerDateLimit(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetLowerDateLimit(_pydate2wxdate(date)) + + def PySetUpperDateLimit(self, date): + """takes datetime.datetime or datetime.date object""" + self.SetUpperDateLimit(_pydate2wxdate(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 _wxdate2pydate(self.GetLowerDateLimit()) + + def PyGetUpperDateLimit(self): + """returns datetime.date object""" + return _wxdate2pydate(self.GetUpperDateLimit()) + class CalendarCtrlPtr(CalendarCtrl): def __init__(self, this): @@ -488,13 +530,30 @@ def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs): Get the default attributes for this class. This is useful if you want to use the same font or colour in your own control as in a standard control -- which is a much better idea than hard coding specific - colours or fonts which might look completely out of place on the users - system, especially if it uses themes. + colours or fonts which might look completely out of place on the + user's system, especially if it uses themes. The variant parameter is only relevant under Mac currently and is ignore under other platforms. Under Mac, it will change the size of - the returned font. See SetWindowVariant for more about this. + the returned font. See `wx.Window.SetWindowVariant` for more about + this. """ return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs) +def _pydate2wxdate(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 _wxdate2pydate(date): + import datetime + assert isinstance(date, wx.DateTime) + if date.IsValid(): + ymd = map(int, date.FormatISODate().split('-')) + return datetime.date(*ymd) + else: + return None +