From ce9da810d8d0bc3ea073542e93a3be0a693aa123 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 6 Oct 2006 04:47:30 +0000 Subject: [PATCH] Allow the native toolbar to have more han one button toggled at a time. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/mac/carbon/toolbar.cpp | 43 +++++++++++++------------------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp index f338f0fc77..94228ad0bf 100644 --- a/src/mac/carbon/toolbar.cpp +++ b/src/mac/carbon/toolbar.cpp @@ -437,33 +437,6 @@ void wxToolBarTool::SetPosition( const wxPoint& position ) void wxToolBarTool::UpdateToggleImage( bool toggle ) { -#if wxMAC_USE_NATIVE_TOOLBAR - -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4 -#define kHIToolbarItemSelected (1 << 7) -#endif - - // FIXME: this should be a OSX v10.4 runtime check - if (m_toolbarItemRef != NULL) - { - OptionBits addAttrs, removeAttrs; - OSStatus result; - - if (toggle) - { - addAttrs = kHIToolbarItemSelected; - removeAttrs = kHIToolbarItemNoAttributes; - } - else - { - addAttrs = kHIToolbarItemNoAttributes; - removeAttrs = kHIToolbarItemSelected; - } - - result = HIToolbarItemChangeAttributes( m_toolbarItemRef, addAttrs, removeAttrs ); - } -#endif - #ifdef __WXMAC_OSX__ if ( toggle ) { @@ -473,14 +446,20 @@ void wxToolBarTool::UpdateToggleImage( bool toggle ) wxMemoryDC dc; dc.SelectObject( bmp ); - dc.SetPen( wxNullPen ); - dc.SetBackground( *wxWHITE ); + dc.SetPen( wxPen(*wxBLACK) ); + dc.SetBrush( wxBrush( *wxLIGHT_GREY )); dc.DrawRectangle( 0, 0, w, h ); dc.DrawBitmap( m_bmpNormal, 0, 0, true ); dc.SelectObject( wxNullBitmap ); ControlButtonContentInfo info; wxMacCreateBitmapButton( &info, bmp ); SetControlData( m_controlHandle, 0, kControlIconContentTag, sizeof(info), (Ptr)&info ); +#if wxMAC_USE_NATIVE_TOOLBAR + if (m_toolbarItemRef != NULL) + { + HIToolbarItemSetIconRef( m_toolbarItemRef, info.u.iconRef ); + } +#endif wxMacReleaseBitmapButton( &info ); } else @@ -488,6 +467,12 @@ void wxToolBarTool::UpdateToggleImage( bool toggle ) ControlButtonContentInfo info; wxMacCreateBitmapButton( &info, m_bmpNormal ); SetControlData( m_controlHandle, 0, kControlIconContentTag, sizeof(info), (Ptr)&info ); +#if wxMAC_USE_NATIVE_TOOLBAR + if (m_toolbarItemRef != NULL) + { + HIToolbarItemSetIconRef( m_toolbarItemRef, info.u.iconRef ); + } +#endif wxMacReleaseBitmapButton( &info ); }