On Sun, Sep 23, 2012, at 01:55 AM, jonat...@mugginsoft.com wrote:
> > 
> > On 22 Sep 2012, at 01:33, Graham Cox <graham....@bigpond.com> wrote:
> 
> 
> > You might investigate an alternative (and much easier) solution.
> > 
> > NSLayoutManager adopts the NSGlyphStorage protocol. That protocol declares 
> > a method, -layoutOptions, and one of the flags it can return is 
> > NSShowInvisibleGlyphs. Simply returning that flag may be all you need to do.
> > 
> > In fact I think this is set for you when you call 
> > -setShowsInvisibleCharacters:YES
> > 
> > I guess the difference is that it's all or nothing, which might be not the 
> > desired result.
> Works just for space characters, not other whitespace characters.
> Plus there is no attribute control so it isn't possible to colourise the
> invisible character glyph as I currently do.
> > 
> > 
> > 
> > Another approach is to override 
> > -showCGGlyphs:positions:count:font:matrix:attributes:inContext: which is 
> > the primitive drawing method. All of the positioning and context 
> > flippedness has been handled by this point, so you can usually just go 
> > ahead and draw the characters. Inserting some other glyph at this point for 
> > the tab should be straightforward.
> > 
> Good idea.
> I will investigate this one.
> However Kyle's idea of modifying the glyph stream may be better.
> It means that there is no second guessing required when it comes to
> positioning the substituted glyph.
> However, I don't know as yet whether I will be able to specify the
> required font colour. We shall see.

Attributes are specified on a character, rather than glyph, basis. So if
you need to draw your characters with a separate color, you should
probably override
-showCGGlyphs:positions:count:font:matrix:attributes:inContext: to push
and pop the foreground color you want before calling super. Should be a
really simple override, because the context is already set up for you.

--Kyle Sluder
_______________________________________________

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

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

Reply via email to