X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e40298d54ecd5b109222a7c60aa2ef084a304d69..9f7948af90ec2e3b907944e7d979f0863910c5c8:/src/mac/carbon/stattext.cpp?ds=sidebyside diff --git a/src/mac/carbon/stattext.cpp b/src/mac/carbon/stattext.cpp index fc0a5726f9..4c8b9414a4 100644 --- a/src/mac/carbon/stattext.cpp +++ b/src/mac/carbon/stattext.cpp @@ -41,25 +41,20 @@ bool wxStaticText::Create(wxWindow *parent, wxWindowID id, long style, const wxString& name) { - SetName(name); - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; m_label = wxStripMenuCodes(label) ; - bool ret = wxControl::Create( parent, id, pos, size, style , wxDefaultValidator , name ); + if ( !wxControl::Create( parent, id, pos, size, style, + wxDefaultValidator , name ) ) + { + return false; + } + SetBestSize( size ) ; - return ret; + return true; } -const wxString punct = " ,.-;:!?"; +const wxString punct = wxT(" ,.-;:!?"); void wxStaticText::DrawParagraph(wxDC &dc, wxString paragraph, int &y) { @@ -68,7 +63,7 @@ void wxStaticText::DrawParagraph(wxDC &dc, wxString paragraph, int &y) if (paragraph.Length() == 0) { // empty line - dc.GetTextExtent( "H", &width, &height ); + dc.GetTextExtent( wxT("H"), &width, &height ); y += height; return; @@ -127,7 +122,7 @@ void wxStaticText::DrawParagraph(wxDC &dc, wxString paragraph, int &y) } dc.DrawText( paragraph, pos , y) ; - paragraph=""; + paragraph=wxEmptyString; y += height ; } } @@ -165,7 +160,7 @@ void wxStaticText::OnDraw( wxDC &dc ) if (text[i] == 13 || text[i] == 10) { DrawParagraph(dc, paragraph,y); - paragraph = "" ; + paragraph = wxEmptyString ; } else { @@ -238,8 +233,11 @@ void wxStaticText::SetLabel(const wxString& st ) SetTitle( st ) ; m_label = st ; if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) ) + { + // temporary fix until layout measurement and drawing are in synch again + Refresh() ; SetSize( GetBestSize() ) ; - + } Refresh() ; Update() ; } @@ -248,10 +246,17 @@ bool wxStaticText::SetFont(const wxFont& font) { bool ret = wxControl::SetFont(font); - // adjust the size of the window to fit to the label unless autoresizing is - // disabled - if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) ) - SetSize( GetBestSize() ); + if ( ret ) + { + // adjust the size of the window to fit to the label unless autoresizing is + // disabled + if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) ) + { + // temporary fix until layout measurement and drawing are in synch again + Refresh() ; + SetSize( GetBestSize() ); + } + } return ret; }