]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/button.cpp
use correct scale when drawing
[wxWidgets.git] / src / osx / carbon / button.cpp
index b2f0567d2b4249d706ae0a579d9cd01d76d26582..b96099be0d526c9c71c7142b2065ae2356bb8af5 100644 (file)
 //
 //
 
-wxSize wxButton::DoGetBestSize() const
-{
-    if ( GetId() == wxID_HELP )
-        return wxSize( 20 , 20 ) ;
-
-    wxSize sz = GetDefaultSize() ;
-
-    switch (GetWindowVariant())
-    {
-        case wxWINDOW_VARIANT_NORMAL:
-        case wxWINDOW_VARIANT_LARGE:
-            sz.y = 20 ;
-            break;
-
-        case wxWINDOW_VARIANT_SMALL:
-            sz.y = 17 ;
-            break;
-
-        case wxWINDOW_VARIANT_MINI:
-            sz.y = 15 ;
-            break;
-
-        default:
-            break;
-    }
-
-#if wxOSX_USE_CARBON
-    Rect    bestsize = { 0 , 0 , 0 , 0 } ;
-    m_peer->GetBestRect( &bestsize ) ;
-
-    int wBtn;
-    if ( EmptyRect( &bestsize ) || ( GetWindowStyle() & wxBU_EXACTFIT) )
-    {
-        Point bounds;
-
-        ControlFontStyleRec controlFont;
-        OSStatus err = m_peer->GetData<ControlFontStyleRec>( kControlEntireControl, kControlFontStyleTag, &controlFont );
-        verify_noerr( err );
-
-        // GetThemeTextDimensions will cache strings and the documentation 
-        // says not to use the NoCopy string creation calls. 
-        // This also means that we can't use CFSTR without 
-        // -fno-constant-cfstrings if the library might be unloaded, 
-        // as GetThemeTextDimensions may cache a pointer to our 
-        // unloaded segment. 
-        wxCFStringRef str( !m_label.empty() ? m_label : wxString(" "), 
-                          GetFont().GetEncoding() );
-
-#if wxOSX_USE_ATSU_TEXT
-        SInt16 baseline;
-        if ( m_font.MacGetThemeFontID() != kThemeCurrentPortFont )
-        {
-            err = GetThemeTextDimensions(
-                (CFStringRef)str,
-                m_font.MacGetThemeFontID(), kThemeStateActive, false, &bounds, &baseline );
-            verify_noerr( err );
-        }
-        else
-#endif
-        {
-            wxClientDC dc(const_cast<wxButton*>(this));
-            wxCoord width, height ;
-            dc.GetTextExtent( m_label , &width, &height);
-            bounds.h = width;
-            bounds.v = height;
-        }
-
-        wBtn = bounds.h + sz.y;
-    }
-    else
-    {
-        wBtn = bestsize.right - bestsize.left ;
-        // non 'normal' window variants don't return the correct height
-        // sz.y = bestsize.bottom - bestsize.top ;
-    }
-    if ((wBtn > sz.x) || ( GetWindowStyle() & wxBU_EXACTFIT))
-        sz.x = wBtn;
-#endif
-
-    return sz ;
-}
-
-wxSize wxButton::GetDefaultSize()
-{
-    int wBtn = 70 ;
-    int hBtn = 20 ;
-
-    return wxSize(wBtn, hBtn);
-}
-
 wxWidgetImplType* wxWidgetImpl::CreateButton( wxWindowMac* wxpeer,
                                     wxWindowMac* parent,
                                     wxWindowID id,
@@ -155,6 +65,7 @@ wxWidgetImplType* wxWidgetImpl::CreateButton( wxWindowMac* wxpeer,
                 break;
             case wxWINDOW_VARIANT_SMALL:
                 maxHeight = 17;
+                break;
             case wxWINDOW_VARIANT_MINI:
                 maxHeight = 15;
         }