1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG definitions for the wxCalendarCtrl
7 // Created: 23-May-2000
9 // Copyright: (c) 2000 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
18 #include <wx/calctrl.h>
21 //----------------------------------------------------------------------
24 %include my_typemaps.i
26 // Import some definitions of other classes, etc.
34 %pragma(python) code = "import wx"
36 //---------------------------------------------------------------------------
43 wxCAL_NO_MONTH_CHANGE,
47 enum wxCalendarHitTestResult
49 wxCAL_HITTEST_NOWHERE, // outside of anything
50 wxCAL_HITTEST_HEADER, // on the header (weekdays)
51 wxCAL_HITTEST_DAY // on a day in the calendar
54 // border types for a date
55 enum wxCalendarDateBorder
57 wxCAL_BORDER_NONE, // no border (default)
58 wxCAL_BORDER_SQUARE, // a rectangular border
59 wxCAL_BORDER_ROUND // a round border
62 //---------------------------------------------------------------------------
65 class wxCalendarDateAttr
69 wxCalendarDateAttr(const wxColour& colText,
70 const wxColour& colBack = wxNullColour,
71 const wxColour& colBorder = wxNullColour,
72 const wxFont& font = wxNullFont,
73 wxCalendarDateBorder border = wxCAL_BORDER_NONE);
75 %name(wxCalendarDateAttrBorder)
76 wxCalendarDateAttr(wxCalendarDateBorder border,
77 const wxColour& colBorder = wxNullColour);
80 void SetTextColour(const wxColour& colText);
81 void SetBackgroundColour(const wxColour& colBack);
82 void SetBorderColour(const wxColour& col);
83 void SetFont(const wxFont& font);
84 void SetBorder(wxCalendarDateBorder border);
85 void SetHoliday(bool holiday);
88 bool HasTextColour() const;
89 bool HasBackgroundColour() const;
90 bool HasBorderColour() const;
92 bool HasBorder() const;
94 bool IsHoliday() const;
96 const wxColour& GetTextColour() const;
97 const wxColour& GetBackgroundColour() const;
98 const wxColour& GetBorderColour() const;
99 const wxFont& GetFont() const;
100 wxCalendarDateBorder GetBorder() const;
103 //---------------------------------------------------------------------------
105 class wxCalendarCtrl;
107 class wxCalendarEvent : public wxCommandEvent
110 wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type);
112 const wxDateTime& GetDate() const;
113 wxDateTime::WeekDay GetWeekDay() const;
118 wxEVT_CALENDAR_DOUBLECLICKED,
119 wxEVT_CALENDAR_SEL_CHANGED,
120 wxEVT_CALENDAR_DAY_CHANGED,
121 wxEVT_CALENDAR_MONTH_CHANGED,
122 wxEVT_CALENDAR_YEAR_CHANGED,
123 wxEVT_CALENDAR_WEEKDAY_CLICKED,
126 %pragma(python) code = "
127 def EVT_CALENDAR(win, id, fn):
128 win.Connect(id, -1, wxEVT_CALENDAR_DOUBLECLICKED, fn)
130 def EVT_CALENDAR_SEL_CHANGED(win, id, fn):
131 win.Connect(id, -1, wxEVT_CALENDAR_SEL_CHANGED, fn)
133 def EVT_CALENDAR_DAY(win, id, fn):
134 win.Connect(id, -1, wxEVT_CALENDAR_DAY_CHANGED, fn)
136 def EVT_CALENDAR_MONTH(win, id, fn):
137 win.Connect(id, -1, wxEVT_CALENDAR_MONTH_CHANGED, fn)
139 def EVT_CALENDAR_YEAR(win, id, fn):
140 win.Connect(id, -1, wxEVT_CALENDAR_YEAR_CHANGED, fn)
142 def EVT_CALENDAR_WEEKDAY_CLICKED(win, id, fn):
143 win.Connect(id, -1, wxEVT_CALENDAR_WEEKDAY_CLICKED, fn)
147 //---------------------------------------------------------------------------
149 class wxCalendarCtrl : public wxControl
153 wxCalendarCtrl(wxWindow *parent,
155 const wxDateTime& date = wxDefaultDateTime,
156 const wxPoint& pos = wxDefaultPosition,
157 const wxSize& size = wxDefaultSize,
158 long style = wxCAL_SHOW_HOLIDAYS,
159 const char* name = "calendar");
161 // set/get the current date
162 // ------------------------
164 void SetDate(const wxDateTime& date);
165 const wxDateTime& GetDate() const;
170 // some calendar styles can't be changed after the control creation by
171 // just using SetWindowStyle() and Refresh() and the functions below
172 // should be used instead for them
174 // corresponds to wxCAL_NO_YEAR_CHANGE bit
175 void EnableYearChange(bool enable = TRUE);
177 // corresponds to wxCAL_NO_MONTH_CHANGE bit
178 void EnableMonthChange(bool enable = TRUE);
180 // corresponds to wxCAL_SHOW_HOLIDAYS bit
181 void EnableHolidayDisplay(bool display = TRUE);
186 // header colours are used for painting the weekdays at the top
187 void SetHeaderColours(const wxColour& colFg, const wxColour& colBg);
188 const wxColour& GetHeaderColourFg() const;
189 const wxColour& GetHeaderColourBg() const;
191 // highlight colour is used for the currently selected date
192 void SetHighlightColours(const wxColour& colFg, const wxColour& colBg);
193 const wxColour& GetHighlightColourFg() const;
194 const wxColour& GetHighlightColourBg() const;
196 // holiday colour is used for the holidays (if style & wxCAL_SHOW_HOLIDAYS)
197 void SetHolidayColours(const wxColour& colFg, const wxColour& colBg);
198 const wxColour& GetHolidayColourFg() const;
199 const wxColour& GetHolidayColourBg() const;
201 // an item without custom attributes is drawn with the default colours and
202 // font and without border, setting custom attributes allows to modify this
204 // the day parameter should be in 1..31 range, for days 29, 30, 31 the
205 // corresponding attribute is just unused if there is no such day in the
208 wxCalendarDateAttr *GetAttr(size_t day) const;
209 void SetAttr(size_t day, wxCalendarDateAttr *attr);
211 void SetHoliday(size_t day);
213 void ResetAttr(size_t day);
215 // returns one of wxCAL_HITTEST_XXX constants and fills either date or wd
216 // with the corresponding value (none for NOWHERE, the date for DAY and wd
218 wxCalendarHitTestResult HitTest(const wxPoint& pos,
219 wxDateTime *date = NULL,
220 wxDateTime::WeekDay *wd = NULL);
225 //---------------------------------------------------------------------------
228 wxClassInfo::CleanUpClasses();
229 wxClassInfo::InitializeClasses();
232 //---------------------------------------------------------------------------
234 %pragma(python) include="_calextras.py";
236 //---------------------------------------------------------------------------