X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5e173f35d2a8177371d13d059d9f897e2c4f98be..4b7ded8bad3a45ea4838e6d3f5d1957a134050ec:/samples/widgets/notebook.cpp diff --git a/samples/widgets/notebook.cpp b/samples/widgets/notebook.cpp index 92d8c089d5..adfbb5ad2e 100644 --- a/samples/widgets/notebook.cpp +++ b/samples/widgets/notebook.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Program: wxWindows Widgets Sample +// Program: wxWidgets Widgets Sample // Name: notebook.cpp // Purpose: Part of the widgets sample showing wxNotebook // Author: Vadim Zeitlin @@ -41,9 +41,10 @@ #include "wx/sizer.h" #include "wx/notebook.h" +#include "wx/artprov.h" #include "widgets.h" - +#if 1 #include "icons/notebook.xpm" // ---------------------------------------------------------------------------- @@ -77,7 +78,7 @@ enum Orient Orient_Max }; -// old versions of wxWindows don't define this style +// old versions of wxWidgets don't define this style #ifndef wxNB_TOP #define wxNB_TOP (0) #endif @@ -133,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 // ------------ @@ -176,11 +181,11 @@ BEGIN_EVENT_TABLE(NotebookWidgetsPage, WidgetsPage) EVT_UPDATE_UI(NotebookPage_InsertPage, NotebookWidgetsPage::OnUpdateUIInsertButton) EVT_UPDATE_UI(NotebookPage_RemovePage, NotebookWidgetsPage::OnUpdateUIRemoveButton) - EVT_NOTEBOOK_PAGE_CHANGING(-1, NotebookWidgetsPage::OnPageChanging) - EVT_NOTEBOOK_PAGE_CHANGED(-1, NotebookWidgetsPage::OnPageChanged) + EVT_NOTEBOOK_PAGE_CHANGING(wxID_ANY, NotebookWidgetsPage::OnPageChanging) + EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, NotebookWidgetsPage::OnPageChanged) - EVT_CHECKBOX(-1, NotebookWidgetsPage::OnCheckOrRadioBox) - EVT_RADIOBOX(-1, NotebookWidgetsPage::OnCheckOrRadioBox) + EVT_CHECKBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox) + EVT_RADIOBOX(wxID_ANY, NotebookWidgetsPage::OnCheckOrRadioBox) END_EVENT_TABLE() // ============================================================================ @@ -205,7 +210,7 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL); // left pane - wxStaticBox *box = new wxStaticBox(this, -1, _T("&Set style")); + wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style")); // must be in sync with Orient enum wxString orientations[] = @@ -219,8 +224,8 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, wxASSERT_MSG( WXSIZEOF(orientations) == Orient_Max, _T("forgot to update something") ); - m_chkImages = new wxCheckBox(this, -1, _T("Show &images")); - m_radioOrient = new wxRadioBox(this, -1, _T("&Tab orientation"), + m_chkImages = new wxCheckBox(this, wxID_ANY, _T("Show &images")); + m_radioOrient = new wxRadioBox(this, wxID_ANY, _T("&Tab orientation"), wxDefaultPosition, wxDefaultSize, WXSIZEOF(orientations), orientations, 1, wxRA_SPECIFY_COLS); @@ -235,20 +240,20 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15); // middle pane - wxStaticBox *box2 = new wxStaticBox(this, -1, _T("&Contents")); + wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Contents")); wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL); wxTextCtrl *text; wxSizer *sizerRow = CreateSizerWithTextAndLabel(_T("Number of pages: "), NotebookPage_NumPagesText, &text); - text->SetEditable(FALSE); + text->SetEditable(false); sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); sizerRow = CreateSizerWithTextAndLabel(_T("Current selection: "), NotebookPage_CurSelectText, &text); - text->SetEditable(FALSE); + text->SetEditable(false); sizerMiddle->Add(sizerRow, 0, wxALL | wxGROW, 5); sizerRow = CreateSizerWithTextAndButton(NotebookPage_SelectPage, @@ -279,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 @@ -291,7 +296,6 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, Reset(); CreateImageList(); - SetAutoLayout(TRUE); SetSizer(sizerTop); sizerTop->Fit(this); @@ -308,7 +312,7 @@ NotebookWidgetsPage::~NotebookWidgetsPage() void NotebookWidgetsPage::Reset() { - m_chkImages->SetValue(TRUE); + m_chkImages->SetValue(true); m_radioOrient->SetSelection(Orient_Top); } @@ -320,10 +324,11 @@ void NotebookWidgetsPage::CreateImageList() { // create a dummy image list with a few icons m_imageList = new wxImageList(32, 32); - m_imageList->Add(wxTheApp->GetStdIcon(wxICON_INFORMATION)); - m_imageList->Add(wxTheApp->GetStdIcon(wxICON_QUESTION)); - m_imageList->Add(wxTheApp->GetStdIcon(wxICON_WARNING)); - m_imageList->Add(wxTheApp->GetStdIcon(wxICON_ERROR)); + wxSize size(32, 32); + m_imageList->Add(wxArtProvider::GetIcon(wxART_INFORMATION, wxART_OTHER, size)); + m_imageList->Add(wxArtProvider::GetIcon(wxART_QUESTION, wxART_OTHER, size)); + m_imageList->Add(wxArtProvider::GetIcon(wxART_WARNING, wxART_OTHER, size)); + m_imageList->Add(wxArtProvider::GetIcon(wxART_ERROR, wxART_OTHER, size)); } m_notebook->SetImageList(m_imageList); @@ -378,21 +383,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 @@ -435,7 +439,7 @@ int NotebookWidgetsPage::GetIconIndex() const wxWindow *NotebookWidgetsPage::CreateNewPage() { - return new wxTextCtrl(m_notebook, -1, _T("I'm a notebook page")); + return new wxTextCtrl(m_notebook, wxID_ANY, _T("I'm a notebook page")); } // ---------------------------------------------------------------------------- @@ -454,50 +458,50 @@ 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); } void NotebookWidgetsPage::OnButtonAddPage(wxCommandEvent& WXUNUSED(event)) { - m_notebook->AddPage(CreateNewPage(), _T("Added page"), FALSE, + m_notebook->AddPage(CreateNewPage(), _T("Added page"), false, GetIconIndex()); } 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, + m_notebook->InsertPage(pos, CreateNewPage(), _T("Inserted page"), false, GetIconIndex()); } 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) @@ -516,7 +520,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(); } @@ -541,3 +545,4 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event) event.Skip(); } +#endif