// ----------------------------------------------------------------------------
// check that the page index is valid
-#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount()))
+#define IS_VALID_PAGE(nPage) ((nPage) < GetPageCount())
// ----------------------------------------------------------------------------
// 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;
}
long style,
const wxString& name)
{
+ if ( !wxNotebookBase::Create(parent, id, pos, size, style, name) )
+ return false;
+
Rect bounds ;
Str255 title ;
// dtor
wxNotebook::~wxNotebook()
{
- m_macControl = NULL ;
}
-wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage)
+wxSize wxNotebook::CalcSizeFromPage(const wxSize& sizePage) const
{
wxSize sizeTotal = sizePage;
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 ;
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) );
return true;
}
-wxString wxNotebook::GetPageText(int nPage) const
+wxString wxNotebook::GetPageText(size_t nPage) const
{
wxASSERT( IS_VALID_PAGE(nPage) );
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") );
// ----------------------------------------------------------------------------
// 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] ;
MacSetupTabs();
- if(m_nSelection >= GetPageCount()) {
+ if(m_nSelection >= (int)GetPageCount()) {
m_nSelection = GetPageCount() - 1;
}
if(m_nSelection >= 0) {
// 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();
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)
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;
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
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 ) ;
}
-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);