void OnCalendar(wxCalendarEvent& event);
void OnCalendarWeekDayClick(wxCalendarEvent& event);
+ void OnCalendarWeekClick(wxCalendarEvent& event);
void OnCalendarChange(wxCalendarEvent& event);
void OnCalMonthChange(wxCalendarEvent& event);
void OnCalSeqMonth(wxCommandEvent& event);
void OnCalShowSurroundingWeeks(wxCommandEvent& event);
+ void OnCalShowWeekNumbers(wxCommandEvent& event);
void OnSetDate(wxCommandEvent& event);
void OnToday(wxCommandEvent& event);
Calendar_Cal_Month,
Calendar_Cal_SeqMonth,
Calendar_Cal_SurroundWeeks,
+ Calendar_Cal_WeekNumbers,
Calendar_Cal_SetDate,
Calendar_Cal_Today,
Calendar_Cal_BeginDST,
EVT_MENU(Calendar_Cal_SeqMonth, MyFrame::OnCalSeqMonth)
EVT_MENU(Calendar_Cal_SurroundWeeks, MyFrame::OnCalShowSurroundingWeeks)
+ EVT_MENU(Calendar_Cal_WeekNumbers, MyFrame::OnCalShowWeekNumbers)
EVT_MENU(Calendar_Cal_SetDate, MyFrame::OnSetDate)
EVT_MENU(Calendar_Cal_Today, MyFrame::OnToday)
EVT_UPDATE_UI(Calendar_Cal_SeqMonth, MyFrame::OnUpdateUIGenericOnly)
#ifdef __WXGTK20__
EVT_UPDATE_UI(Calendar_Cal_Monday, MyFrame::OnUpdateUIGenericOnly)
-#endif
EVT_UPDATE_UI(Calendar_Cal_Holidays, MyFrame::OnUpdateUIGenericOnly)
+#endif
EVT_UPDATE_UI(Calendar_Cal_Special, MyFrame::OnUpdateUIGenericOnly)
EVT_UPDATE_UI(Calendar_Cal_SurroundWeeks, MyFrame::OnUpdateUIGenericOnly)
END_EVENT_TABLE()
EVT_CALENDAR_PAGE_CHANGED(Calendar_CalCtrl, MyPanel::OnCalMonthChange)
EVT_CALENDAR_SEL_CHANGED(Calendar_CalCtrl, MyPanel::OnCalendarChange)
EVT_CALENDAR_WEEKDAY_CLICKED(Calendar_CalCtrl, MyPanel::OnCalendarWeekDayClick)
+ EVT_CALENDAR_WEEK_CLICKED(Calendar_CalCtrl, MyPanel::OnCalendarWeekClick)
END_EVENT_TABLE()
#if wxUSE_DATEPICKCTRL
#ifndef __WXWINCE__
,wxPoint(50, 50), wxSize(450, 340)
#endif
- );
+ );
frame->Show(true);
_T("Show s&urrounding weeks\tCtrl-W"),
_T("Show the neighbouring weeks in the prev/next month"),
true);
+ menuCal->Append(Calendar_Cal_WeekNumbers,
+ _T("Show &week numbers"),
+ _T("Toggle week numbers"),
+ true);
menuCal->AppendSeparator();
menuCal->Append(Calendar_Cal_SeqMonth,
_T("Toggle month selector st&yle\tCtrl-Y"),
m_panel->ToggleCalStyle(event.IsChecked(), wxCAL_SHOW_SURROUNDING_WEEKS);
}
+void MyFrame::OnCalShowWeekNumbers(wxCommandEvent& event)
+{
+ m_panel->ToggleCalStyle(event.IsChecked(), wxCAL_SHOW_WEEK_NUMBERS);
+}
+
void MyFrame::OnSetDate(wxCommandEvent &WXUNUSED(event))
{
m_panel->SetDate(wxDateTime(24, wxDateTime::Dec, 2005, 22, 00, 00));
wxDateTime::GetWeekDayName(event.GetWeekDay()).c_str());
}
+void MyPanel::OnCalendarWeekClick(wxCalendarEvent& event)
+{
+ wxLogMessage(wxT("Clicked on week %d"), event.GetDate().GetWeekOfYear());
+}
+
wxCalendarCtrlBase *MyPanel::DoCreateCalendar(const wxDateTime& dt, long style)
{
wxCalendarCtrlBase *calendar;
calendar->Connect(wxEVT_RIGHT_DOWN,
wxMouseEventHandler(MyFrame::OnCalRClick),
NULL,
- wxGetTopLevelParent(this));
+ ( MyFrame * )wxGetTopLevelParent(this));
return calendar;
}
else
style &= ~flag;
- if ( flag == wxCAL_SEQUENTIAL_MONTH_SELECTION )
+ if ( flag == wxCAL_SEQUENTIAL_MONTH_SELECTION
+ || flag == wxCAL_SHOW_WEEK_NUMBERS)
{
// changing this style requires recreating the control
RecreateCalendar(style);