X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3f30bd1a8de0003b8963ee269eef9b361249828a..a9e41db760792a4e666492d77290f4c51e9c5b19:/src/osx/cocoa/button.mm diff --git a/src/osx/cocoa/button.mm b/src/osx/cocoa/button.mm index 77e2d20676..13ae019fef 100644 --- a/src/osx/cocoa/button.mm +++ b/src/osx/cocoa/button.mm @@ -30,7 +30,11 @@ wxSize wxButton::DoGetBestSize() const m_peer->GetBestRect(&r); wxSize sz = r.GetSize(); - + sz.x = sz.x + MacGetLeftBorderSize() + + MacGetRightBorderSize(); + sz.y = sz.y + MacGetTopBorderSize() + + MacGetBottomBorderSize(); + const int wBtnStd = GetDefaultSize().x; if ( (sz.x < wBtnStd) && !HasFlag(wxBU_EXACTFIT) ) @@ -41,7 +45,7 @@ wxSize wxButton::DoGetBestSize() const wxSize wxButton::GetDefaultSize() { - return wxSize(84, 23); + return wxSize(84, 20); } @implementation wxNSButton @@ -124,6 +128,43 @@ public: [button setButtonType:NSMomentaryChangeButton]; } + void GetLayoutInset(int &left , int &top , int &right, int &bottom) const + { + left = top = right = bottom = 0; + NSControlSize size = NSRegularControlSize; + if ( [m_osxView respondsToSelector:@selector(controlSize)] ) + size = (NSControlSize) [m_osxView controlSize]; + else if ([m_osxView respondsToSelector:@selector(cell)]) + { + id cell = [(id)m_osxView cell]; + if ([cell respondsToSelector:@selector(controlSize)]) + size = [cell controlSize]; + } + + if ( [GetNSButton() bezelStyle] == NSRoundedBezelStyle ) + { + switch( size ) + { + case NSRegularControlSize: + left = right = 6; + top = 4; + bottom = 8; + break; + case NSSmallControlSize: + left = right = 5; + top = 4; + bottom = 7; + break; + case NSMiniControlSize: + left = right = 1; + top = 0; + bottom = 2; + break; + } + } + } + + private: NSButton *GetNSButton() const {