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