X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e778ad8607ac24c10a854709114bd2c90765618c..024e0f69817d09af727310f40e852f92c7513276:/src/mac/carbon/control.cpp?ds=sidebyside diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index 8f7542389a..49be26a16c 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -207,13 +207,16 @@ void wxControl::SetLabel(const wxString& title) if ( m_macControl ) { - UMASetControlTitle( (ControlHandle) m_macControl , m_label ) ; + UMASetControlTitle( (ControlHandle) m_macControl , m_label , m_font.GetEncoding() ) ; } Refresh() ; } wxSize wxControl::DoGetBestSize() const { + if ( (ControlHandle) m_macControl == NULL ) + return wxWindow::DoGetBestSize() ; + Rect bestsize = { 0 , 0 , 0 , 0 } ; short baselineoffset ; int bestWidth, bestHeight ; @@ -235,18 +238,7 @@ wxSize wxControl::DoGetBestSize() const } } - if ( IsKindOf( CLASSINFO( wxButton ) ) ) - { - bestWidth = m_label.Length() * 8 + 12 ; - if ( bestWidth < 70 ) - bestWidth = 70 ; - } - else if ( IsKindOf( CLASSINFO( wxStaticText ) ) ) - { - bestWidth = m_label.Length() * 8 ; - } - else - bestWidth = bestsize.right - bestsize.left ; + bestWidth = bestsize.right - bestsize.left ; bestWidth += 2 * m_macHorizontalBorder ; @@ -290,7 +282,8 @@ void wxAssociateControlWithMacControl(ControlHandle inControl, wxControl *contro void wxRemoveMacControlAssociation(wxControl *control) { - wxWinMacControlList->DeleteObject(control); + if ( wxWinMacControlList ) + wxWinMacControlList->DeleteObject(control); } void wxControl::MacPreControlCreate( wxWindow *parent, wxWindowID id, wxString label , @@ -337,7 +330,7 @@ void wxControl::MacPostControlCreate() controlstyle.flags = kControlUseFontMask ; if (IsKindOf( CLASSINFO( wxButton ) ) ) - controlstyle.font = kControlFontSmallSystemFont ; // eventually kControlFontBigSystemFont ; + controlstyle.font = kControlFontBigSystemFont ; // eventually kControlFontBigSystemFont ; else controlstyle.font = kControlFontSmallSystemFont ; @@ -346,7 +339,7 @@ void wxControl::MacPostControlCreate() ControlHandle container = (ControlHandle) GetParent()->MacGetContainerForEmbedding() ; wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ; ::EmbedControl( (ControlHandle) m_macControl , container ) ; - m_macControlIsShown = true ; + m_macControlIsShown = MacIsReallyShown() ; wxAssociateControlWithMacControl( (ControlHandle) m_macControl , this ) ; if ( wxMacSetupControlBackgroundUPP == NULL ) @@ -399,10 +392,11 @@ void wxControl::MacPostControlCreate() SetSize(pos.x, pos.y, new_size.x, new_size.y); #if wxUSE_UNICODE - UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) ) ; + UMASetControlTitle( (ControlHandle) m_macControl , wxStripMenuCodes(m_label) , m_font.GetEncoding() ) ; #endif - UMAShowControl( (ControlHandle) m_macControl ) ; + if ( m_macControlIsShown ) + UMAShowControl( (ControlHandle) m_macControl ) ; SetCursor( *wxSTANDARD_CURSOR ) ; @@ -460,8 +454,7 @@ void wxControl::MacAdjustControlRect() m_height += 2 * m_macVerticalBorder + MacGetTopBorderSize() + MacGetBottomBorderSize() ; } - MacUpdateDimensions() ; -// UMASizeControl( (ControlHandle) m_macControl , m_width - 2 * m_macHorizontalBorder, m_height - 2 * m_macVerticalBorder ) ; + MacUpdateDimensions() ; } }