]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/toolbar.cpp
Use empty check consistent with other parts.
[wxWidgets.git] / src / mac / carbon / toolbar.cpp
index cdefd9ccbb619587c77bd77afbde50855b0806cb..718123647d8a6c254eb224e1293507e9fa61a475 100644 (file)
@@ -240,20 +240,20 @@ void wxToolBarTool::SetPosition(const wxPoint& position)
     m_x = position.x;
     m_y = position.y;
 
-    if ( IsButton() )
+    int x , y ;
+    x = y = 0 ;
+    int mac_x = position.x ;
+    int mac_y = position.y ;
+
+    if ( ! GetToolBar()->MacGetTopLevelWindow()->MacUsesCompositing() )
     {
-        int x , y ;
-        x = y = 0 ;
-        int mac_x = position.x ;
-        int mac_y = position.y ;
-#ifdef __WXMAC_OSX__
-        // already correctly set up
-#else
-        WindowRef rootwindow = (WindowRef) GetToolBar()->MacGetTopLevelWindowRef() ;    
         GetToolBar()->MacWindowToRootWindow( &x , &y ) ;
         mac_x += x;
         mac_y += y;
-#endif
+    }
+
+    if ( IsButton() )
+    {
         Rect contrlRect ;       
         GetControlBounds( m_controlHandle , &contrlRect ) ; 
         int former_mac_x = contrlRect.left ;
@@ -273,11 +273,6 @@ void wxToolBarTool::SetPosition(const wxPoint& position)
     {
         // separator 
 #ifdef __WXMAC_OSX__
-        int x , y ;
-        x = y = 0 ;
-        int mac_x = position.x ;
-        int mac_y = position.y ;
-
         Rect contrlRect ;       
         GetControlBounds( m_controlHandle , &contrlRect ) ; 
         int former_mac_x = contrlRect.left ;
@@ -369,7 +364,7 @@ wxToolBarTool::wxToolBarTool(wxToolBar *tbar,
     else
     {
         ControlButtonContentInfo info ;
-        wxMacCreateBitmapButton( &info , GetNormalBitmap() ) ;
+        wxMacCreateBitmapButton( &info , GetNormalBitmap()  , kControlContentIconRef ) ;
         
 #ifdef __WXMAC_OSX__
         CreateIconControl( window , &toolrect , &info , false , &m_controlHandle ) ;
@@ -695,12 +690,30 @@ bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *tool)
 void wxToolBar::OnPaint(wxPaintEvent& event)
 {
     wxPaintDC dc(this) ;
-#if wxMAC_USE_CORE_GRAPHICS
-    // leave the background as it is (striped or metal)
-#else
-    wxMacPortSetter helper(&dc) ;
+
     int w, h ;
     GetSize( &w , &h ) ;
+#if wxMAC_USE_CORE_GRAPHICS && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
+    if ( !MacGetTopLevelWindow()->MacGetMetalAppearance() )
+    {
+        if ( UMAGetSystemVersion() >= 0x1030 )
+        {
+            HIThemePlacardDrawInfo info ;
+            memset( &info, 0 , sizeof( info ) ) ;
+            info.version = 0 ;
+            info.state = IsEnabled() ? kThemeStateActive : kThemeStateInactive ;
+            
+            CGContextRef cgContext = (CGContextRef) MacGetCGContextRef() ;
+            HIRect rect = CGRectMake( 0 , 0 , w , h ) ;
+            HIThemeDrawPlacard( &rect , & info , cgContext, kHIThemeOrientationNormal) ;
+        }
+    }
+    else
+    {
+        // leave the background as it is (striped or metal)
+    }
+#else
+    wxMacPortSetter helper(&dc) ;
     
     Rect toolbarrect = { dc.YLOG2DEVMAC(0) , dc.XLOG2DEVMAC(0) , 
         dc.YLOG2DEVMAC(h) , dc.XLOG2DEVMAC(w) } ;