Re: Drawing text like Lion's Mail
Re: Drawing text like Lion's Mail
- Subject: Re: Drawing text like Lion's Mail
- From: Andre Masse <email@hidden>
- Date: Mon, 08 Aug 2011 18:03:29 -0400
Seems like a lot of work for a simple effect. I may play again with this later on this project. I have save this thread in Mail which is telling me that there's "20 messages selected" using its fancy font effect :-)
Thanks for all infos guys,
Andre Masse
On 08/08/2011, at 13:29 , David Duncan wrote:
> On Aug 8, 2011, at 10:21 AM, Jean-Daniel Dupas wrote:
>
>> Le 8 août 2011 à 18:50, David Duncan a écrit :
>>
>>> On Aug 8, 2011, at 8:16 AM, Jean-Daniel Dupas wrote:
>>>
>>>>
>>>> I think you can create a CGPath from some text using CTFrameGetPath().
>>>> Once you get the path, you can do whatever you want (clipping, shadow, gradient, …).
>>>
>>>
>>> CTFrameGetPath() returns the path used to create the frame, typically a rectangle, not a path that describes the text therein.
>>
>> My bad.
>> So I guess the only way to get the path is to use CTFontCreatePathForGlyph() on each glyph and using other CT methods to get there positions.
>> Not as convenient, but possible, especially if this is for a single line of text as requested by the OP.
>
>
> If you just need the text outlines for clipping, then you should be able to use the Text Drawing mode of the context. By setting it to kCGText*Clip, the clipping region is set to that of the text after it is "drawn".
>
> Unfortunately there is no simple way to get the path this way if it is what you need (at least not that I can tell). CTFontCreatePathForGlyph() is one way to go about it, and I think a combination of NSLayoutManager and NSBezierPath can also do it, although I believe you have to subclass NSLayoutManager to do so (I haven't done this, but I recall Aki Inoue outlining it to me a long time ago). If you are already using NSLayoutManager this would probably be the way to go since your metrics won't change as much going this route.
> --
> David Duncan
>
> _______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden