X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/be5a51fb592f3fa2ba38ac6cd1e488d6d806058c..87419e97c6f15a9906de69690e7ba59ec0ffd119:/samples/widgets/notebook.cpp diff --git a/samples/widgets/notebook.cpp b/samples/widgets/notebook.cpp index adfbb5ad2e..0d15102e26 100644 --- a/samples/widgets/notebook.cpp +++ b/samples/widgets/notebook.cpp @@ -24,6 +24,8 @@ #pragma hdrstop #endif +#if wxUSE_NOTEBOOK + // for all others, include the necessary headers #ifndef WX_PRECOMP #include "wx/app.h" @@ -44,7 +46,6 @@ #include "wx/artprov.h" #include "widgets.h" -#if 1 #include "icons/notebook.xpm" // ---------------------------------------------------------------------------- @@ -78,11 +79,6 @@ enum Orient Orient_Max }; -// old versions of wxWidgets don't define this style -#ifndef wxNB_TOP - #define wxNB_TOP (0) -#endif - // ---------------------------------------------------------------------------- // NotebookWidgetsPage // ---------------------------------------------------------------------------- @@ -90,9 +86,12 @@ enum Orient class NotebookWidgetsPage : public WidgetsPage { public: - NotebookWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); + NotebookWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist); virtual ~NotebookWidgetsPage(); + virtual wxControl *GetWidget() const { return m_notebook; } + virtual void RecreateWidget() { CreateNotebook(); } + protected: // event handlers void OnPageChanging(wxNotebookEvent& event); @@ -194,9 +193,9 @@ END_EVENT_TABLE() IMPLEMENT_WIDGETS_PAGE(NotebookWidgetsPage, _T("Notebook")); -NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, +NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist) - : WidgetsPage(notebook) + : WidgetsPage(book) { imaglist->Add(wxBitmap(notebook_xpm)); @@ -213,22 +212,19 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style")); // must be in sync with Orient enum - wxString orientations[] = - { - _T("&top"), - _T("&bottom"), - _T("&left"), - _T("&right"), - }; + wxArrayString orientations; + orientations.Add(_T("&top")); + orientations.Add(_T("&bottom")); + orientations.Add(_T("&left")); + orientations.Add(_T("&right")); - wxASSERT_MSG( WXSIZEOF(orientations) == Orient_Max, + wxASSERT_MSG( orientations.GetCount() == Orient_Max, _T("forgot to update something") ); 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); + orientations, 1, wxRA_SPECIFY_COLS); wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL); @@ -349,31 +345,31 @@ void NotebookWidgetsPage::CreateImageList() void NotebookWidgetsPage::CreateNotebook() { - int flags; + int flags = ms_defaultFlags; switch ( m_radioOrient->GetSelection() ) { default: - wxFAIL_MSG( _T("unknown notebok orientation") ); + wxFAIL_MSG( _T("unknown notebook orientation") ); // fall through case Orient_Top: - flags = wxNB_TOP; + flags |= wxBK_TOP; break; case Orient_Bottom: - flags = wxNB_BOTTOM; + flags |= wxBK_BOTTOM; break; case Orient_Left: - flags = wxNB_LEFT; + flags |= wxBK_LEFT; break; case Orient_Right: - flags = wxNB_RIGHT; + flags |= wxBK_RIGHT; break; } - wxNotebook *notebook = m_notebook; + wxNotebook *old_note = m_notebook; m_notebook = new wxNotebook(this, NotebookPage_Notebook, wxDefaultPosition, wxDefaultSize, @@ -381,23 +377,24 @@ void NotebookWidgetsPage::CreateNotebook() CreateImageList(); - if ( notebook ) + if ( old_note ) { - const int sel = notebook->GetSelection(); + const int sel = old_note->GetSelection(); - const int count = notebook->GetPageCount(); + const int count = old_note->GetPageCount(); // recreate the pages for ( int n = 0; n < count; n++ ) { m_notebook->AddPage(CreateNewPage(), - notebook->GetPageText(n), + old_note->GetPageText(n), false, - notebook->GetPageImage(n)); + m_chkImages->GetValue() ? + GetIconIndex() : -1); } - m_sizerNotebook->Detach( notebook ); - delete notebook; + m_sizerNotebook->Detach( old_note ); + delete old_note; // restore selection if ( sel != -1 ) @@ -507,7 +504,7 @@ void NotebookWidgetsPage::OnUpdateUIRemoveButton(wxUpdateUIEvent& event) void NotebookWidgetsPage::OnUpdateUIResetButton(wxUpdateUIEvent& event) { event.Enable( !m_chkImages->GetValue() || - m_radioOrient->GetSelection() != wxNB_TOP ); + m_radioOrient->GetSelection() != wxBK_TOP ); } void NotebookWidgetsPage::OnUpdateUINumPagesText(wxUpdateUIEvent& event) @@ -545,4 +542,4 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event) event.Skip(); } -#endif +#endif // wxUSE_NOTEBOOK