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