#include "wx/stattext.h"
#endif //WX_PRECOMP
-// Can only use wxSpinEvent if this is enabled
-#if wxUSE_SPINBTN
+#if wxUSE_CALENDARCTRL
#include "wx/calctrl.h"
IMPLEMENT_DYNAMIC_CLASS(wxCalendarCtrl, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxCalendarEvent, wxCommandEvent)
+// ----------------------------------------------------------------------------
+// events
+// ----------------------------------------------------------------------------
+
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_SEL_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_DAY_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_MONTH_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_YEAR_CHANGED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_DOUBLECLICKED)
+DEFINE_EVENT_TYPE(wxEVT_CALENDAR_WEEKDAY_CLICKED)
+
// ============================================================================
// implementation
// ============================================================================
wxCoord width = 7*m_widthCol,
height = 7*m_heightRow;
- wxSize sizeCombo = m_comboMonth->GetBestSize(),
- sizeSpin = m_spinYear->GetBestSize();
-
- height += VERT_MARGIN + wxMax(sizeCombo.y, sizeSpin.y);
+ // the combobox doesn't report its height correctly (it returns the
+ // height including the drop down list) so don't use it
+ height += VERT_MARGIN + m_spinYear->GetBestSize().y;
if ( GetWindowStyle() & (wxRAISED_BORDER | wxSUNKEN_BORDER) )
{
// the border would clip the last line otherwise
- height += 4;
+ height += 6;
}
return wxSize(width, height);
wxCalendarDateAttr *attr = m_attrs[day - 1];
- bool isSel = m_date == date;
+ bool isSel = date.IsSameDate(m_date);
if ( isSel )
{
dc.SetTextForeground(m_colHighlightFg);
m_date = cal->GetDate();
}
-#endif // wxUSE_SPINBTN
+#endif // wxUSE_CALENDARCTRL