# 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
"""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):
As the attributes are specified for each day, they may change when the
month is changed, so you will often want to update them in an
EVT_CALENDAR_MONTH event handler.
-
- Window Styles
- -------------
- ============================== ============================
- CAL_SUNDAY_FIRST Show Sunday as the first day
- in the week
- CAL_MONDAY_FIRST Show Monday as the first day
- in the week
- CAL_SHOW_HOLIDAYS Highlight holidays in the
- calendar
- CAL_NO_YEAR_CHANGE Disable the year changing
- CAL_NO_MONTH_CHANGE Disable the month (and,
- implicitly, the year) changing
- CAL_SHOW_SURROUNDING_WEEKS Show the neighbouring weeks in
- the previous and next months
- CAL_SEQUENTIAL_MONTH_SELECTION Use alternative, more compact,
- style for the month and year
- selection controls.
-
- The default calendar style is CAL_SHOW_HOLIDAYS.
-
- Events
- -------
- =========================== ==============================
- EVT_CALENDAR A day was double clicked in the
- calendar.
- EVT_CALENDAR_SEL_CHANGED The selected date changed.
- EVT_CALENDAR_DAY The selected day changed.
- EVT_CALENDAR_MONTH The selected month changed.
- EVT_CALENDAR_YEAR The selected year changed.
- EVT_CALENDAR_WEEKDAY_CLICKED User clicked on the week day
- header
-
- Note that changing the selected date will result in one of
- EVT_CALENDAR_DAY, MONTH or YEAR events and an EVT_CALENDAR_SEL_CHANGED
- event.
-
-
"""
def __repr__(self):
return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
Returns 3-tuple with information about the given position on the
calendar control. The first value of the tuple is a result code and
- determines the validity of the remaining two values. The result codes
- are:
-
- =================== ============================================
- CAL_HITTEST_NOWHERE hit outside of anything
- CAL_HITTEST_HEADER hit on the header, weekday is valid
- CAL_HITTEST_DAY hit on a day in the calendar, date is set.
- =================== ============================================
-
+ determines the validity of the remaining two values.
"""
return _calendar.CalendarCtrl_HitTest(*args, **kwargs)
"""
GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
- 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.
+ 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
+ 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.
+ ignore under other platforms. Under Mac, it will change the size of
+ 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):
"""
CalendarCtrl_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
- 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.
+ 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
+ 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.
+ ignore under other platforms. Under Mac, it will change the size of
+ 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
+