X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5b208a1796ecf1b9ab267d200705b4f3b4d10e3..cd0f218cdd3114dc6770bc9f6703225aabb5a2de:/src/osx/stattext_osx.cpp diff --git a/src/osx/stattext_osx.cpp b/src/osx/stattext_osx.cpp index dce98c9b6c..acbb1f67ba 100644 --- a/src/osx/stattext_osx.cpp +++ b/src/osx/stattext_osx.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/osx/carbon/stattext.cpp +// Name: src/osx/stattext_osx.cpp // Purpose: wxStaticText // Author: Stefan Csomor // Modified by: @@ -27,8 +27,6 @@ #include -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) - bool wxStaticText::Create( wxWindow *parent, wxWindowID id, @@ -37,17 +35,25 @@ bool wxStaticText::Create( wxWindow *parent, const wxSize& size, long style, const wxString& name ) -{ - m_macIsUserPane = false; - +{ + DontCreatePeer(); + if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) ) return false; - m_peer = wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() ); + SetPeer(wxWidgetImpl::CreateStaticText( this, parent, id, label, pos, size, style, GetExtraStyle() )); MacPostControlCreate( pos, size ); SetLabel(label); + if ( HasFlag(wxST_NO_AUTORESIZE) ) + { + // Normally this is done in SetLabel() below but we avoid doing it when + // this style is used, so we need to explicitly do it in the ctor in + // this case or otherwise the control would retain its initial tiny size. + InvalidateBestSize(); + SetInitialSize(size); + } return true; } @@ -64,11 +70,11 @@ void wxStaticText::SetLabel(const wxString& label) ) { // leave ellipsization to the OS - DoSetLabel(GetLabelWithoutMarkup()); + DoSetLabel(GetLabel()); } else // not supported natively { - DoSetLabel(GetEllipsizedLabelWithoutMarkup()); + DoSetLabel(GetEllipsizedLabel()); } if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) && @@ -103,9 +109,23 @@ bool wxStaticText::SetFont(const wxFont& font) void wxStaticText::DoSetLabel(const wxString& label) { m_label = RemoveMnemonics(label); - m_peer->SetLabel(m_label , GetFont().GetEncoding() ); + GetPeer()->SetLabel(m_label , GetFont().GetEncoding() ); } +#if wxUSE_MARKUP && wxOSX_USE_COCOA + +bool wxStaticText::DoSetLabelMarkup(const wxString& markup) +{ + if ( !wxStaticTextBase::DoSetLabelMarkup(markup) ) + return false; + + GetPeer()->SetLabelMarkup(markup); + + return true; +} + +#endif // wxUSE_MARKUP && wxOSX_USE_COCOA + wxString wxStaticText::DoGetLabel() const { return m_label;