]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/msw/calendar.py
added a test to check how exception handling works with Win32 SEH; corrected copyright
[wxWidgets.git] / wxPython / src / msw / calendar.py
CommitLineData
f6bcfd97 1# This file was created automatically by SWIG.
d14a1e28
RD
2# Don't modify this file, modify the SWIG interface instead.
3
caef1a4d
RD
4"""
5Classes for an interactive Calendar control.
6"""
7
d14a1e28
RD
8import _calendar
9
093d3ff1
RD
10def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
11 if (name == "this"):
12 if isinstance(value, class_type):
13 self.__dict__[name] = value.this
14 if hasattr(value,"thisown"): self.__dict__["thisown"] = value.thisown
15 del value.thisown
16 return
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
21 else:
22 raise AttributeError("You cannot add attributes to %s" % self)
23
24def _swig_setattr(self,class_type,name,value):
25 return _swig_setattr_nondynamic(self,class_type,name,value,0)
26
27def _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
31
32import types
33try:
34 _object = types.ObjectType
35 _newclass = 1
36except AttributeError:
37 class _object : pass
38 _newclass = 0
39del types
40
41
42def _swig_setattr_nondynamic_method(set):
43 def set_attr(self,name,value):
44 if hasattr(self,name) or (name in ("this", "thisown")):
45 set(self,name,value)
46 else:
47 raise AttributeError("You cannot add attributes to %s" % self)
48 return set_attr
49
50
d55e5bfc
RD
51import _misc
52import _core
53wx = _core
c24da6d6 54__docfilter__ = wx.__DocFilter(globals())
d14a1e28
RD
55CAL_SUNDAY_FIRST = _calendar.CAL_SUNDAY_FIRST
56CAL_MONDAY_FIRST = _calendar.CAL_MONDAY_FIRST
57CAL_SHOW_HOLIDAYS = _calendar.CAL_SHOW_HOLIDAYS
58CAL_NO_YEAR_CHANGE = _calendar.CAL_NO_YEAR_CHANGE
59CAL_NO_MONTH_CHANGE = _calendar.CAL_NO_MONTH_CHANGE
60CAL_SEQUENTIAL_MONTH_SELECTION = _calendar.CAL_SEQUENTIAL_MONTH_SELECTION
61CAL_SHOW_SURROUNDING_WEEKS = _calendar.CAL_SHOW_SURROUNDING_WEEKS
62CAL_HITTEST_NOWHERE = _calendar.CAL_HITTEST_NOWHERE
63CAL_HITTEST_HEADER = _calendar.CAL_HITTEST_HEADER
64CAL_HITTEST_DAY = _calendar.CAL_HITTEST_DAY
65CAL_HITTEST_INCMONTH = _calendar.CAL_HITTEST_INCMONTH
66CAL_HITTEST_DECMONTH = _calendar.CAL_HITTEST_DECMONTH
67CAL_HITTEST_SURROUNDING_WEEK = _calendar.CAL_HITTEST_SURROUNDING_WEEK
68CAL_BORDER_NONE = _calendar.CAL_BORDER_NONE
69CAL_BORDER_SQUARE = _calendar.CAL_BORDER_SQUARE
70CAL_BORDER_ROUND = _calendar.CAL_BORDER_ROUND
71class CalendarDateAttr(object):
98e665d3 72 """
c24da6d6
RD
73 A set of customization attributes for a calendar date, which can be
74 used to control the look of the Calendar object.
98e665d3 75 """
423f194a
RD
76 def __repr__(self):
77 return "<%s.%s; proxy of C++ wxCalendarDateAttr instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
d14a1e28 78 def __init__(self, *args, **kwargs):
41f1cec7 79 """
a95a7133 80 __init__(self, Colour colText=wxNullColour, Colour colBack=wxNullColour,
98e665d3 81 Colour colBorder=wxNullColour, Font font=wxNullFont,
d03fd34d 82 int border=CAL_BORDER_NONE) -> CalendarDateAttr
98e665d3
RD
83
84 Create a CalendarDateAttr.
41f1cec7 85 """
d14a1e28
RD
86 newobj = _calendar.new_CalendarDateAttr(*args, **kwargs)
87 self.this = newobj.this
eedf876b 88 self.thisown = 1
d14a1e28 89 del newobj.thisown
423f194a 90 def SetTextColour(*args, **kwargs):
a95a7133 91 """SetTextColour(self, Colour colText)"""
423f194a
RD
92 return _calendar.CalendarDateAttr_SetTextColour(*args, **kwargs)
93
94 def SetBackgroundColour(*args, **kwargs):
a95a7133 95 """SetBackgroundColour(self, Colour colBack)"""
423f194a
RD
96 return _calendar.CalendarDateAttr_SetBackgroundColour(*args, **kwargs)
97
98 def SetBorderColour(*args, **kwargs):
a95a7133 99 """SetBorderColour(self, Colour col)"""
423f194a
RD
100 return _calendar.CalendarDateAttr_SetBorderColour(*args, **kwargs)
101
102 def SetFont(*args, **kwargs):
a95a7133 103 """SetFont(self, Font font)"""
423f194a
RD
104 return _calendar.CalendarDateAttr_SetFont(*args, **kwargs)
105
106 def SetBorder(*args, **kwargs):
a95a7133 107 """SetBorder(self, int border)"""
423f194a
RD
108 return _calendar.CalendarDateAttr_SetBorder(*args, **kwargs)
109
110 def SetHoliday(*args, **kwargs):
a95a7133 111 """SetHoliday(self, bool holiday)"""
423f194a
RD
112 return _calendar.CalendarDateAttr_SetHoliday(*args, **kwargs)
113
114 def HasTextColour(*args, **kwargs):
a95a7133 115 """HasTextColour(self) -> bool"""
423f194a
RD
116 return _calendar.CalendarDateAttr_HasTextColour(*args, **kwargs)
117
118 def HasBackgroundColour(*args, **kwargs):
a95a7133 119 """HasBackgroundColour(self) -> bool"""
423f194a
RD
120 return _calendar.CalendarDateAttr_HasBackgroundColour(*args, **kwargs)
121
122 def HasBorderColour(*args, **kwargs):
a95a7133 123 """HasBorderColour(self) -> bool"""
423f194a
RD
124 return _calendar.CalendarDateAttr_HasBorderColour(*args, **kwargs)
125
126 def HasFont(*args, **kwargs):
a95a7133 127 """HasFont(self) -> bool"""
423f194a
RD
128 return _calendar.CalendarDateAttr_HasFont(*args, **kwargs)
129
130 def HasBorder(*args, **kwargs):
a95a7133 131 """HasBorder(self) -> bool"""
423f194a
RD
132 return _calendar.CalendarDateAttr_HasBorder(*args, **kwargs)
133
134 def IsHoliday(*args, **kwargs):
a95a7133 135 """IsHoliday(self) -> bool"""
423f194a
RD
136 return _calendar.CalendarDateAttr_IsHoliday(*args, **kwargs)
137
138 def GetTextColour(*args, **kwargs):
a95a7133 139 """GetTextColour(self) -> Colour"""
423f194a
RD
140 return _calendar.CalendarDateAttr_GetTextColour(*args, **kwargs)
141
142 def GetBackgroundColour(*args, **kwargs):
a95a7133 143 """GetBackgroundColour(self) -> Colour"""
423f194a
RD
144 return _calendar.CalendarDateAttr_GetBackgroundColour(*args, **kwargs)
145
146 def GetBorderColour(*args, **kwargs):
a95a7133 147 """GetBorderColour(self) -> Colour"""
423f194a
RD
148 return _calendar.CalendarDateAttr_GetBorderColour(*args, **kwargs)
149
150 def GetFont(*args, **kwargs):
a95a7133 151 """GetFont(self) -> Font"""
423f194a
RD
152 return _calendar.CalendarDateAttr_GetFont(*args, **kwargs)
153
154 def GetBorder(*args, **kwargs):
a95a7133 155 """GetBorder(self) -> int"""
423f194a
RD
156 return _calendar.CalendarDateAttr_GetBorder(*args, **kwargs)
157
eedf876b 158
d14a1e28
RD
159class CalendarDateAttrPtr(CalendarDateAttr):
160 def __init__(self, this):
161 self.this = this
162 if not hasattr(self,"thisown"): self.thisown = 0
163 self.__class__ = CalendarDateAttr
164_calendar.CalendarDateAttr_swigregister(CalendarDateAttrPtr)
eedf876b 165
d55e5bfc 166class CalendarEvent(_core.CommandEvent):
093d3ff1 167 """Proxy of C++ CalendarEvent class"""
423f194a
RD
168 def __repr__(self):
169 return "<%s.%s; proxy of C++ wxCalendarEvent instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
d14a1e28 170 def __init__(self, *args, **kwargs):
a95a7133 171 """__init__(self, CalendarCtrl cal, wxEventType type) -> CalendarEvent"""
d14a1e28
RD
172 newobj = _calendar.new_CalendarEvent(*args, **kwargs)
173 self.this = newobj.this
f6bcfd97 174 self.thisown = 1
d14a1e28 175 del newobj.thisown
423f194a 176 def GetDate(*args, **kwargs):
a95a7133 177 """GetDate(self) -> DateTime"""
423f194a
RD
178 return _calendar.CalendarEvent_GetDate(*args, **kwargs)
179
9fd4be55 180 def SetDate(*args, **kwargs):
a95a7133 181 """SetDate(self, DateTime date)"""
9fd4be55
RD
182 return _calendar.CalendarEvent_SetDate(*args, **kwargs)
183
184 def SetWeekDay(*args, **kwargs):
a95a7133 185 """SetWeekDay(self, int wd)"""
9fd4be55
RD
186 return _calendar.CalendarEvent_SetWeekDay(*args, **kwargs)
187
423f194a 188 def GetWeekDay(*args, **kwargs):
a95a7133 189 """GetWeekDay(self) -> int"""
423f194a
RD
190 return _calendar.CalendarEvent_GetWeekDay(*args, **kwargs)
191
1fbf26be
RD
192 def PySetDate(self, date):
193 """takes datetime.datetime or datetime.date object"""
629e65c2 194 self.SetDate(_pydate2wxdate(date))
1fbf26be
RD
195
196 def PyGetDate(self):
197 """returns datetime.date object"""
629e65c2 198 return _wxdate2pydate(self.GetDate())
1fbf26be 199
f6bcfd97 200
d14a1e28
RD
201class CalendarEventPtr(CalendarEvent):
202 def __init__(self, this):
f6bcfd97 203 self.this = this
d14a1e28
RD
204 if not hasattr(self,"thisown"): self.thisown = 0
205 self.__class__ = CalendarEvent
206_calendar.CalendarEvent_swigregister(CalendarEventPtr)
207
208wxEVT_CALENDAR_DOUBLECLICKED = _calendar.wxEVT_CALENDAR_DOUBLECLICKED
209wxEVT_CALENDAR_SEL_CHANGED = _calendar.wxEVT_CALENDAR_SEL_CHANGED
210wxEVT_CALENDAR_DAY_CHANGED = _calendar.wxEVT_CALENDAR_DAY_CHANGED
211wxEVT_CALENDAR_MONTH_CHANGED = _calendar.wxEVT_CALENDAR_MONTH_CHANGED
212wxEVT_CALENDAR_YEAR_CHANGED = _calendar.wxEVT_CALENDAR_YEAR_CHANGED
213wxEVT_CALENDAR_WEEKDAY_CLICKED = _calendar.wxEVT_CALENDAR_WEEKDAY_CLICKED
214EVT_CALENDAR = wx.PyEventBinder( wxEVT_CALENDAR_DOUBLECLICKED, 1)
215EVT_CALENDAR_SEL_CHANGED = wx.PyEventBinder( wxEVT_CALENDAR_SEL_CHANGED, 1)
216EVT_CALENDAR_DAY = wx.PyEventBinder( wxEVT_CALENDAR_DAY_CHANGED, 1)
217EVT_CALENDAR_MONTH = wx.PyEventBinder( wxEVT_CALENDAR_MONTH_CHANGED, 1)
218EVT_CALENDAR_YEAR = wx.PyEventBinder( wxEVT_CALENDAR_YEAR_CHANGED, 1)
219EVT_CALENDAR_WEEKDAY_CLICKED = wx.PyEventBinder( wxEVT_CALENDAR_WEEKDAY_CLICKED, 1)
220
d55e5bfc 221class CalendarCtrl(_core.Control):
c24da6d6
RD
222 """
223 The calendar control allows the user to pick a date interactively.
224
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.
231
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.
236
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.
243
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.
c24da6d6 247 """
423f194a
RD
248 def __repr__(self):
249 return "<%s.%s; proxy of C++ wxCalendarCtrl instance at %s>" % (self.__class__.__module__, self.__class__.__name__, self.this,)
d14a1e28 250 def __init__(self, *args, **kwargs):
41f1cec7 251 """
a95a7133 252 __init__(self, Window parent, int id=-1, DateTime date=DefaultDateTime,
41f1cec7
RD
253 Point pos=DefaultPosition, Size size=DefaultSize,
254 long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS,
d03fd34d 255 String name=CalendarNameStr) -> CalendarCtrl
98e665d3
RD
256
257 Create and show a calendar control.
41f1cec7 258 """
d14a1e28
RD
259 newobj = _calendar.new_CalendarCtrl(*args, **kwargs)
260 self.this = newobj.this
f6bcfd97 261 self.thisown = 1
d14a1e28 262 del newobj.thisown
0122b7e3 263 self._setOORInfo(self)
423f194a
RD
264
265 def Create(*args, **kwargs):
41f1cec7 266 """
a95a7133 267 Create(self, Window parent, int id, DateTime date=DefaultDateTime,
41f1cec7
RD
268 Point pos=DefaultPosition, Size size=DefaultSize,
269 long style=wxCAL_SHOW_HOLIDAYS|wxWANTS_CHARS,
d03fd34d 270 String name=CalendarNameStr) -> bool
98e665d3 271
c24da6d6
RD
272 Acutally create the GUI portion of the CalendarCtrl for 2-phase
273 creation.
41f1cec7 274 """
423f194a
RD
275 return _calendar.CalendarCtrl_Create(*args, **kwargs)
276
277 def SetDate(*args, **kwargs):
98e665d3 278 """
a95a7133 279 SetDate(self, DateTime date)
98e665d3
RD
280
281 Sets the current date.
282 """
423f194a
RD
283 return _calendar.CalendarCtrl_SetDate(*args, **kwargs)
284
285 def GetDate(*args, **kwargs):
98e665d3 286 """
a95a7133 287 GetDate(self) -> DateTime
98e665d3
RD
288
289 Gets the currently selected date.
290 """
423f194a
RD
291 return _calendar.CalendarCtrl_GetDate(*args, **kwargs)
292
293 def SetLowerDateLimit(*args, **kwargs):
98e665d3 294 """
a95a7133 295 SetLowerDateLimit(self, DateTime date=DefaultDateTime) -> bool
423f194a 296
98e665d3
RD
297 set the range in which selection can occur
298 """
299 return _calendar.CalendarCtrl_SetLowerDateLimit(*args, **kwargs)
423f194a
RD
300
301 def SetUpperDateLimit(*args, **kwargs):
98e665d3 302 """
a95a7133 303 SetUpperDateLimit(self, DateTime date=DefaultDateTime) -> bool
98e665d3
RD
304
305 set the range in which selection can occur
306 """
423f194a
RD
307 return _calendar.CalendarCtrl_SetUpperDateLimit(*args, **kwargs)
308
98e665d3
RD
309 def GetLowerDateLimit(*args, **kwargs):
310 """
a95a7133 311 GetLowerDateLimit(self) -> DateTime
98e665d3
RD
312
313 get the range in which selection can occur
314 """
315 return _calendar.CalendarCtrl_GetLowerDateLimit(*args, **kwargs)
316
423f194a 317 def GetUpperDateLimit(*args, **kwargs):
98e665d3 318 """
a95a7133 319 GetUpperDateLimit(self) -> DateTime
98e665d3
RD
320
321 get the range in which selection can occur
322 """
423f194a
RD
323 return _calendar.CalendarCtrl_GetUpperDateLimit(*args, **kwargs)
324
325 def SetDateRange(*args, **kwargs):
98e665d3 326 """
a95a7133 327 SetDateRange(self, DateTime lowerdate=DefaultDateTime, DateTime upperdate=DefaultDateTime) -> bool
98e665d3
RD
328
329 set the range in which selection can occur
330 """
423f194a
RD
331 return _calendar.CalendarCtrl_SetDateRange(*args, **kwargs)
332
333 def EnableYearChange(*args, **kwargs):
98e665d3 334 """
a95a7133 335 EnableYearChange(self, bool enable=True)
98e665d3
RD
336
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
339 interactively.
340 """
423f194a
RD
341 return _calendar.CalendarCtrl_EnableYearChange(*args, **kwargs)
342
343 def EnableMonthChange(*args, **kwargs):
98e665d3 344 """
a95a7133 345 EnableMonthChange(self, bool enable=True)
98e665d3 346
c24da6d6
RD
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.
98e665d3 351 """
423f194a
RD
352 return _calendar.CalendarCtrl_EnableMonthChange(*args, **kwargs)
353
354 def EnableHolidayDisplay(*args, **kwargs):
98e665d3 355 """
a95a7133 356 EnableHolidayDisplay(self, bool display=True)
98e665d3 357
c24da6d6
RD
358 This function should be used instead of changing CAL_SHOW_HOLIDAYS
359 style bit directly. It enables or disables the special highlighting of
360 the holidays.
98e665d3 361 """
423f194a
RD
362 return _calendar.CalendarCtrl_EnableHolidayDisplay(*args, **kwargs)
363
364 def SetHeaderColours(*args, **kwargs):
98e665d3 365 """
a95a7133 366 SetHeaderColours(self, Colour colFg, Colour colBg)
98e665d3 367
c24da6d6 368 Header colours are used for painting the weekdays at the top.
98e665d3 369 """
423f194a
RD
370 return _calendar.CalendarCtrl_SetHeaderColours(*args, **kwargs)
371
372 def GetHeaderColourFg(*args, **kwargs):
98e665d3 373 """
a95a7133 374 GetHeaderColourFg(self) -> Colour
98e665d3 375
c24da6d6 376 Header colours are used for painting the weekdays at the top.
98e665d3 377 """
423f194a
RD
378 return _calendar.CalendarCtrl_GetHeaderColourFg(*args, **kwargs)
379
380 def GetHeaderColourBg(*args, **kwargs):
98e665d3 381 """
a95a7133 382 GetHeaderColourBg(self) -> Colour
98e665d3 383
c24da6d6 384 Header colours are used for painting the weekdays at the top.
98e665d3 385 """
423f194a
RD
386 return _calendar.CalendarCtrl_GetHeaderColourBg(*args, **kwargs)
387
388 def SetHighlightColours(*args, **kwargs):
98e665d3 389 """
a95a7133 390 SetHighlightColours(self, Colour colFg, Colour colBg)
98e665d3 391
c24da6d6 392 Highlight colour is used for the currently selected date.
98e665d3 393 """
423f194a
RD
394 return _calendar.CalendarCtrl_SetHighlightColours(*args, **kwargs)
395
396 def GetHighlightColourFg(*args, **kwargs):
98e665d3 397 """
a95a7133 398 GetHighlightColourFg(self) -> Colour
98e665d3 399
c24da6d6 400 Highlight colour is used for the currently selected date.
98e665d3 401 """
423f194a
RD
402 return _calendar.CalendarCtrl_GetHighlightColourFg(*args, **kwargs)
403
404 def GetHighlightColourBg(*args, **kwargs):
98e665d3 405 """
a95a7133 406 GetHighlightColourBg(self) -> Colour
98e665d3 407
c24da6d6 408 Highlight colour is used for the currently selected date.
98e665d3 409 """
423f194a
RD
410 return _calendar.CalendarCtrl_GetHighlightColourBg(*args, **kwargs)
411
412 def SetHolidayColours(*args, **kwargs):
98e665d3 413 """
a95a7133 414 SetHolidayColours(self, Colour colFg, Colour colBg)
98e665d3 415
c24da6d6
RD
416 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
417 used).
98e665d3 418 """
423f194a
RD
419 return _calendar.CalendarCtrl_SetHolidayColours(*args, **kwargs)
420
421 def GetHolidayColourFg(*args, **kwargs):
98e665d3 422 """
a95a7133 423 GetHolidayColourFg(self) -> Colour
98e665d3 424
c24da6d6
RD
425 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
426 used).
98e665d3 427 """
423f194a
RD
428 return _calendar.CalendarCtrl_GetHolidayColourFg(*args, **kwargs)
429
430 def GetHolidayColourBg(*args, **kwargs):
98e665d3 431 """
a95a7133 432 GetHolidayColourBg(self) -> Colour
98e665d3 433
c24da6d6
RD
434 Holiday colour is used for the holidays (if CAL_SHOW_HOLIDAYS style is
435 used).
98e665d3 436 """
423f194a
RD
437 return _calendar.CalendarCtrl_GetHolidayColourBg(*args, **kwargs)
438
439 def GetAttr(*args, **kwargs):
98e665d3 440 """
a95a7133 441 GetAttr(self, size_t day) -> CalendarDateAttr
98e665d3 442
c24da6d6
RD
443 Returns the attribute for the given date (should be in the range
444 1...31). The returned value may be None
98e665d3 445 """
423f194a
RD
446 return _calendar.CalendarCtrl_GetAttr(*args, **kwargs)
447
448 def SetAttr(*args, **kwargs):
98e665d3 449 """
a95a7133 450 SetAttr(self, size_t day, CalendarDateAttr attr)
98e665d3 451
c24da6d6
RD
452 Associates the attribute with the specified date (in the range
453 1...31). If the attribute passed is None, the items attribute is
454 cleared.
98e665d3 455 """
423f194a
RD
456 return _calendar.CalendarCtrl_SetAttr(*args, **kwargs)
457
458 def SetHoliday(*args, **kwargs):
98e665d3 459 """
a95a7133 460 SetHoliday(self, size_t day)
98e665d3
RD
461
462 Marks the specified day as being a holiday in the current month.
463 """
423f194a
RD
464 return _calendar.CalendarCtrl_SetHoliday(*args, **kwargs)
465
466 def ResetAttr(*args, **kwargs):
98e665d3 467 """
a95a7133 468 ResetAttr(self, size_t day)
98e665d3 469
c24da6d6
RD
470 Clears any attributes associated with the given day (in the range
471 1...31).
98e665d3 472 """
423f194a
RD
473 return _calendar.CalendarCtrl_ResetAttr(*args, **kwargs)
474
475 def HitTest(*args, **kwargs):
98e665d3
RD
476 """
477 HitTest(Point pos) -> (result, date, weekday)
478
c24da6d6
RD
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
79fccf9d 481 determines the validity of the remaining two values.
98e665d3
RD
482 """
483 return _calendar.CalendarCtrl_HitTest(*args, **kwargs)
423f194a 484
9fd4be55 485 def GetMonthControl(*args, **kwargs):
98e665d3 486 """
a95a7133 487 GetMonthControl(self) -> Control
98e665d3 488
c24da6d6 489 Get the currently shown control for month.
98e665d3 490 """
9fd4be55
RD
491 return _calendar.CalendarCtrl_GetMonthControl(*args, **kwargs)
492
493 def GetYearControl(*args, **kwargs):
98e665d3 494 """
a95a7133 495 GetYearControl(self) -> Control
98e665d3 496
c24da6d6 497 Get the currently shown control for year.
98e665d3 498 """
9fd4be55
RD
499 return _calendar.CalendarCtrl_GetYearControl(*args, **kwargs)
500
f20a2e1f
RD
501 def GetClassDefaultAttributes(*args, **kwargs):
502 """
503 GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
504
79fccf9d
RD
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
caef1a4d
RD
508 colours or fonts which might look completely out of place on the
509 user's system, especially if it uses themes.
f20a2e1f
RD
510
511 The variant parameter is only relevant under Mac currently and is
79fccf9d 512 ignore under other platforms. Under Mac, it will change the size of
caef1a4d
RD
513 the returned font. See `wx.Window.SetWindowVariant` for more about
514 this.
f20a2e1f
RD
515 """
516 return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs)
517
518 GetClassDefaultAttributes = staticmethod(GetClassDefaultAttributes)
1fbf26be
RD
519 def PySetDate(self, date):
520 """takes datetime.datetime or datetime.date object"""
629e65c2 521 self.SetDate(_pydate2wxdate(date))
1fbf26be
RD
522
523 def PyGetDate(self):
524 """returns datetime.date object"""
629e65c2 525 return _wxdate2pydate(self.GetDate())
1fbf26be
RD
526
527 def PySetLowerDateLimit(self, date):
528 """takes datetime.datetime or datetime.date object"""
629e65c2 529 self.SetLowerDateLimit(_pydate2wxdate(date))
1fbf26be
RD
530
531 def PySetUpperDateLimit(self, date):
532 """takes datetime.datetime or datetime.date object"""
629e65c2 533 self.SetUpperDateLimit(_pydate2wxdate(date))
1fbf26be
RD
534
535 def PySetDateRange(self, lowerdate, upperdate):
536 """takes datetime.datetime or datetime.date objects"""
537 self.PySetLowerDateLimit(lowerdate)
538 self.PySetUpperDateLimit(upperdate)
539
540 def PyGetLowerDateLimit(self):
541 """returns datetime.date object"""
629e65c2 542 return _wxdate2pydate(self.GetLowerDateLimit())
1fbf26be
RD
543
544 def PyGetUpperDateLimit(self):
545 """returns datetime.date object"""
629e65c2 546 return _wxdate2pydate(self.GetUpperDateLimit())
1fbf26be 547
f6bcfd97 548
d14a1e28
RD
549class CalendarCtrlPtr(CalendarCtrl):
550 def __init__(self, this):
551 self.this = this
552 if not hasattr(self,"thisown"): self.thisown = 0
553 self.__class__ = CalendarCtrl
554_calendar.CalendarCtrl_swigregister(CalendarCtrlPtr)
d03fd34d
RD
555cvar = _calendar.cvar
556CalendarNameStr = cvar.CalendarNameStr
f6bcfd97 557
d14a1e28 558def PreCalendarCtrl(*args, **kwargs):
98e665d3
RD
559 """
560 PreCalendarCtrl() -> CalendarCtrl
561
562 Precreate a CalendarCtrl for 2-phase creation.
563 """
d14a1e28 564 val = _calendar.new_PreCalendarCtrl(*args, **kwargs)
09f3d4e6
RD
565 val.thisown = 1
566 return val
567
f20a2e1f
RD
568def CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs):
569 """
570 CalendarCtrl_GetClassDefaultAttributes(int variant=WINDOW_VARIANT_NORMAL) -> VisualAttributes
571
79fccf9d
RD
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
caef1a4d
RD
575 colours or fonts which might look completely out of place on the
576 user's system, especially if it uses themes.
f20a2e1f
RD
577
578 The variant parameter is only relevant under Mac currently and is
79fccf9d 579 ignore under other platforms. Under Mac, it will change the size of
caef1a4d
RD
580 the returned font. See `wx.Window.SetWindowVariant` for more about
581 this.
f20a2e1f
RD
582 """
583 return _calendar.CalendarCtrl_GetClassDefaultAttributes(*args, **kwargs)
584
629e65c2 585def _pydate2wxdate(date):
1fbf26be
RD
586 import datetime
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)
591
629e65c2 592def _wxdate2pydate(date):
1fbf26be
RD
593 import datetime
594 assert isinstance(date, wx.DateTime)
629e65c2
RD
595 if date.IsValid():
596 ymd = map(int, date.FormatISODate().split('-'))
597 return datetime.date(*ymd)
598 else:
599 return None
1fbf26be 600
f6bcfd97 601