# 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
-import core
-wx = core
-__docfilter__ = wx.__docfilter__
+def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
+ if (name == "this"):
+ if isinstance(value, class_type):
+ self.__dict__[name] = value.this
+ if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown
+ del value.thisown
+ return
+ method = class_type.__swig_setmethods__.get(name,None)
+ if method: return method(self,value)
+ if (not static) or hasattr(self,name) or (name == "thisown"):
+ self.__dict__[name] = value
+ else:
+ raise AttributeError("You cannot add attributes to %s" % self)
+
+def _swig_setattr(self,class_type,name,value):
+ return _swig_setattr_nondynamic(self,class_type,name,value,0)
+
+def _swig_getattr(self,class_type,name):
+ method = class_type.__swig_getmethods__.get(name,None)
+ if method: return method(self)
+ raise AttributeError,name
+
+import types
+try:
+ _object = types.ObjectType
+ _newclass = 1
+except AttributeError:
+ class _object : pass
+ _newclass = 0
+del types
+
+
+def _swig_setattr_nondynamic_method(set):
+ def set_attr(self,name,value):
+ if hasattr(self,name) or (name in ("this", "thisown")):
+ set(self,name,value)
+ else:
+ raise AttributeError("You cannot add attributes to %s" % self)
+ return set_attr
+
+
+import _misc
+import _core
+wx = _core
+__docfilter__ = wx.__DocFilter(globals())
CAL_SUNDAY_FIRST = _calendar.CAL_SUNDAY_FIRST
CAL_MONDAY_FIRST = _calendar.CAL_MONDAY_FIRST
CAL_SHOW_HOLIDAYS = _calendar.CAL_SHOW_HOLIDAYS
CAL_BORDER_ROUND = _calendar.CAL_BORDER_ROUND
class CalendarDateAttr(object):
"""
- A set of customization attributes for a calendar date, which can be used to
- control the look of the Calendar object.
+ A set of customization attributes for a calendar date, which can be
+ used to control the look of the Calendar object.
"""
def __repr__(self):
return "<%s.%s; proxy of C++ wxCalendarDateAttr instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
self.__class__ = CalendarDateAttr
_calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr)
-class CalendarEvent(core.CommandEvent):
+class CalendarEvent(_core.CommandEvent):
+ """Proxy of C++ CalendarEvent class"""
def __repr__(self):
return "<%s.%s; proxy of C++ wxCalendarEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
def __init__(self, *args, **kwargs):
"""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):
EVT_CALENDAR_YEAR = wx.PyEventBinder( wxEVT_CALENDAR_YEAR_CHANGED, 1)
EVT_CALENDAR_WEEKDAY_CLICKED = wx.PyEventBinder( wxEVT_CALENDAR_WEEKDAY_CLICKED, 1)
-class CalendarCtrl(core.Control):
- """The calendar control allows the user to pick a date interactively."""
+class CalendarCtrl(_core.Control):
+ """
+ The calendar control allows the user to pick a date interactively.
+
+ The CalendarCtrl displays a window containing several parts: the
+ control to pick the month and the year at the top (either or both of
+ them may be disabled) and a month area below them which shows all the
+ days in the month. The user can move the current selection using the
+ keyboard and select the date (generating EVT_CALENDAR event) by
+ pressing <Return> or double clicking it.
+
+ It has advanced possibilities for the customization of its
+ display. All global settings (such as colours and fonts used) can, of
+ course, be changed. But also, the display style for each day in the
+ month can be set independently using CalendarDateAttr class.
+
+ An item without custom attributes is drawn with the default colours
+ and font and without border, but setting custom attributes with
+ SetAttr allows to modify its appearance. Just create a custom
+ attribute object and set it for the day you want to be displayed
+ specially A day may be marked as being a holiday, (even if it is not
+ recognized as one by wx.DateTime) by using the SetHoliday method.
+
+ 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.
+ """
def __repr__(self):
return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
def __init__(self, *args, **kwargs):
long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS,
String name=CalendarNameStr) -> bool
- Acutally create the GUI portion of the CalendarCtrl for 2-phase creation.
+ Acutally create the GUI portion of the CalendarCtrl for 2-phase
+ creation.
"""
return _calendar.CalendarCtrl_Create(*args, **kwargs)
"""
EnableMonthChange(self, bool enable=True)
- This function should be used instead of changing CAL_NO_MONTH_CHANGE style
- bit. It allows or disallows the user to change the month interactively. Note
- that if the month can not be changed, the year can not be changed either.
+ This function should be used instead of changing CAL_NO_MONTH_CHANGE
+ style bit. It allows or disallows the user to change the month
+ interactively. Note that if the month can not be changed, the year can
+ not be changed either.
"""
return _calendar.CalendarCtrl_EnableMonthChange(*args, **kwargs)
"""
EnableHolidayDisplay(self, bool display=True)
- This function should be used instead of changing CAL_SHOW_HOLIDAYS style
- bit directly. It enables or disables the special highlighting of the holidays.
+ This function should be used instead of changing CAL_SHOW_HOLIDAYS
+ style bit directly. It enables or disables the special highlighting of
+ the holidays.
"""
return _calendar.CalendarCtrl_EnableHolidayDisplay(*args, **kwargs)
"""
SetHeaderColours(self, Colour colFg, Colour colBg)
- header colours are used for painting the weekdays at the top
+ Header colours are used for painting the weekdays at the top.
"""
return _calendar.CalendarCtrl_SetHeaderColours(*args, **kwargs)
"""
GetHeaderColourFg(self) -> Colour
- header colours are used for painting the weekdays at the top
+ Header colours are used for painting the weekdays at the top.
"""
return _calendar.CalendarCtrl_GetHeaderColourFg(*args, **kwargs)
"""
GetHeaderColourBg(self) -> Colour
- header colours are used for painting the weekdays at the top
+ Header colours are used for painting the weekdays at the top.
"""
return _calendar.CalendarCtrl_GetHeaderColourBg(*args, **kwargs)
"""
SetHighlightColours(self, Colour colFg, Colour colBg)
- highlight colour is used for the currently selected date
+ Highlight colour is used for the currently selected date.
"""
return _calendar.CalendarCtrl_SetHighlightColours(*args, **kwargs)
"""
GetHighlightColourFg(self) -> Colour
- highlight colour is used for the currently selected date
+ Highlight colour is used for the currently selected date.
"""
return _calendar.CalendarCtrl_GetHighlightColourFg(*args, **kwargs)
"""
GetHighlightColourBg(self) -> Colour
- highlight colour is used for the currently selected date
+ Highlight colour is used for the currently selected date.
"""
return _calendar.CalendarCtrl_GetHighlightColourBg(*args, **kwargs)
"""
SetHolidayColours(self, Colour colFg, Colour colBg)
- holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is used)
+ Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
+ used).
"""
return _calendar.CalendarCtrl_SetHolidayColours(*args, **kwargs)
"""
GetHolidayColourFg(self) -> Colour
- holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is used)
+ Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
+ used).
"""
return _calendar.CalendarCtrl_GetHolidayColourFg(*args, **kwargs)
"""
GetHolidayColourBg(self) -> Colour
- holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is used)
+ Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
+ used).
"""
return _calendar.CalendarCtrl_GetHolidayColourBg(*args, **kwargs)
"""
GetAttr(self, size_t day) -> CalendarDateAttr
- Returns the attribute for the given date (should be in the range 1...31).
- The returned value may be None
+ Returns the attribute for the given date (should be in the range
+ 1...31). The returned value may be None
"""
return _calendar.CalendarCtrl_GetAttr(*args, **kwargs)
"""
SetAttr(self, size_t day, CalendarDateAttr attr)
- Associates the attribute with the specified date (in the range 1...31).
- If the attribute passed is None, the items attribute is cleared.
+ Associates the attribute with the specified date (in the range
+ 1...31). If the attribute passed is None, the items attribute is
+ cleared.
"""
return _calendar.CalendarCtrl_SetAttr(*args, **kwargs)
"""
ResetAttr(self, size_t day)
- Clears any attributes associated with the given day (in the range 1...31).
+ Clears any attributes associated with the given day (in the range
+ 1...31).
"""
return _calendar.CalendarCtrl_ResetAttr(*args, **kwargs)
"""
HitTest(Point pos) -> (result, date, weekday)
- 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.
-
+ 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.
"""
return _calendar.CalendarCtrl_HitTest(*args, **kwargs)
"""
GetMonthControl(self) -> Control
- get the currently shown control for month
+ Get the currently shown control for month.
"""
return _calendar.CalendarCtrl_GetMonthControl(*args, **kwargs)
"""
GetYearControl(self) -> Control
- get the currently shown control for year
+ Get the currently shown control for year.
"""
return _calendar.CalendarCtrl_GetYearControl(*args, **kwargs)
+ def GetClassDefaultAttributes(*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
+ 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 `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):
val.thisown = 1
return val
+def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs):
+ """
+ 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
+ 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 `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
+