-
- MacPreControlCreate( parent , id , label , pos , size ,style, validator , name , &bounds , title ) ;
-
- m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , false , 0 , 0 , 1,
- kControlPushButtonProc , (long) this ) ;
- wxASSERT_MSG( (ControlHandle) m_macControl != NULL , "No valid mac control" ) ;
-
- MacPostControlCreate() ;
-
- return TRUE;
+ else if ( label.Find('\n' ) == wxNOT_FOUND && label.Find('\r' ) == wxNOT_FOUND)
+ {
+ // Button height is static in Mac, can't be changed, so we need to force it here
+ if ( GetWindowVariant() == wxWINDOW_VARIANT_NORMAL || GetWindowVariant() == wxWINDOW_VARIANT_LARGE )
+ {
+ bounds.bottom = bounds.top + 20 ;
+ m_maxHeight = 20 ;
+ }
+ else if ( GetWindowVariant() == wxWINDOW_VARIANT_SMALL )
+ {
+ bounds.bottom = bounds.top + 17 ;
+ m_maxHeight = 17 ;
+ }
+ else if ( GetWindowVariant() == wxWINDOW_VARIANT_MINI )
+ {
+ bounds.bottom = bounds.top + 15 ;
+ m_maxHeight = 15 ;
+ }
+ err = CreatePushButtonControl(
+ MAC_WXHWND(parent->MacGetTopLevelWindowRef()),
+ &bounds, CFSTR(""), m_peer->GetControlRefAddr() );
+ }
+ else
+ {
+ ControlButtonContentInfo info ;
+ info.contentType = kControlNoContent ;
+ err = CreateBevelButtonControl(
+ MAC_WXHWND(parent->MacGetTopLevelWindowRef()) , &bounds, CFSTR(""),
+ kControlBevelButtonLargeBevel, kControlBehaviorPushbutton,
+ &info, 0, 0, 0, m_peer->GetControlRefAddr() );
+ }
+
+ verify_noerr( err );
+ wxASSERT_MSG( m_peer != NULL && m_peer->Ok() , wxT("No valid Mac control") ) ;
+
+ MacPostControlCreate( pos, size );
+
+ return true;