1 # This file was created automatically by SWIG.
2 # Don't modify this file, modify the SWIG interface instead.
5 Classes for an interactive Calendar control.
10 def _swig_setattr_nondynamic(self
,class_type
,name
,value
,static
=1):
12 if isinstance(value
, class_type
):
13 self
.__dict
__[name
] = value
.this
14 if hasattr(value
,"thisown"): self
.__dict
__["thisown"] = value
.thisown
17 method
= class_type
.__swig
_setmethods
__.get(name
,None)
18 if method
: return method(self
,value
)
19 if (not static
) or hasattr(self
,name
) or (name
== "thisown"):
20 self
.__dict
__[name
] = value
22 raise AttributeError("You cannot add attributes to %s" % self
)
24 def _swig_setattr(self
,class_type
,name
,value
):
25 return _swig_setattr_nondynamic(self
,class_type
,name
,value
,0)
27 def _swig_getattr(self
,class_type
,name
):
28 method
= class_type
.__swig
_getmethods
__.get(name
,None)
29 if method
: return method(self
)
30 raise AttributeError,name
34 _object
= types
.ObjectType
36 except AttributeError:
42 def _swig_setattr_nondynamic_method(set):
43 def set_attr(self
,name
,value
):
44 if hasattr(self
,name
) or (name
in ("this", "thisown")):
47 raise AttributeError("You cannot add attributes to %s" % self
)
54 __docfilter__
= wx
.__DocFilter
(globals())
55 CAL_SUNDAY_FIRST
= _calendar
.CAL_SUNDAY_FIRST
56 CAL_MONDAY_FIRST
= _calendar
.CAL_MONDAY_FIRST
57 CAL_SHOW_HOLIDAYS
= _calendar
.CAL_SHOW_HOLIDAYS
58 CAL_NO_YEAR_CHANGE
= _calendar
.CAL_NO_YEAR_CHANGE
59 CAL_NO_MONTH_CHANGE
= _calendar
.CAL_NO_MONTH_CHANGE
60 CAL_SEQUENTIAL_MONTH_SELECTION
= _calendar
.CAL_SEQUENTIAL_MONTH_SELECTION
61 CAL_SHOW_SURROUNDING_WEEKS
= _calendar
.CAL_SHOW_SURROUNDING_WEEKS
62 CAL_HITTEST_NOWHERE
= _calendar
.CAL_HITTEST_NOWHERE
63 CAL_HITTEST_HEADER
= _calendar
.CAL_HITTEST_HEADER
64 CAL_HITTEST_DAY
= _calendar
.CAL_HITTEST_DAY
65 CAL_HITTEST_INCMONTH
= _calendar
.CAL_HITTEST_INCMONTH
66 CAL_HITTEST_DECMONTH
= _calendar
.CAL_HITTEST_DECMONTH
67 CAL_HITTEST_SURROUNDING_WEEK
= _calendar
.CAL_HITTEST_SURROUNDING_WEEK
68 CAL_BORDER_NONE
= _calendar
.CAL_BORDER_NONE
69 CAL_BORDER_SQUARE
= _calendar
.CAL_BORDER_SQUARE
70 CAL_BORDER_ROUND
= _calendar
.CAL_BORDER_ROUND
71 class CalendarDateAttr(object):
73 A set of customization attributes for a calendar date, which can be
74 used to control the look of the Calendar object.
77 return "<%s.%s; proxy of C++ wxCalendarDateAttr instance at %s>" % (self
.__class
__.__module
__, self
.__class
__.__name
__, self
.this
,)
78 def __init__(self
, *args
, **kwargs
):
80 __init__(self, Colour colText=wxNullColour, Colour colBack=wxNullColour,
81 Colour colBorder=wxNullColour, Font font=wxNullFont,
82 int border=CAL_BORDER_NONE) -> CalendarDateAttr
84 Create a CalendarDateAttr.
86 newobj
= _calendar
.new_CalendarDateAttr(*args
, **kwargs
)
87 self
.this
= newobj
.this
90 def SetTextColour(*args
, **kwargs
):
91 """SetTextColour(self, Colour colText)"""
92 return _calendar
.CalendarDateAttr_SetTextColour(*args
, **kwargs
)
94 def SetBackgroundColour(*args
, **kwargs
):
95 """SetBackgroundColour(self, Colour colBack)"""
96 return _calendar
.CalendarDateAttr_SetBackgroundColour(*args
, **kwargs
)
98 def SetBorderColour(*args
, **kwargs
):
99 """SetBorderColour(self, Colour col)"""
100 return _calendar
.CalendarDateAttr_SetBorderColour(*args
, **kwargs
)
102 def SetFont(*args
, **kwargs
):
103 """SetFont(self, Font font)"""
104 return _calendar
.CalendarDateAttr_SetFont(*args
, **kwargs
)
106 def SetBorder(*args
, **kwargs
):
107 """SetBorder(self, int border)"""
108 return _calendar
.CalendarDateAttr_SetBorder(*args
, **kwargs
)
110 def SetHoliday(*args
, **kwargs
):
111 """SetHoliday(self, bool holiday)"""
112 return _calendar
.CalendarDateAttr_SetHoliday(*args
, **kwargs
)
114 def HasTextColour(*args
, **kwargs
):
115 """HasTextColour(self) -> bool"""
116 return _calendar
.CalendarDateAttr_HasTextColour(*args
, **kwargs
)
118 def HasBackgroundColour(*args
, **kwargs
):
119 """HasBackgroundColour(self) -> bool"""
120 return _calendar
.CalendarDateAttr_HasBackgroundColour(*args
, **kwargs
)
122 def HasBorderColour(*args
, **kwargs
):
123 """HasBorderColour(self) -> bool"""
124 return _calendar
.CalendarDateAttr_HasBorderColour(*args
, **kwargs
)
126 def HasFont(*args
, **kwargs
):
127 """HasFont(self) -> bool"""
128 return _calendar
.CalendarDateAttr_HasFont(*args
, **kwargs
)
130 def HasBorder(*args
, **kwargs
):
131 """HasBorder(self) -> bool"""
132 return _calendar
.CalendarDateAttr_HasBorder(*args
, **kwargs
)
134 def IsHoliday(*args
, **kwargs
):
135 """IsHoliday(self) -> bool"""
136 return _calendar
.CalendarDateAttr_IsHoliday(*args
, **kwargs
)
138 def GetTextColour(*args
, **kwargs
):
139 """GetTextColour(self) -> Colour"""
140 return _calendar
.CalendarDateAttr_GetTextColour(*args
, **kwargs
)
142 def GetBackgroundColour(*args
, **kwargs
):
143 """GetBackgroundColour(self) -> Colour"""
144 return _calendar
.CalendarDateAttr_GetBackgroundColour(*args
, **kwargs
)
146 def GetBorderColour(*args
, **kwargs
):
147 """GetBorderColour(self) -> Colour"""
148 return _calendar
.CalendarDateAttr_GetBorderColour(*args
, **kwargs
)
150 def GetFont(*args
, **kwargs
):
151 """GetFont(self) -> Font"""
152 return _calendar
.CalendarDateAttr_GetFont(*args
, **kwargs
)
154 def GetBorder(*args
, **kwargs
):
155 """GetBorder(self) -> int"""
156 return _calendar
.CalendarDateAttr_GetBorder(*args
, **kwargs
)
159 class CalendarDateAttrPtr(CalendarDateAttr
):
160 def __init__(self
, this
):
162 if not hasattr(self
,"thisown"): self
.thisown
= 0
163 self
.__class
__ = CalendarDateAttr
164 _calendar
.CalendarDateAttr_swigregister(CalendarDateAttrPtr
)
166 class CalendarEvent(_core
.CommandEvent
):
167 """Proxy of C++ CalendarEvent class"""
169 return "<%s.%s; proxy of C++ wxCalendarEvent instance at %s>" % (self
.__class
__.__module
__, self
.__class
__.__name
__, self
.this
,)
170 def __init__(self
, *args
, **kwargs
):
171 """__init__(self, CalendarCtrl cal, wxEventType type) -> CalendarEvent"""
172 newobj
= _calendar
.new_CalendarEvent(*args
, **kwargs
)
173 self
.this
= newobj
.this
176 def GetDate(*args
, **kwargs
):
177 """GetDate(self) -> DateTime"""
178 return _calendar
.CalendarEvent_GetDate(*args
, **kwargs
)
180 def SetDate(*args
, **kwargs
):
181 """SetDate(self, DateTime date)"""
182 return _calendar
.CalendarEvent_SetDate(*args
, **kwargs
)
184 def SetWeekDay(*args
, **kwargs
):
185 """SetWeekDay(self, int wd)"""
186 return _calendar
.CalendarEvent_SetWeekDay(*args
, **kwargs
)
188 def GetWeekDay(*args
, **kwargs
):
189 """GetWeekDay(self) -> int"""
190 return _calendar
.CalendarEvent_GetWeekDay(*args
, **kwargs
)
192 def PySetDate(self
, date
):
193 """takes datetime.datetime or datetime.date object"""
194 self
.SetDate(_pydate2wxdate(date
))
197 """returns datetime.date object"""
198 return _wxdate2pydate(self
.GetDate())
201 class CalendarEventPtr(CalendarEvent
):
202 def __init__(self
, this
):
204 if not hasattr(self
,"thisown"): self
.thisown
= 0
205 self
.__class
__ = CalendarEvent
206 _calendar
.CalendarEvent_swigregister(CalendarEventPtr
)
208 wxEVT_CALENDAR_DOUBLECLICKED
= _calendar
.wxEVT_CALENDAR_DOUBLECLICKED
209 wxEVT_CALENDAR_SEL_CHANGED
= _calendar
.wxEVT_CALENDAR_SEL_CHANGED
210 wxEVT_CALENDAR_DAY_CHANGED
= _calendar
.wxEVT_CALENDAR_DAY_CHANGED
211 wxEVT_CALENDAR_MONTH_CHANGED
= _calendar
.wxEVT_CALENDAR_MONTH_CHANGED
212 wxEVT_CALENDAR_YEAR_CHANGED
= _calendar
.wxEVT_CALENDAR_YEAR_CHANGED
213 wxEVT_CALENDAR_WEEKDAY_CLICKED
= _calendar
.wxEVT_CALENDAR_WEEKDAY_CLICKED
214 EVT_CALENDAR
= wx
.PyEventBinder( wxEVT_CALENDAR_DOUBLECLICKED
, 1)
215 EVT_CALENDAR_SEL_CHANGED
= wx
.PyEventBinder( wxEVT_CALENDAR_SEL_CHANGED
, 1)
216 EVT_CALENDAR_DAY
= wx
.PyEventBinder( wxEVT_CALENDAR_DAY_CHANGED
, 1)
217 EVT_CALENDAR_MONTH
= wx
.PyEventBinder( wxEVT_CALENDAR_MONTH_CHANGED
, 1)
218 EVT_CALENDAR_YEAR
= wx
.PyEventBinder( wxEVT_CALENDAR_YEAR_CHANGED
, 1)
219 EVT_CALENDAR_WEEKDAY_CLICKED
= wx
.PyEventBinder( wxEVT_CALENDAR_WEEKDAY_CLICKED
, 1)
221 class CalendarCtrl(_core
.Control
):
223 The calendar control allows the user to pick a date interactively.
225 The CalendarCtrl displays a window containing several parts: the
226 control to pick the month and the year at the top (either or both of
227 them may be disabled) and a month area below them which shows all the
228 days in the month. The user can move the current selection using the
229 keyboard and select the date (generating EVT_CALENDAR event) by
230 pressing <Return> or double clicking it.
232 It has advanced possibilities for the customization of its
233 display. All global settings (such as colours and fonts used) can, of
234 course, be changed. But also, the display style for each day in the
235 month can be set independently using CalendarDateAttr class.
237 An item without custom attributes is drawn with the default colours
238 and font and without border, but setting custom attributes with
239 SetAttr allows to modify its appearance. Just create a custom
240 attribute object and set it for the day you want to be displayed
241 specially A day may be marked as being a holiday, (even if it is not
242 recognized as one by wx.DateTime) by using the SetHoliday method.
244 As the attributes are specified for each day, they may change when the
245 month is changed, so you will often want to update them in an
246 EVT_CALENDAR_MONTH event handler.
249 return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self
.__class
__.__module
__, self
.__class
__.__name
__, self
.this
,)
250 def __init__(self
, *args
, **kwargs
):
252 __init__(self, Window parent, int id=-1, DateTime date=DefaultDateTime,
253 Point pos=DefaultPosition, Size size=DefaultSize,
254 long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS,
255 String name=CalendarNameStr) -> CalendarCtrl
257 Create and show a calendar control.
259 newobj
= _calendar
.new_CalendarCtrl(*args
, **kwargs
)
260 self
.this
= newobj
.this
263 self
._setOORInfo
(self
)
265 def Create(*args
, **kwargs
):
267 Create(self, Window parent, int id, DateTime date=DefaultDateTime,
268 Point pos=DefaultPosition, Size size=DefaultSize,
269 long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS,
270 String name=CalendarNameStr) -> bool
272 Acutally create the GUI portion of the CalendarCtrl for 2-phase
275 return _calendar
.CalendarCtrl_Create(*args
, **kwargs
)
277 def SetDate(*args
, **kwargs
):
279 SetDate(self, DateTime date)
281 Sets the current date.
283 return _calendar
.CalendarCtrl_SetDate(*args
, **kwargs
)
285 def GetDate(*args
, **kwargs
):
287 GetDate(self) -> DateTime
289 Gets the currently selected date.
291 return _calendar
.CalendarCtrl_GetDate(*args
, **kwargs
)
293 def SetLowerDateLimit(*args
, **kwargs
):
295 SetLowerDateLimit(self, DateTime date=DefaultDateTime) -> bool
297 set the range in which selection can occur
299 return _calendar
.CalendarCtrl_SetLowerDateLimit(*args
, **kwargs
)
301 def SetUpperDateLimit(*args
, **kwargs
):
303 SetUpperDateLimit(self, DateTime date=DefaultDateTime) -> bool
305 set the range in which selection can occur
307 return _calendar
.CalendarCtrl_SetUpperDateLimit(*args
, **kwargs
)
309 def GetLowerDateLimit(*args
, **kwargs
):
311 GetLowerDateLimit(self) -> DateTime
313 get the range in which selection can occur
315 return _calendar
.CalendarCtrl_GetLowerDateLimit(*args
, **kwargs
)
317 def GetUpperDateLimit(*args
, **kwargs
):
319 GetUpperDateLimit(self) -> DateTime
321 get the range in which selection can occur
323 return _calendar
.CalendarCtrl_GetUpperDateLimit(*args
, **kwargs
)
325 def SetDateRange(*args
, **kwargs
):
327 SetDateRange(self, DateTime lowerdate=DefaultDateTime, DateTime upperdate=DefaultDateTime) -> bool
329 set the range in which selection can occur
331 return _calendar
.CalendarCtrl_SetDateRange(*args
, **kwargs
)
333 def EnableYearChange(*args
, **kwargs
):
335 EnableYearChange(self, bool enable=True)
337 This function should be used instead of changing CAL_NO_YEAR_CHANGE
338 style bit directly. It allows or disallows the user to change the year
341 return _calendar
.CalendarCtrl_EnableYearChange(*args
, **kwargs
)
343 def EnableMonthChange(*args
, **kwargs
):
345 EnableMonthChange(self, bool enable=True)
347 This function should be used instead of changing CAL_NO_MONTH_CHANGE
348 style bit. It allows or disallows the user to change the month
349 interactively. Note that if the month can not be changed, the year can
350 not be changed either.
352 return _calendar
.CalendarCtrl_EnableMonthChange(*args
, **kwargs
)
354 def EnableHolidayDisplay(*args
, **kwargs
):
356 EnableHolidayDisplay(self, bool display=True)
358 This function should be used instead of changing CAL_SHOW_HOLIDAYS
359 style bit directly. It enables or disables the special highlighting of
362 return _calendar
.CalendarCtrl_EnableHolidayDisplay(*args
, **kwargs
)
364 def SetHeaderColours(*args
, **kwargs
):
366 SetHeaderColours(self, Colour colFg, Colour colBg)
368 Header colours are used for painting the weekdays at the top.
370 return _calendar
.CalendarCtrl_SetHeaderColours(*args
, **kwargs
)
372 def GetHeaderColourFg(*args
, **kwargs
):
374 GetHeaderColourFg(self) -> Colour
376 Header colours are used for painting the weekdays at the top.
378 return _calendar
.CalendarCtrl_GetHeaderColourFg(*args
, **kwargs
)
380 def GetHeaderColourBg(*args
, **kwargs
):
382 GetHeaderColourBg(self) -> Colour
384 Header colours are used for painting the weekdays at the top.
386 return _calendar
.CalendarCtrl_GetHeaderColourBg(*args
, **kwargs
)
388 def SetHighlightColours(*args
, **kwargs
):
390 SetHighlightColours(self, Colour colFg, Colour colBg)
392 Highlight colour is used for the currently selected date.
394 return _calendar
.CalendarCtrl_SetHighlightColours(*args
, **kwargs
)
396 def GetHighlightColourFg(*args
, **kwargs
):
398 GetHighlightColourFg(self) -> Colour
400 Highlight colour is used for the currently selected date.
402 return _calendar
.CalendarCtrl_GetHighlightColourFg(*args
, **kwargs
)
404 def GetHighlightColourBg(*args
, **kwargs
):
406 GetHighlightColourBg(self) -> Colour
408 Highlight colour is used for the currently selected date.
410 return _calendar
.CalendarCtrl_GetHighlightColourBg(*args
, **kwargs
)
412 def SetHolidayColours(*args
, **kwargs
):
414 SetHolidayColours(self, Colour colFg, Colour colBg)
416 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
419 return _calendar
.CalendarCtrl_SetHolidayColours(*args
, **kwargs
)
421 def GetHolidayColourFg(*args
, **kwargs
):
423 GetHolidayColourFg(self) -> Colour
425 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
428 return _calendar
.CalendarCtrl_GetHolidayColourFg(*args
, **kwargs
)
430 def GetHolidayColourBg(*args
, **kwargs
):
432 GetHolidayColourBg(self) -> Colour
434 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
437 return _calendar
.CalendarCtrl_GetHolidayColourBg(*args
, **kwargs
)
439 def GetAttr(*args
, **kwargs
):
441 GetAttr(self, size_t day) -> CalendarDateAttr
443 Returns the attribute for the given date (should be in the range
444 1...31). The returned value may be None
446 return _calendar
.CalendarCtrl_GetAttr(*args
, **kwargs
)
448 def SetAttr(*args
, **kwargs
):
450 SetAttr(self, size_t day, CalendarDateAttr attr)
452 Associates the attribute with the specified date (in the range
453 1...31). If the attribute passed is None, the items attribute is
456 return _calendar
.CalendarCtrl_SetAttr(*args
, **kwargs
)
458 def SetHoliday(*args
, **kwargs
):
460 SetHoliday(self, size_t day)
462 Marks the specified day as being a holiday in the current month.
464 return _calendar
.CalendarCtrl_SetHoliday(*args
, **kwargs
)
466 def ResetAttr(*args
, **kwargs
):
468 ResetAttr(self, size_t day)
470 Clears any attributes associated with the given day (in the range
473 return _calendar
.CalendarCtrl_ResetAttr(*args
, **kwargs
)
475 def HitTest(*args
, **kwargs
):
477 HitTest(Point pos) -> (result, date, weekday)
479 Returns 3-tuple with information about the given position on the
480 calendar control. The first value of the tuple is a result code and
481 determines the validity of the remaining two values.
483 return _calendar
.CalendarCtrl_HitTest(*args
, **kwargs
)
485 def GetMonthControl(*args
, **kwargs
):
487 GetMonthControl(self) -> Control
489 Get the currently shown control for month.
491 return _calendar
.CalendarCtrl_GetMonthControl(*args
, **kwargs
)
493 def GetYearControl(*args
, **kwargs
):
495 GetYearControl(self) -> Control
497 Get the currently shown control for year.
499 return _calendar
.CalendarCtrl_GetYearControl(*args
, **kwargs
)
501 def GetClassDefaultAttributes(*args
, **kwargs
):
503 GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
505 Get the default attributes for this class. This is useful if you want
506 to use the same font or colour in your own control as in a standard
507 control -- which is a much better idea than hard coding specific
508 colours or fonts which might look completely out of place on the
509 user's system, especially if it uses themes.
511 The variant parameter is only relevant under Mac currently and is
512 ignore under other platforms. Under Mac, it will change the size of
513 the returned font. See `wx.Window.SetWindowVariant` for more about
516 return _calendar
.CalendarCtrl_GetClassDefaultAttributes(*args
, **kwargs
)
518 GetClassDefaultAttributes
= staticmethod(GetClassDefaultAttributes
)
519 def PySetDate(self
, date
):
520 """takes datetime.datetime or datetime.date object"""
521 self
.SetDate(_pydate2wxdate(date
))
524 """returns datetime.date object"""
525 return _wxdate2pydate(self
.GetDate())
527 def PySetLowerDateLimit(self
, date
):
528 """takes datetime.datetime or datetime.date object"""
529 self
.SetLowerDateLimit(_pydate2wxdate(date
))
531 def PySetUpperDateLimit(self
, date
):
532 """takes datetime.datetime or datetime.date object"""
533 self
.SetUpperDateLimit(_pydate2wxdate(date
))
535 def PySetDateRange(self
, lowerdate
, upperdate
):
536 """takes datetime.datetime or datetime.date objects"""
537 self
.PySetLowerDateLimit(lowerdate
)
538 self
.PySetUpperDateLimit(upperdate
)
540 def PyGetLowerDateLimit(self
):
541 """returns datetime.date object"""
542 return _wxdate2pydate(self
.GetLowerDateLimit())
544 def PyGetUpperDateLimit(self
):
545 """returns datetime.date object"""
546 return _wxdate2pydate(self
.GetUpperDateLimit())
549 class CalendarCtrlPtr(CalendarCtrl
):
550 def __init__(self
, this
):
552 if not hasattr(self
,"thisown"): self
.thisown
= 0
553 self
.__class
__ = CalendarCtrl
554 _calendar
.CalendarCtrl_swigregister(CalendarCtrlPtr
)
555 cvar
= _calendar
.cvar
556 CalendarNameStr
= cvar
.CalendarNameStr
558 def PreCalendarCtrl(*args
, **kwargs
):
560 PreCalendarCtrl() -> CalendarCtrl
562 Precreate a CalendarCtrl for 2-phase creation.
564 val
= _calendar
.new_PreCalendarCtrl(*args
, **kwargs
)
568 def CalendarCtrl_GetClassDefaultAttributes(*args
, **kwargs
):
570 CalendarCtrl_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
572 Get the default attributes for this class. This is useful if you want
573 to use the same font or colour in your own control as in a standard
574 control -- which is a much better idea than hard coding specific
575 colours or fonts which might look completely out of place on the
576 user's system, especially if it uses themes.
578 The variant parameter is only relevant under Mac currently and is
579 ignore under other platforms. Under Mac, it will change the size of
580 the returned font. See `wx.Window.SetWindowVariant` for more about
583 return _calendar
.CalendarCtrl_GetClassDefaultAttributes(*args
, **kwargs
)
585 def _pydate2wxdate(date
):
587 assert isinstance(date
, (datetime
.datetime
, datetime
.date
))
588 tt
= date
.timetuple()
589 dmy
= (tt
[2], tt
[1]-1, tt
[0])
590 return wx
.DateTimeFromDMY(*dmy
)
592 def _wxdate2pydate(date
):
594 assert isinstance(date
, wx
.DateTime
)
596 ymd
= map(int, date
.FormatISODate().split('-'))
597 return datetime
.date(*ymd
)