X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8f5bce64e022d574d61049a40a3bc3bb8a379e69..8383e673b1d839548b7336947a61fa699eeb6621:/src/osx/cocoa/stattext.mm?ds=sidebyside diff --git a/src/osx/cocoa/stattext.mm b/src/osx/cocoa/stattext.mm index 57ba5c4069..c096753e0b 100644 --- a/src/osx/cocoa/stattext.mm +++ b/src/osx/cocoa/stattext.mm @@ -25,6 +25,10 @@ #include "wx/osx/private.h" +#if wxUSE_MARKUP + #include "wx/osx/cocoa/private/markuptoattr.h" +#endif // wxUSE_MARKUP + #include @interface wxNSStaticTextView : NSTextField @@ -75,26 +79,42 @@ public: virtual void SetLabel(const wxString& title, wxFontEncoding encoding) { - wxNSStaticTextView* v = (wxNSStaticTextView*)GetWXWidget(); - wxWindow* wxpeer = GetWXPeer(); - NSCell* cell = [v cell]; wxCFStringRef text( title , encoding ); + NSMutableAttributedString * + attrstring = [[NSMutableAttributedString alloc] initWithString:text.AsNSString()]; + DoSetAttrString(attrstring); + [attrstring release]; + } + +#if wxUSE_MARKUP + virtual void SetLabelMarkup( const wxString& markup) + { + wxMarkupToAttrString toAttr(GetWXPeer(), markup); + + DoSetAttrString(toAttr.GetNSAttributedString()); + } +#endif // wxUSE_MARKUP + +private: + void DoSetAttrString(NSMutableAttributedString *attrstring) + { NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineBreakMode:m_lineBreak]; - int style = wxpeer->GetWindowStyleFlag(); + int style = GetWXPeer()->GetWindowStyleFlag(); if (style & wxALIGN_CENTER) [paragraphStyle setAlignment: NSCenterTextAlignment]; else if (style & wxALIGN_RIGHT) [paragraphStyle setAlignment: NSRightTextAlignment]; - NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:paragraphStyle, NSParagraphStyleAttributeName, nil]; - NSAttributedString *attrstring = [[NSAttributedString alloc] initWithString:text.AsNSString() attributes:dict]; + [attrstring addAttribute:NSParagraphStyleAttributeName + value:paragraphStyle + range:NSMakeRange(0, [attrstring length])]; + NSCell* cell = [(wxNSStaticTextView *)GetWXWidget() cell]; [cell setAttributedStringValue:attrstring]; - [attrstring release]; [paragraphStyle release]; } -private : + NSLineBreakMode m_lineBreak; };