X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5aed9d5067d3d828018e3e4a873cd2a450beea84..63691d4ff993bb4b7f09c3d0391084e2cd4f5ba4:/src/mac/notebmac.cpp diff --git a/src/mac/notebmac.cpp b/src/mac/notebmac.cpp index 88a922f993..3a45c336fa 100644 --- a/src/mac/notebmac.cpp +++ b/src/mac/notebmac.cpp @@ -31,7 +31,7 @@ // ---------------------------------------------------------------------------- // check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) +#define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount()) // ---------------------------------------------------------------------------- @@ -96,7 +96,7 @@ static inline int wxMacTabMargin(long nbStyle, long side) // but we have to special case wxNB_TOP since it is zero... if ( side == wxNB_TOP) { - if ( nbStyle != 0 && nbStyle & wxNB_LEFT|wxNB_RIGHT|wxNB_BOTTOM) + if ( nbStyle != 0 && nbStyle & (wxNB_LEFT|wxNB_RIGHT|wxNB_BOTTOM)) { return otherMargin; } @@ -175,6 +175,9 @@ bool wxNotebook::Create(wxWindow *parent, long style, const wxString& name) { + if ( !wxNotebookBase::Create(parent, id, pos, size, style, name) ) + return false; + Rect bounds ; Str255 title ; @@ -199,10 +202,9 @@ bool wxNotebook::Create(wxWindow *parent, // dtor wxNotebook::~wxNotebook() { - m_macControl = NULL ; } -wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) +wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const { wxSize sizeTotal = sizePage; @@ -256,7 +258,7 @@ void wxNotebook::SetPageSize(const wxSize& size) wxFAIL_MSG( wxT("wxNotebook::SetPageSize not implemented") ); } -int wxNotebook::SetSelection(int nPage) +int wxNotebook::SetSelection(size_t nPage) { if( !IS_VALID_PAGE(nPage) ) return m_nSelection ; @@ -268,7 +270,7 @@ int wxNotebook::SetSelection(int nPage) return m_nSelection; } -bool wxNotebook::SetPageText(int nPage, const wxString& strText) +bool wxNotebook::SetPageText(size_t nPage, const wxString& strText) { wxASSERT( IS_VALID_PAGE(nPage) ); @@ -279,7 +281,7 @@ bool wxNotebook::SetPageText(int nPage, const wxString& strText) return true; } -wxString wxNotebook::GetPageText(int nPage) const +wxString wxNotebook::GetPageText(size_t nPage) const { wxASSERT( IS_VALID_PAGE(nPage) ); @@ -287,14 +289,14 @@ wxString wxNotebook::GetPageText(int nPage) const return page->GetLabel(); } -int wxNotebook::GetPageImage(int nPage) const +int wxNotebook::GetPageImage(size_t nPage) const { wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, _T("invalid notebook page") ); return m_images[nPage]; } -bool wxNotebook::SetPageImage(int nPage, int nImage) +bool wxNotebook::SetPageImage(size_t nPage, int nImage) { wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, _T("invalid notebook page") ); @@ -319,7 +321,7 @@ bool wxNotebook::SetPageImage(int nPage, int nImage) // ---------------------------------------------------------------------------- // remove one page from the notebook, without deleting the window -wxNotebookPage* wxNotebook::DoRemovePage(int nPage) +wxNotebookPage* wxNotebook::DoRemovePage(size_t nPage) { wxCHECK( IS_VALID_PAGE(nPage), NULL ); wxNotebookPage* page = m_pages[nPage] ; @@ -327,7 +329,7 @@ wxNotebookPage* wxNotebook::DoRemovePage(int nPage) MacSetupTabs(); - if(m_nSelection >= GetPageCount()) { + if(m_nSelection >= (int)GetPageCount()) { m_nSelection = GetPageCount() - 1; } if(m_nSelection >= 0) { @@ -349,20 +351,17 @@ bool wxNotebook::DeleteAllPages() // same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, +bool wxNotebook::InsertPage(size_t nPage, wxNotebookPage *pPage, const wxString& strText, bool bSelect, int imageId) { - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); + if ( !wxNotebookBase::InsertPage(nPage, pPage, strText, bSelect, imageId) ) + return false; pPage->SetLabel(strText); - // save the pointer to the page - m_pages.Insert(pPage, nPage); - m_images.Insert(imageId, nPage); MacSetupTabs(); @@ -373,7 +372,7 @@ bool wxNotebook::InsertPage(int nPage, else if ( m_nSelection == -1 ) { m_nSelection = 0; } - else if (m_nSelection >= nPage) { + else if ((size_t)m_nSelection >= nPage) { m_nSelection++; } // don't show pages by default (we'll need to adjust their size first) @@ -404,7 +403,8 @@ void wxNotebook::MacSetupTabs() wxNotebookPage *page; ControlTabInfoRec info; - for(int ii = 0; ii < GetPageCount(); ii++) + const size_t countPages = GetPageCount(); + for(size_t ii = 0; ii < countPages; ii++) { page = m_pages[ii]; info.version = 0; @@ -414,7 +414,7 @@ void wxNotebook::MacSetupTabs() SetControlData( (ControlHandle) m_macControl, ii+1, kControlTabInfoTag, sizeof( ControlTabInfoRec) , (char*) &info ) ; SetTabEnabled( (ControlHandle) m_macControl , ii+1 , true ) ; -#if 0 // TARGET_CARBON +#if TARGET_CARBON if ( GetImageList() && GetPageImage(ii) >= 0 && UMAGetSystemVersion() >= 0x1020 ) { // tab controls only support very specific types of images, therefore we are doing an odyssee @@ -427,15 +427,15 @@ void wxNotebook::MacSetupTabs() wxMacCreateBitmapButton( &info , *GetImageList()->GetBitmap( GetPageImage(ii ) ) , kControlContentPictHandle) ; IconFamilyHandle iconFamily = (IconFamilyHandle) NewHandle(0) ; OSErr err = SetIconFamilyData( iconFamily, 'PICT' , (Handle) info.u.picture ) ; - wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ; + wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ; IconRef iconRef ; err = RegisterIconRefFromIconFamily( 'WXNG' , (OSType) 1 , iconFamily, &iconRef ) ; - wxASSERT_MSG( err == noErr , "Error when adding bitmap" ) ; + wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ; info.contentType = kControlContentIconRef ; info.u.iconRef = iconRef ; SetControlData( (ControlHandle) m_macControl, ii+1,kControlTabImageContentTag, sizeof( info ), (Ptr)&info ); - wxASSERT_MSG( err == noErr , "Error when setting icon on tab" ) ; + wxASSERT_MSG( err == noErr , wxT("Error when setting icon on tab") ) ; UnregisterIconRef( 'WXNG' , (OSType) 1 ) ; ReleaseIconRef( iconRef ) ; DisposeHandle( (Handle) iconFamily ) ; @@ -614,7 +614,7 @@ void wxNotebook::OnMouse( wxMouseEvent &event ) wxNotebookEvent changing(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId, ::GetControl32BitValue(control) - 1, m_nSelection); changing.SetEventObject(this); - ProcessEvent(changing); + GetEventHandler()->ProcessEvent(changing); if(changing.IsAllowed()) { @@ -626,7 +626,7 @@ void wxNotebook::OnMouse( wxMouseEvent &event ) ::GetControl32BitValue(control) - 1, m_nSelection); event.SetEventObject(this); - ProcessEvent(event); + GetEventHandler()->ProcessEvent(event); } } } @@ -634,7 +634,7 @@ void wxNotebook::OnMouse( wxMouseEvent &event ) } -void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart ) +void wxNotebook::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool WXUNUSED( mouseStillDown ) ) { #if 0 wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_windowId , ::GetControl32BitValue((ControlHandle)m_macControl) - 1, m_nSelection);