X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2522d529176639f52467f6a1b1ad8415966ce4c0..e960c20e389061c0db09e03fdaf9ffe3a418779b:/samples/calendar/calendar.cpp diff --git a/samples/calendar/calendar.cpp b/samples/calendar/calendar.cpp index b8952dfcfa..2b83737e07 100644 --- a/samples/calendar/calendar.cpp +++ b/samples/calendar/calendar.cpp @@ -128,6 +128,8 @@ public: void OnSetDate(wxCommandEvent& event); void OnToday(wxCommandEvent& event); + void OnCalToggleResizable(wxCommandEvent& event); + void OnAllowYearUpdate(wxUpdateUIEvent& event); private: @@ -179,6 +181,7 @@ enum Calendar_Cal_SurroundWeeks, Calendar_Cal_SetDate, Calendar_Cal_Today, + Calendar_Cal_Resizable, #if wxUSE_DATEPICKCTRL Calendar_DatePicker_AskDate = 300, Calendar_DatePicker_ShowCentury, @@ -223,6 +226,8 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(Calendar_Cal_SetDate, MyFrame::OnSetDate) EVT_MENU(Calendar_Cal_Today, MyFrame::OnToday) + EVT_MENU(Calendar_Cal_Resizable, MyFrame::OnCalToggleResizable) + EVT_UPDATE_UI(Calendar_Cal_Year, MyFrame::OnAllowYearUpdate) END_EVENT_TABLE() @@ -261,6 +266,9 @@ IMPLEMENT_APP(MyApp) // `Main program' equivalent: the program execution "starts" here bool MyApp::OnInit() { + if ( !wxApp::OnInit() ) + return false; + // Create the main application window MyFrame *frame = new MyFrame(_T("Calendar wxWidgets sample") #ifndef __WXWINCE__ @@ -322,6 +330,8 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuCal->AppendSeparator(); menuCal->Append(Calendar_Cal_SetDate, _T("Call &SetDate(2005-12-24)"), _T("Set date to 2005-12-24.")); menuCal->Append(Calendar_Cal_Today, _T("Call &Today()"), _T("Set the current date.")); + menuCal->AppendSeparator(); + menuCal->AppendCheckItem(Calendar_Cal_Resizable, _T("Make &resizable\tCtrl-R")); #if wxUSE_DATEPICKCTRL wxMenu *menuDate = new wxMenu; @@ -444,6 +454,24 @@ void MyFrame::OnToday(wxCommandEvent &WXUNUSED(event)) m_panel->Today(); } +void MyFrame::OnCalToggleResizable(wxCommandEvent& event) +{ + wxSizer * const sizer = m_panel->GetSizer(); + wxSizerItem * const item = sizer->GetItem(m_panel->GetCal()); + if ( event.IsChecked() ) + { + item->SetProportion(1); + item->SetFlag(wxEXPAND); + } + else // not resizable + { + item->SetProportion(0); + item->SetFlag(wxALIGN_CENTER); + } + + sizer->Layout(); +} + #if wxUSE_DATEPICKCTRL void MyFrame::OnUpdateUIStartWithNone(wxUpdateUIEvent& event)