X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/389d906b21e2cf2939fad5990383f2b33dcc6373..a85585d595c8409fa5e51a28e60fa49428440d5e:/samples/widgets/notebook.cpp?ds=sidebyside diff --git a/samples/widgets/notebook.cpp b/samples/widgets/notebook.cpp index 170e535864..967cb19b5b 100644 --- a/samples/widgets/notebook.cpp +++ b/samples/widgets/notebook.cpp @@ -44,7 +44,7 @@ #include "wx/artprov.h" #include "widgets.h" - +#if 1 #include "icons/notebook.xpm" // ---------------------------------------------------------------------------- @@ -134,6 +134,10 @@ protected: // get the numeric value of text ctrl int GetTextValue(wxTextCtrl *text) const; + // is the value in range? + bool IsValidValue(int val) const + { return (val >= 0) && (val < (int) m_notebook->GetPageCount()); } + // the controls // ------------ @@ -280,7 +284,7 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL); m_notebook = new wxNotebook(this, NotebookPage_Notebook); sizerRight->Add(m_notebook, 1, wxGROW | wxALL, 5); - sizerRight->SetMinSize(250, 0); + sizerRight->SetMinSize(150, 0); m_sizerNotebook = sizerRight; // save it to modify it later // the 3 panes panes compose the window @@ -380,21 +384,20 @@ void NotebookWidgetsPage::CreateNotebook() if ( notebook ) { - int sel = notebook->GetSelection(); + const int sel = notebook->GetSelection(); + + const int count = notebook->GetPageCount(); - int count = notebook->GetPageCount(); + // recreate the pages for ( int n = 0; n < count; n++ ) { - wxNotebookPage *page = notebook->GetPage(0); - page->Reparent(m_notebook); - - m_notebook->AddPage(page, notebook->GetPageText(0), FALSE, - notebook->GetPageImage(0)); - - notebook->RemovePage(0); + m_notebook->AddPage(CreateNewPage(), + notebook->GetPageText(n), + FALSE, + notebook->GetPageImage(n)); } - m_sizerNotebook->Remove(notebook); + m_sizerNotebook->Detach( notebook ); delete notebook; // restore selection @@ -456,10 +459,10 @@ void NotebookWidgetsPage::OnButtonDeleteAll(wxCommandEvent& WXUNUSED(event)) m_notebook->DeleteAllPages(); } -void NotebookWidgetsPage::OnButtonSelectPage(wxCommandEvent& event) +void NotebookWidgetsPage::OnButtonSelectPage(wxCommandEvent& WXUNUSED(event)) { int pos = GetTextValue(m_textSelect); - wxCHECK_RET( pos >= 0, _T("button should be disabled") ); + wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") ); m_notebook->SetSelection(pos); } @@ -473,7 +476,7 @@ void NotebookWidgetsPage::OnButtonAddPage(wxCommandEvent& WXUNUSED(event)) void NotebookWidgetsPage::OnButtonInsertPage(wxCommandEvent& WXUNUSED(event)) { int pos = GetTextValue(m_textInsert); - wxCHECK_RET( pos >= 0, _T("button should be disabled") ); + wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") ); m_notebook->InsertPage(pos, CreateNewPage(), _T("Inserted page"), FALSE, GetIconIndex()); @@ -482,24 +485,24 @@ void NotebookWidgetsPage::OnButtonInsertPage(wxCommandEvent& WXUNUSED(event)) void NotebookWidgetsPage::OnButtonRemovePage(wxCommandEvent& WXUNUSED(event)) { int pos = GetTextValue(m_textRemove); - wxCHECK_RET( pos >= 0, _T("button should be disabled") ); + wxCHECK_RET( IsValidValue(pos), _T("button should be disabled") ); m_notebook->DeletePage(pos); } void NotebookWidgetsPage::OnUpdateUISelectButton(wxUpdateUIEvent& event) { - event.Enable( GetTextValue(m_textSelect) >= 0 ); + event.Enable( IsValidValue(GetTextValue(m_textSelect)) ); } void NotebookWidgetsPage::OnUpdateUIInsertButton(wxUpdateUIEvent& event) { - event.Enable( GetTextValue(m_textInsert) >= 0 ); + event.Enable( IsValidValue(GetTextValue(m_textInsert)) ); } void NotebookWidgetsPage::OnUpdateUIRemoveButton(wxUpdateUIEvent& event) { - event.Enable( GetTextValue(m_textRemove) >= 0 ); + event.Enable( IsValidValue(GetTextValue(m_textRemove)) ); } void NotebookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) @@ -518,7 +521,7 @@ void NotebookWidgetsPage::OnUpdateUICurSelectText(wxUpdateUIEvent& event) event.SetText( wxString::Format(_T("%d"), m_notebook->GetSelection()) ); } -void NotebookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& event) +void NotebookWidgetsPage::OnCheckOrRadioBox(wxCommandEvent& WXUNUSED(event)) { CreateNotebook(); } @@ -543,3 +546,4 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event) event.Skip(); } +#endif