]> git.saurik.com Git - wxWidgets.git/commitdiff
Allow the native toolbar to have more han one button toggled at a time.
authorRobin Dunn <robin@alldunn.com>
Fri, 6 Oct 2006 04:47:30 +0000 (04:47 +0000)
committerRobin Dunn <robin@alldunn.com>
Fri, 6 Oct 2006 04:47:30 +0000 (04:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41657 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/mac/carbon/toolbar.cpp

index f338f0fc7798cfa0378ca1d96cb78acfffcab281..94228ad0bfcfb9905e56c3e5f3f9d3dbb7f2d89b 100644 (file)
@@ -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 );
     }