]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/widgets/notebook.cpp
Fixed the code to actually work.
[wxWidgets.git] / samples / widgets / notebook.cpp
index 170e535864971cf74af2171824307bff0cf02411..967cb19b5bf2ba9b9231093bc2673621a8cd3092 100644 (file)
@@ -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