On 12/15/09 13:51, "Christiaan Hofman" <cmhof...@gmail.com> wrote:

> 
> On Dec 15, 2009, at 22:31, Maxwell, Adam R wrote:
> 
>> On 12/15/09 13:04, "Christiaan Hofman" <cmhof...@gmail.com> wrote:
>> 
>>> 
>>> On Dec 15, 2009, at 20:09, Maxwell, Adam R wrote:
>>> 
>>>> I notice this is removed, but recall that the centering/scaling is only
>>>> part
>>>> of that cell; using -[NSImage bestImageRepForSize:device:] is possibly the
>>>> more important part, since NSImage often picks a poor representation at
>>>> many
>>>> sizes.  This is really noticeable with system images that have multiple
>>>> reps.  It may be fixed on 10.6 if NSImage/NSImageCell uses
>>>> -bestRepresentationForRect:context:hints:, but NSImage caching might still
>>>> get in the way, unless they've fixed it.
>>>> 
>>>> -- 
>>>> Adam
>>> 
>>> The release notes indicate a lot of changes to image caching.
>> 
>> Yeah, things improved a lot in 10.6.  NSImage is probably fixed as much as
>> it can be, short of dumping it entirely.
>> 
>>> And AFAICS 
>>> NSImageCell draws the correct rep, with the minimum size just larger or
>>> equal
>>> to the target rect. Would you have a test case where things were drawn
>>> poorly?
>> 
>> Draw a URL icon in a tableview.  IIRC if the image has a rep of size 16 and
>> the cell wants an image of that size, it will use it; otherwise, it uses the
>> largest rep and scales it down.  You used to see this in the main table by
>> playing with the icon column widths.  At one size it would draw just an "@"
>> in sharp detail, but at a slightly different size it would draw the "@" with
>> a fuzzy "HTTP" below it.
> 
> I don't see that, at least on 10.6.2. I'm pretty sure it's using the next
> largest rep.

That's good, then; I'm not exactly sure what the behavior was, but I saw the
symptoms often enough.  I tried to find a mailing list post that talked
about the same thing, but I'm losing my touch with google.
 
>> It's also very worthwhile to badge individual reps of system icons, say if
>> you want to apply a CIFilter and change the color (and maybe you do this...I
>> haven't looked recently).  I found that you can end up with some nasty edge
>> artifacts otherwise.
> 
> I'm not completely sure what you mean, but at least for group icons based on
> system icons I create both a 16 and 32 rep (I don't think it's worthwhile to
> have a 128 rep).

Basically that; I think I stole your idea of tinting the system images :).
I just do it for(rep in [image representations]).  The problem I was
thinking of was actually in adding NSCIImageReps to an image; they were
drawing with green edges.  Using

rep = [[NSBitmapImageRep alloc] initWithCIImage:[hueFilter
valueForKey:kCIOutputImageKey]];

fixed that.

> 
>> 
>> Note that I don't recall trying any of this on 10.6, but I can only use that
>> at home anyway.
> 
> 10.6 does seem to have fixed these issues. For me it's a real hassle to check
> 10.5 now ;)

10.6 isn't allowed at work (yet), so I'm still on 10.5.8.  It'll be a real
hassle for me to move to 10.6 here, since the compiler now defaults to
x86_64.  A bunch of autoconf based stuff failed horribly last I tried.
 
> BTW, I got a problem with bestImageRepForSize:device:. The returned rep can be
> nil, for instance when the target size is larger than the largest rep (or when
> the colorspace name is different). You've got an idea?

Sorry, I could swear I checked in a fix for that!  The last line should be

    // if no rep of appropriate size, use NSImage's idea of the best one for
the device
    return toReturn ? toReturn : [self
bestRepresentationForDevice:deviceDescription];




------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to