X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b5f62a0b2db198609b45dec622a018dae37008e..9690a439357717876129f4e041528c95586c4fbb:/samples/widgets/notebook.cpp diff --git a/samples/widgets/notebook.cpp b/samples/widgets/notebook.cpp index 6eb8b1ae65..2d8c217cf7 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 @@ -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 wxWindows don't define this style -#ifndef wxNB_TOP - #define wxNB_TOP (0) -#endif - // ---------------------------------------------------------------------------- // NotebookWidgetsPage // ---------------------------------------------------------------------------- @@ -90,9 +86,11 @@ enum Orient class NotebookWidgetsPage : public WidgetsPage { public: - NotebookWidgetsPage(wxNotebook *notebook, wxImageList *imaglist); + NotebookWidgetsPage(wxBookCtrl *book, wxImageList *imaglist); virtual ~NotebookWidgetsPage(); + virtual wxControl *GetWidget() const { return m_notebook; } + protected: // event handlers void OnPageChanging(wxNotebookEvent& event); @@ -134,6 +132,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 // ------------ @@ -177,11 +179,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() // ============================================================================ @@ -190,9 +192,9 @@ END_EVENT_TABLE() IMPLEMENT_WIDGETS_PAGE(NotebookWidgetsPage, _T("Notebook")); -NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, +NotebookWidgetsPage::NotebookWidgetsPage(wxBookCtrl *book, wxImageList *imaglist) - : WidgetsPage(notebook) + : WidgetsPage(book) { imaglist->Add(wxBitmap(notebook_xpm)); @@ -206,7 +208,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[] = @@ -220,8 +222,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); @@ -236,20 +238,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, @@ -292,7 +294,6 @@ NotebookWidgetsPage::NotebookWidgetsPage(wxNotebook *notebook, Reset(); CreateImageList(); - SetAutoLayout(TRUE); SetSizer(sizerTop); sizerTop->Fit(this); @@ -309,7 +310,7 @@ NotebookWidgetsPage::~NotebookWidgetsPage() void NotebookWidgetsPage::Reset() { - m_chkImages->SetValue(TRUE); + m_chkImages->SetValue(true); m_radioOrient->SetSelection(Orient_Top); } @@ -350,7 +351,7 @@ void NotebookWidgetsPage::CreateNotebook() switch ( m_radioOrient->GetSelection() ) { default: - wxFAIL_MSG( _T("unknown notebok orientation") ); + wxFAIL_MSG( _T("unknown notebook orientation") ); // fall through case Orient_Top: @@ -370,7 +371,7 @@ void NotebookWidgetsPage::CreateNotebook() break; } - wxNotebook *notebook = m_notebook; + wxNotebook *old_note = m_notebook; m_notebook = new wxNotebook(this, NotebookPage_Notebook, wxDefaultPosition, wxDefaultSize, @@ -378,23 +379,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), - FALSE, - notebook->GetPageImage(n)); + old_note->GetPageText(n), + false, + m_chkImages->GetValue() ? + GetIconIndex() : -1); } - m_sizerNotebook->Remove(notebook); - delete notebook; + m_sizerNotebook->Detach( old_note ); + delete old_note; // restore selection if ( sel != -1 ) @@ -436,7 +438,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")); } // ---------------------------------------------------------------------------- @@ -455,50 +457,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) @@ -517,7 +519,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(); } @@ -542,4 +544,4 @@ void NotebookWidgetsPage::OnPageChanged(wxNotebookEvent& event) event.Skip(); } -#endif +#endif // wxUSE_NOTEBOOK