X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e4df4bfaf214faac6d4c7519f4aab5b8c7fd287..31a06b07cce898a22d0ca3992501e85da9c22f13:/src/generic/calctrl.cpp?ds=sidebyside diff --git a/src/generic/calctrl.cpp b/src/generic/calctrl.cpp index bc80003652..37a0ab7713 100644 --- a/src/generic/calctrl.cpp +++ b/src/generic/calctrl.cpp @@ -36,8 +36,7 @@ #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" @@ -181,14 +180,20 @@ void wxCalendarCtrl::Init() 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); @@ -472,15 +477,14 @@ wxSize wxCalendarCtrl::DoGetBestSize() const 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); @@ -648,7 +652,7 @@ void wxCalendarCtrl::OnPaint(wxPaintEvent& WXUNUSED(event)) wxCalendarDateAttr *attr = m_attrs[day - 1]; - bool isSel = m_date == date; + bool isSel = date.IsSameDate(m_date); if ( isSel ) { dc.SetTextForeground(m_colHighlightFg); @@ -1059,5 +1063,5 @@ wxCalendarEvent::wxCalendarEvent(wxCalendarCtrl *cal, wxEventType type) m_date = cal->GetDate(); } -#endif // wxUSE_SPINBTN +#endif // wxUSE_CALENDARCTRL