Hi folks,

Last few days I am trying to solve very strange puzzle - how to draw
FULL attributed string.

Short story:

I have a NSTextStorage object, which holds my formatted string
information. I am editing it via NSTextView (NSLayoutManager +
NSTextContainer + my NSTextStorage) mechanism. That works great until
I am dealing with drawing. To find out rect, which will be required to
fit my text, I am using -
(NSRect)usedRectForTextContainer:(NSTextContainer *)aTextContainer of
NSLayoutManager. To draw actual content I am using
drawBackgroundForGlyphRange:(NSRange)glyphsToShow
atPoint:(NSPoint)origin and
drawGlyphsForGlyphRange:(NSRange)glyphsToShow atPoint:(NSPoint)origin
from the same NSLayoutManager. And that works great for 90% of time.
But I need 100%.

Problem:

Actually I am dealing with two drawing problems:

1. When my attributed string (NSTextStorage) has a shadow, made by
using Fonts panel, it is NOT INCLUDED when trying to find out used
rect by calling [myLayoutManager
usedRectForTextContainer:myTextContainer]. Never. The situation can be
easily demonstrated with TextEdit:
https://www.dropbox.com/s/vt21zpq46xl0gb5/Text-with-cropped-shadow.png
. The same I am getting in my app. But I need a shadow, therefor I
have set it. To draw it correctly, I need a bounding (used) rect,
which counts in a shadow attribute. Is it possible at all using cocoa
text system?

2. With some fonts (for example Eccentric Std, Palemonas, some others
which i can't remember right now) the [myLayoutManager
usedRectForTextContainer:myTextContainer] returns rect which does not
covers WHOLE text. Sometimes diacritic symbols of the very top line
are missing 
(https://www.dropbox.com/s/dpjjugzxcnp771r/Missing-diacrytic-symbol.png
<- both letters are the same "Alt + e + e = é" combination), sometimes
the first left symbol is cropped
(https://www.dropbox.com/s/33mfgoqwbgwcvg1/Cropped-left-side-1.png,
https://www.dropbox.com/s/kbgfdzuhcr1svht/Cropped-left-side-2.png,
https://www.dropbox.com/s/ntxgufl8e562uep/Cropped-left-side-3.png).
Question is the same - how to get rect, which would fit my whole text.

Any help is very appreciate.

p.s. don't hesitate to ask for an additional information. I could even
make a small sample app if required.

Regards,

Rimas M.
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to