+}
+
+bool wxNotebook::DeletePage(wxNotebookPage* page)
+{
+ int pagePos = FindPagePosition(page);
+ if (pagePos > -1)
+ return DeletePage(pagePos);
+ else
+ return FALSE;
+}
+
+// remove one page from the notebook
+bool wxNotebook::RemovePage(int nPage)
+{
+ wxCHECK( IS_VALID_PAGE(nPage), FALSE );
+
+ if (m_nSelection != -1)
+ {
+ m_aPages[m_nSelection]->Show(FALSE);
+ m_aPages[m_nSelection]->Lower();
+ }
+
+ wxNotebookPage* pPage = GetPage(nPage);
+ m_tabView->RemoveTab((int) (long) pPage);
+
+ m_aPages.Remove(nPage);
+
+ if (m_aPages.GetCount() == 0)
+ {
+ m_nSelection = -1;
+ m_tabView->SetTabSelection(-1, FALSE);
+ }
+ else if (m_nSelection > 0)
+ {
+ m_nSelection = -1;
+ m_tabView->SetTabSelection((int) (long) GetPage(0), FALSE);
+ ChangePage(-1, 0);
+ }
+
+ return TRUE;
+}
+
+bool wxNotebook::RemovePage(wxNotebookPage* page)
+{
+ int pagePos = FindPagePosition(page);
+ if (pagePos > -1)
+ return RemovePage(pagePos);
+ else
+ return FALSE;
+}
+
+// Find the position of the wxNotebookPage, -1 if not found.
+int wxNotebook::FindPagePosition(wxNotebookPage* page) const
+{
+ int nPageCount = GetPageCount();
+ int nPage;
+ for ( nPage = 0; nPage < nPageCount; nPage++ )
+ if (m_aPages[nPage] == page)
+ return nPage;
+ return -1;