// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma implementation "notebook.h"
-#endif
-
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
+#if wxUSE_NOTEBOOK
+
#include "wx/app.h"
#include "wx/string.h"
#include "wx/log.h"
tabsize = kControlSizeSmall;
}
- m_peer = new wxMacControl() ;
+ m_peer = new wxMacControl(this) ;
verify_noerr ( CreateTabsControl( MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds ,
tabsize , tabstyle, 0, NULL, m_peer->GetControlRefAddr() ) );
m_peer->SetMaximum( GetPageCount() ) ;
wxNotebookPage *page;
- ControlTabInfoRec info;
+ ControlTabInfoRecV1 info;
const size_t countPages = GetPageCount();
for(size_t ii = 0; ii < countPages; ii++)
{
page = m_pages[ii];
- info.version = 0;
+ info.version = kControlTabInfoVersionOne;
info.iconSuiteID = 0;
- wxMacStringToPascal( page->GetLabel() , info.name ) ;
- m_peer->SetData<ControlTabInfoRec>( ii+1, kControlTabInfoTag, &info ) ;
- m_peer->SetTabEnabled( ii + 1 , true ) ;
-#if TARGET_CARBON
+ wxMacCFStringHolder cflabel( page->GetLabel() , m_font.GetEncoding() ) ;
+ info.name = cflabel ;
+ m_peer->SetData<ControlTabInfoRecV1>( ii+1, kControlTabInfoTag, &info ) ;
+
if ( GetImageList() && GetPageImage(ii) >= 0 && UMAGetSystemVersion() >= 0x1020 )
{
- // tab controls only support very specific types of images, therefore we are doing an odyssee
- // accross the icon worlds (even Apple DTS did not find a shorter path)
- // in order not to pollute the icon registry we put every icon into (OSType) 1 and immediately
- // afterwards Unregister it (IconRef is ref counted, so it will stay on the tab even if we
- // unregister it) in case this will ever lead to having the same icon everywhere add some kind
- // of static counter
- const wxBitmap* bmap = GetImageList()->GetBitmap( GetPageImage(ii ) ) ;
- if ( bmap )
+ const wxBitmap bmap = GetImageList()->GetBitmap( GetPageImage(ii ) ) ;
+ if ( bmap.Ok() )
{
- wxBitmap scaledBitmap ;
- if ( bmap->GetWidth() != 16 || bmap->GetHeight() != 16 )
- {
- scaledBitmap = wxBitmap( bmap->ConvertToImage().Scale(16,16) ) ;
- bmap = &scaledBitmap ;
- }
ControlButtonContentInfo info ;
- wxMacCreateBitmapButton( &info , *bmap , kControlContentPictHandle) ;
- IconFamilyHandle iconFamily = (IconFamilyHandle) NewHandle(0) ;
- OSErr err = SetIconFamilyData( iconFamily, 'PICT' , (Handle) info.u.picture ) ;
- wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ;
- IconRef iconRef ;
- err = RegisterIconRefFromIconFamily( 'WXNG' , (OSType) 1, iconFamily, &iconRef ) ;
- wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ;
- info.contentType = kControlContentIconRef ;
- info.u.iconRef = iconRef ;
- m_peer->SetData<ControlButtonContentInfo>( ii+1,kControlTabImageContentTag, &info );
+
+ wxMacCreateBitmapButton( &info , bmap ) ;
+#ifdef __WXDEBUG__
+ OSStatus err =
+#endif // __WXDEBUG__
+ m_peer->SetData<ControlButtonContentInfo>( ii+1,kControlTabImageContentTag, &info );
wxASSERT_MSG( err == noErr , wxT("Error when setting icon on tab") ) ;
- if ( UMAGetSystemVersion() < 0x1030 )
- {
- UnregisterIconRef( 'WXNG' , (OSType) 1 ) ;
- }
-
- ReleaseIconRef( iconRef ) ;
- DisposeHandle( (Handle) iconFamily ) ;
+ wxMacReleaseBitmapButton( &info ) ;
}
}
-#endif
+ m_peer->SetTabEnabled( ii + 1 , true ) ;
}
Rect bounds;
m_peer->GetRectInWindowCoords( &bounds ) ;
return status ;
}
+#endif
+