X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ddd7e4307b4a58a21e8a5eb04afe06e1fe65f7d8..7c60222510bc5e197b12f153c4bf05db66cb0f4a:/src/osx/notebook_osx.cpp?ds=sidebyside diff --git a/src/osx/notebook_osx.cpp b/src/osx/notebook_osx.cpp index 0f0ea5f37b..90dc488863 100644 --- a/src/osx/notebook_osx.cpp +++ b/src/osx/notebook_osx.cpp @@ -145,7 +145,7 @@ bool wxNotebook::SetPageImage(size_t nPage, int nImage) { wxCHECK_MSG( IS_VALID_PAGE(nPage), false, wxT("SetPageImage: invalid notebook page") ); - wxCHECK_MSG( m_imageList && nImage < m_imageList->GetImageCount(), false, + wxCHECK_MSG( HasImageList() && nImage < GetImageList()->GetImageCount(), false, wxT("SetPageImage: invalid image index") ); if ( nImage != m_images[nPage] ) @@ -247,64 +247,7 @@ bool wxNotebook::InsertPage(size_t nPage, int wxNotebook::HitTest(const wxPoint& pt, long *flags) const { - int resultV = wxNOT_FOUND; -#ifdef __WXOSX_CARBON__ - const int countPages = GetPageCount(); - - // we have to convert from Client to Window relative coordinates - wxPoint adjustedPt = pt + GetClientAreaOrigin(); - // and now to HIView native ones - adjustedPt.x -= MacGetLeftBorderSize() ; - adjustedPt.y -= MacGetTopBorderSize() ; - - HIPoint hipoint= { adjustedPt.x , adjustedPt.y } ; - HIViewPartCode outPart = 0 ; - OSStatus err = HIViewGetPartHit( GetPeer()->GetControlRef(), &hipoint, &outPart ); - - int max = GetPeer()->GetMaximum() ; - if ( outPart == 0 && max > 0 ) - { - // this is a hack, as unfortunately a hit on an already selected tab returns 0, - // so we have to go some extra miles to make sure we select something different - // and try again .. - int val = GetPeer()->GetValue() ; - int maxval = max ; - if ( max == 1 ) - { - GetPeer()->SetMaximum( 2 ) ; - maxval = 2 ; - } - - if ( val == 1 ) - GetPeer()->SetValue( maxval ) ; - else - GetPeer()->SetValue( 1 ) ; - - err = HIViewGetPartHit( GetPeer()->GetControlRef(), &hipoint, &outPart ); - - GetPeer()->SetValue( val ) ; - if ( max == 1 ) - GetPeer()->SetMaximum( 1 ) ; - } - - if ( outPart >= 1 && outPart <= countPages ) - resultV = outPart - 1 ; - - if (flags != NULL) - { - *flags = 0; - - // we cannot differentiate better - if (resultV >= 0) - *flags |= wxBK_HITTEST_ONLABEL; - else - *flags |= wxBK_HITTEST_NOWHERE; - } -#else - wxUnusedVar(pt); - wxUnusedVar(flags); -#endif - return resultV; + return GetPeer()->TabHitTest(pt,flags); } // Added by Mark Newsam @@ -342,6 +285,7 @@ void wxNotebook::OnSize(wxSizeEvent& event) pPage->SetSize(rect, wxSIZE_FORCE_EVENT); } +#if 0 // deactivate r65078 for the moment // If the selected page is hidden at this point, the notebook // has become visible for the first time after creation, and // we postponed showing the page in ChangePage(). @@ -355,6 +299,7 @@ void wxNotebook::OnSize(wxSizeEvent& event) pPage->SetFocus(); } } +#endif // Processing continues to next OnSize event.Skip(); @@ -480,6 +425,7 @@ void wxNotebook::ChangePage(int nOldSel, int nSel) if ( nSel != wxNOT_FOUND ) { wxNotebookPage *pPage = m_pages[nSel]; +#if 0 // deactivate r65078 for the moment if ( IsShownOnScreen() ) { pPage->Show( true ); @@ -494,6 +440,10 @@ void wxNotebook::ChangePage(int nOldSel, int nSel) // We Show() the selected page in our OnSize handler, // unless it already is shown. } +#else + pPage->Show( true ); + pPage->SetFocus(); +#endif } m_selection = nSel; @@ -508,7 +458,7 @@ bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) ) if ( newSel != m_selection ) { wxBookCtrlEvent changing( - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId, + wxEVT_NOTEBOOK_PAGE_CHANGING, m_windowId, newSel , m_selection ); changing.SetEventObject( this ); HandleWindowEvent( changing ); @@ -516,10 +466,12 @@ bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) ) if ( changing.IsAllowed() ) { wxBookCtrlEvent event( - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId, + wxEVT_NOTEBOOK_PAGE_CHANGED, m_windowId, newSel, m_selection ); event.SetEventObject( this ); HandleWindowEvent( event ); + + m_selection = newSel; } else {