// when embedding native controls in the native toolbar we must make sure the
// control does not get deleted behind our backs, so the retain count gets increased
-// (after creation it is 1), first be the creation of the custom HIToolbarItem wrapper
+// (after creation it is 1), first be the creation of the custom HIToolbarItem wrapper
// object, and second by the code 'creating' the custom HIView (which is the same as the
// already existing native control, therefore we just increase the ref count)
// when this view is removed from the native toolbar its count gets decremented again
DisposeControl( m_controlHandle );
else
{
- // the embedded control is not under the responsibility of the tool, it will be disposed of in the
+ // the embedded control is not under the responsibility of the tool, it gets disposed of in the
// proper wxControl destructor
- wxASSERT( IsValidControlHandle(GetControl()->GetPeer()->GetControlRef() )) ;
}
m_controlHandle = NULL ;
}
- m_control = NULL;
#if wxMAC_USE_NATIVE_TOOLBAR
if ( m_toolbarItemRef )
{
CFIndex count = CFGetRetainCount( m_toolbarItemRef ) ;
- // different behaviour under Leopard
- if ( UMAGetSystemVersion() < 0x1050 )
- {
- wxASSERT_MSG( count == 1 , wxT("Reference Count of native tool was not 1 in wxToolBarTool destructor") );
- }
+ // different behaviour under Leopard
+ if ( UMAGetSystemVersion() < 0x1050 )
+ {
+ if ( count != 1 )
+ {
+ wxFAIL_MSG("Reference count of native tool was not 1 in wxToolBarTool destructor");
+ }
+ }
wxTheApp->MacAddToAutorelease(m_toolbarItemRef);
CFRelease(m_toolbarItemRef);
m_toolbarItemRef = NULL;
}
-#endif
+#endif // wxMAC_USE_NATIVE_TOOLBAR
}
wxSize GetSize() const
HIToolbarItemSetHelpText(
m_toolbarItemRef,
- wxMacCFStringHolder( GetShortHelp(), enc ),
- wxMacCFStringHolder( GetLongHelp(), enc ) );
+ wxCFStringRef( GetShortHelp(), enc ),
+ wxCFStringRef( GetLongHelp(), enc ) );
}
}
if ( mac_x != former_mac_x || mac_y != former_mac_y )
{
- UMAMoveControl( m_controlHandle, mac_x, mac_y );
+ ::MoveControl( m_controlHandle, mac_x, mac_y );
}
}
else if ( IsControl() )
int former_mac_y = contrlRect.top;
if ( mac_x != former_mac_x || mac_y != former_mac_y )
- UMAMoveControl( m_controlHandle, mac_x, mac_y );
+ ::MoveControl( m_controlHandle, mac_x, mac_y );
}
}
// depending whether the wxControl corresponding to this HIView has already been destroyed or
// not, ref counts differ, so we cannot assert a special value
CFIndex count = CFGetRetainCount( viewRef ) ;
- wxASSERT_MSG( count >=1 , wxT("Reference Count of native tool was illegal before removal") );
if ( count >= 1 )
+ {
+ wxFAIL_MSG("Reference count of native tool was illegal before removal");
+
CFRelease( viewRef ) ;
+ }
}
- free( object ) ;
- result = noErr;
+ free( object ) ;
+ result = noErr;
}
break;
}
// Extra width to avoid edge of combobox being cut off
sz.x += 3;
-
+
HISize min, max;
min.width = max.width = sz.x ;
min.height = max.height = sz.y ;
{
wxString labelStr = wxString::Format( wxT("%p"), this );
err = HIToolbarCreate(
- wxMacCFStringHolder( labelStr, wxFont::GetDefaultEncoding() ), 0,
+ wxCFStringRef( labelStr, wxFont::GetDefaultEncoding() ), 0,
(HIToolbarRef*) &m_macHIToolbarRef );
if (m_macHIToolbarRef != NULL)
MacInstallNativeToolbar( false );
CFIndex count = CFGetRetainCount( m_macHIToolbarRef ) ;
- // Leopard seems to have one refcount more, so we cannot check reliably at the moment
- if ( UMAGetSystemVersion() < 0x1050 )
- {
- wxASSERT_MSG( count == 1 , wxT("Reference Count of native control was not 1 in wxToolBar destructor") );
- }
+ // Leopard seems to have one refcount more, so we cannot check reliably at the moment
+ if ( UMAGetSystemVersion() < 0x1050 )
+ {
+ if ( count != 1 )
+ {
+ wxFAIL_MSG("Reference count of native control was not 1 in wxToolBar destructor");
+ }
+ }
CFRelease( (HIToolbarRef)m_macHIToolbarRef );
m_macHIToolbarRef = NULL;
}
if ( tool2->IsControl() )
{
CFIndex count = CFGetRetainCount( tool2->GetControl()->GetPeer()->GetControlRef() ) ;
- wxASSERT_MSG( count == 3 || count == 2 , wxT("Reference Count of native tool was illegal before removal") );
+ if ( count != 3 && count != 2 )
+ {
+ wxFAIL_MSG("Reference count of native tool was illegal before removal");
+ }
+
wxASSERT( IsValidControlHandle(tool2->GetControl()->GetPeer()->GetControlRef() )) ;
}
err = HIToolbarRemoveItemAtIndex(refTB, idx);
if ( tool2->IsControl() )
{
CFIndex count = CFGetRetainCount( tool2->GetControl()->GetPeer()->GetControlRef() ) ;
- wxASSERT_MSG( count == 2 , wxT("Reference Count of native tool was not 2 after removal") );
+ if ( count != 2 )
+ {
+ wxFAIL_MSG("Reference count of native tool was not 2 after removal");
+ }
+
wxASSERT( IsValidControlHandle(tool2->GetControl()->GetPeer()->GetControlRef() )) ;
}
if ( tool->IsControl() )
{
CFIndex count = CFGetRetainCount( tool->GetControl()->GetPeer()->GetControlRef() ) ;
- wxASSERT_MSG( count == 3 || count == 2, wxT("Reference Count of native tool was illegal after insertion") );
+ if ( count != 3 && count != 2 )
+ {
+ wxFAIL_MSG("Reference count of native tool was illegal before removal");
+ }
wxASSERT( IsValidControlHandle(tool->GetControl()->GetPeer()->GetControlRef() )) ;
}
}
Rect toolrect = { 0, 0, toolSize.y, toolSize.x };
ControlRef controlHandle = NULL;
OSStatus err = 0;
- tool->Attach( this );
#if wxMAC_USE_NATIVE_TOOLBAR
wxString label = tool->GetLabel();
HIToolbarItemRef item;
wxString labelStr = wxString::Format(wxT("%p"), tool);
err = HIToolbarItemCreate(
- wxMacCFStringHolder(labelStr, wxFont::GetDefaultEncoding()),
+ wxCFStringRef(labelStr, wxFont::GetDefaultEncoding()),
kHIToolbarItemCantBeRemoved | kHIToolbarItemAnchoredLeft | kHIToolbarItemAllowDuplicates, &item );
if (err == noErr)
{
InstallEventHandler(
HIObjectGetEventTarget(item), GetwxMacToolBarEventHandlerUPP(),
GetEventTypeCount(toolBarEventList), toolBarEventList, tool, NULL );
- HIToolbarItemSetLabel( item, wxMacCFStringHolder(label, m_font.GetEncoding()) );
+ HIToolbarItemSetLabel( item, wxCFStringRef(label, GetFont().GetEncoding()) );
HIToolbarItemSetImage( item, info2.u.imageRef );
HIToolbarItemSetCommandID( item, kHIToolbarCommandPressAction );
tool->SetToolbarItemRef( item );
#if 0
SetBevelButtonTextPlacement( m_controlHandle, kControlBevelButtonPlaceBelowGraphic );
- UMASetControlTitle( m_controlHandle, label, wxFont::GetDefaultEncoding() );
+ SetControlTitleWithCFString( m_controlHandle , wxCFStringRef( label, wxFont::GetDefaultEncoding() );
#endif
InstallControlEventHandler(
ControlRef container = (ControlRef) GetHandle();
wxASSERT_MSG( container != NULL, wxT("No valid Mac container control") );
- UMAShowControl( controlHandle );
+ SetControlVisibility( controlHandle, true, true );
::EmbedControl( controlHandle, container );
}
wxSize sz = ((wxToolBarTool*)tool)->GetSize();
- tool->Detach();
-
#if wxMAC_USE_NATIVE_TOOLBAR
CFIndex removeIndex = tool->GetIndex();
#endif
}
}
#endif
- switch ( tool->GetStyle() )
- {
- case wxTOOL_STYLE_CONTROL:
- if ( tool->GetControl() )
- tool->GetControl()->Destroy();
- break;
- case wxTOOL_STYLE_BUTTON:
- case wxTOOL_STYLE_SEPARATOR:
- // nothing special
- break;
-
- default:
- break;
- }
tool->ClearControl();
// and finally reposition all the controls after this one