wxSize wxButton::DoGetBestSize() const
{
- if ( GetId() == wxID_HELP )
+ // We only use help button bezel if we don't have any (non standard) label
+ // to display in the button. Otherwise even wxID_HELP buttons look like
+ // normal push buttons.
+ if ( GetId() == wxID_HELP && GetLabel().empty() )
return wxSize( 23 , 23 ) ;
wxRect r ;
wxWidgetImplType* wxWidgetImpl::CreateButton( wxWindowMac* wxpeer,
wxWindowMac* WXUNUSED(parent),
wxWindowID id,
- const wxString& WXUNUSED(label),
+ const wxString& label,
const wxPoint& pos,
const wxSize& size,
long WXUNUSED(style),
NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
wxNSButton* v = [[wxNSButton alloc] initWithFrame:r];
- if ( id == wxID_HELP )
+ // We can't display a custom label inside a button with help bezel style so
+ // we only use it if we are using the default label. wxButton itself checks
+ // if the label is just "Help" in which case it discards it and passes us
+ // an empty string.
+ if ( id == wxID_HELP && label.empty() )
{
[v setBezelStyle:NSHelpButtonBezelStyle];
}
void wxWidgetCocoaImpl::SetDefaultButton( bool isDefault )
{
- if ( isDefault && [m_osxView isKindOfClass:[NSButton class]] )
- // NOTE: setKeyEquivalent: nil will trigger an assert
- // instead do not call in that case.
- [(NSButton*)m_osxView setKeyEquivalent: @"\r" ];
+ if ( [m_osxView isKindOfClass:[NSButton class]] )
+ {
+ if ( isDefault )
+ [(NSButton*)m_osxView setKeyEquivalent: @"\r" ];
+ else
+ [(NSButton*)m_osxView setKeyEquivalent: @"" ];
+ }
}
void wxWidgetCocoaImpl::PerformClick()