X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/937013e0fd914d4c42f9f5ec98da665986b93dfa..abd474ea63667f727940a009cc3e0b23ba9f418f:/src/os2/notebook.cpp diff --git a/src/os2/notebook.cpp b/src/os2/notebook.cpp index eaf16c77fa..299b848a96 100644 --- a/src/os2/notebook.cpp +++ b/src/os2/notebook.cpp @@ -53,19 +53,13 @@ // event table // ---------------------------------------------------------------------------- -DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) -DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) - -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange) EVT_SIZE(wxNotebook::OnSize) EVT_SET_FOCUS(wxNotebook::OnSetFocus) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) - // ============================================================================ // implementation // ============================================================================ @@ -80,7 +74,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) void wxNotebook::Init() { m_imageList = NULL; - m_nSelection = -1; m_nTabSize = 0; } // end of wxNotebook::Init @@ -214,14 +207,14 @@ int wxNotebook::SetSelection( size_t nPage ) { wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") ); - if (nPage != (size_t)m_nSelection) + if (nPage != (size_t)m_selection) { - wxNotebookEvent vEvent( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING + wxBookCtrlEvent vEvent( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING ,m_windowId ); vEvent.SetSelection(nPage); - vEvent.SetOldSelection(m_nSelection); + vEvent.SetOldSelection(m_selection); vEvent.SetEventObject(this); if (!HandleWindowEvent(vEvent) || vEvent.IsAllowed()) { @@ -239,7 +232,7 @@ int wxNotebook::SetSelection( size_t nPage ) ); } } - m_nSelection = nPage; + m_selection = nPage; return nPage; } // end of wxNotebook::SetSelection @@ -247,7 +240,7 @@ int wxNotebook::ChangeSelection( size_t nPage ) { wxCHECK_MSG( IS_VALID_PAGE(nPage), wxNOT_FOUND, wxT("notebook page out of range") ); - if (nPage != (size_t)m_nSelection) + if (nPage != (size_t)m_selection) { ::WinSendMsg( GetHWND() ,BKM_TURNTOPAGE @@ -255,7 +248,7 @@ int wxNotebook::ChangeSelection( size_t nPage ) ,(MPARAM)0 ); } - m_nSelection = nPage; + m_selection = nPage; return nPage; } @@ -408,7 +401,7 @@ wxNotebookPage* wxNotebook::DoRemovePage ( size_t nPage ) // // No selection any more, the notebook becamse empty // - m_nSelection = -1; + m_selection = wxNOT_FOUND; } else // notebook still not empty { @@ -417,23 +410,23 @@ wxNotebookPage* wxNotebook::DoRemovePage ( size_t nPage ) // int nSelNew; - if (m_nSelection == (int)GetPageCount()) + if (m_selection == (int)GetPageCount()) { // // Last page deleted, make the new last page the new selection // - nSelNew = m_nSelection - 1; + nSelNew = m_selection - 1; } - else if (nPage <= (size_t)m_nSelection) + else if (nPage <= (size_t)m_selection) { // // We must show another page, even if it has the same index // - nSelNew = m_nSelection; + nSelNew = m_selection; } else // nothing changes for the currently selected page { - nSelNew = -1; + nSelNew = wxNOT_FOUND; // // We still must refresh the current page: this needs to be done @@ -441,16 +434,16 @@ wxNotebookPage* wxNotebook::DoRemovePage ( size_t nPage ) // control (i.e. when there are too many pages) -- otherwise after // deleting a page nothing at all is shown // - m_pages[m_nSelection]->Refresh(); + m_pages[m_selection]->Refresh(); } - if (nSelNew != -1) + if (nSelNew != wxNOT_FOUND) { // - // m_nSelection must be always valid so reset it before calling + // m_selection must be always valid so reset it before calling // SetSelection() // - m_nSelection = -1; + m_selection = wxNOT_FOUND; SetSelection(nSelNew); } } @@ -473,7 +466,7 @@ bool wxNotebook::DeleteAllPages() ,(MPARAM)0 ,(MPARAM)BKA_ALL ); - m_nSelection = -1; + m_selection = wxNOT_FOUND; return true; } // end of wxNotebook::DeleteAllPages @@ -573,12 +566,12 @@ bool wxNotebook::InsertPage ( size_t nPage, // If the inserted page is before the selected one, we must update the // index of the selected page // - if (nPage <= (size_t)m_nSelection) + if (nPage <= (size_t)m_selection) { // // One extra page added // - m_nSelection++; + m_selection++; } if (pPage) @@ -653,19 +646,7 @@ bool wxNotebook::InsertPage ( size_t nPage, pPage->Show(false); } - // - // Some page should be selected: either this one or the first one if there is - // still no selection - // - int nSelNew = -1; - - if (bSelect) - nSelNew = nPage; - else if ( m_nSelection == -1 ) - nSelNew = 0; - - if (nSelNew != -1) - SetSelection(nSelNew); + DoSetSelectionAfterInsertion(nPage, bSelect); InvalidateBestSize(); @@ -683,7 +664,7 @@ void wxNotebook::OnSize( } // end of wxNotebook::OnSize void wxNotebook::OnSelChange ( - wxNotebookEvent& rEvent + wxBookCtrlEvent& rEvent ) { // @@ -729,7 +710,7 @@ void wxNotebook::OnSelChange ( wxNotebookPage* pPage = m_pages[nSel]; pPage->Show(true); - m_nSelection = nSel; + m_selection = nSel; } // @@ -750,8 +731,8 @@ void wxNotebook::OnSetFocus ( // // set focus to the currently selected page if any // - if (m_nSelection != -1) - m_pages[m_nSelection]->SetFocus(); + if (m_selection != wxNOT_FOUND) + m_pages[m_selection]->SetFocus(); rEvent.Skip(); } // end of wxNotebook::OnSetFocus @@ -790,7 +771,7 @@ void wxNotebook::OnNavigationKey ( // // No, it doesn't come from child, case (b): forward to a page // - if (m_nSelection != -1) + if (m_selection != wxNOT_FOUND) { // // So that the page knows that the event comes from it's parent @@ -798,7 +779,7 @@ void wxNotebook::OnNavigationKey ( // rEvent.SetEventObject(this); - wxWindow* pPage = m_pages[m_nSelection]; + wxWindow* pPage = m_pages[m_selection]; if (!pPage->HandleWindowEvent(rEvent)) {