if ( !wxMSWDateControls::CheckInitialization() )
return false;
+ // we need the arrows for the navigation
+ style |= wxWANTS_CHARS;
+
// initialize the base class
if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
return false;
UpdateMarks();
+ Connect(wxEVT_LEFT_DOWN,
+ wxMouseEventHandler(wxCalendarCtrl::MSWOnClick));
Connect(wxEVT_LEFT_DCLICK,
wxMouseEventHandler(wxCalendarCtrl::MSWOnDoubleClick));
{
WXDWORD styleMSW = wxCalendarCtrlBase::MSWGetStyle(style, exstyle);
- // right now we don't support any native styles but we should add wx styles
- // corresponding to MCS_NOTODAY, MCS_NOTODAYCIRCLE and MCS_WEEKNUMBERS
- // probably (TODO)
+ // right now we don't support all native styles but we should add wx styles
+ // corresponding to MCS_NOTODAY and MCS_NOTODAYCIRCLE probably (TODO)
// for compatibility with the other versions, just turn off today display
// unconditionally for now
// we also need this style for Mark() to work
styleMSW |= MCS_DAYSTATE;
+ if ( style & wxCAL_SHOW_WEEK_NUMBERS )
+ styleMSW |= MCS_WEEKNUMBERS;
+
return styleMSW;
}
{
MONTHDAYSTATE states[3];
const int nMonths = MonthCal_GetMonthRange(GetHwnd(), GMR_DAYSTATE, NULL);
- wxCHECK_RET( nMonths <= WXSIZEOF(states), "unexpected months range" );
+ wxCHECK_RET( nMonths <= (int)WXSIZEOF(states), "unexpected months range" );
for ( int i = 0; i < nMonths; i++ )
states[i] = m_marks;
event.Skip();
}
+void wxCalendarCtrl::MSWOnClick(wxMouseEvent& event)
+{
+ // for some reason, the control doesn't get focus on its own when the user
+ // clicks in it
+ SetFocus();
+
+ event.Skip();
+}
+
#endif // wxUSE_CALENDARCTRL