#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
// ============================================================================
m_colHeaderBg = *wxLIGHT_GREY;
}
-bool wxCalendarCtrl::Create(wxWindow * WXUNUSED(parent),
- wxWindowID WXUNUSED(id),
+bool wxCalendarCtrl::Create(wxWindow *parent,
+ wxWindowID id,
const wxDateTime& date,
- const wxPoint& WXUNUSED(pos),
+ const wxPoint& pos,
const wxSize& size,
long style,
- const wxString& WXUNUSED(name))
+ const wxString& name)
{
+ if ( !wxControl::Create(parent, id, pos, size,
+ style | wxWANTS_CHARS, wxDefaultValidator, name) )
+ {
+ return FALSE;
+ }
+
// needed to get the arrow keys normally used for the dialog navigation
SetWindowStyle(style | wxWANTS_CHARS);
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