Discover OS X's hidden artistic side
Jobs' past revisited
Mac secrets One of the most frequently used Cocoa classes is NSImage which, as the name suggests, is all about displaying and manipulating image data. The imageNamed: method of this class retrieves an image reference for you - provided that you know the name of the image you're after.
Many of the images that can be retrieved via the imageNamed: method have well documented names, but there's a lot of stuff in there that's not well-known. It's those images - including some for Windows - that I'll be digging into here. I shall also give you source code to a little utility that uses an entirely different mechanism to retrieve images used by OS X.
Dig into the past with AppKit
Internally, AppKit maintains an extensive list of small bitmaps that are referred to as the built-in icon list. When you call the imageNamed: method, this is one of many places that gets searched for an image of that name. You shouldn't confuse this with documented system image names such as NSImageNameIconViewTemplate, NSImageNameRefreshTemplate, and so on.
In general, the documented images are high-quality scalable images while the built-in icon list contains non-resizable bitmaps, which only look good - well, some do - at their default size.
Before we go any further let's take a trip down memory lane. Fire up our old friend Interface Builder, drop a NSImageView control onto a window and set the image name to NXdefaulticon. Note: capitalization is important.
You should be rewarded with a blast from the past: the old NeXT icon. NeXT, was of course, the company created in 1985 by Apple chief executive Steve Jobs during his brief Apple hiatus. Apple went on to buy NeXT and incorporated much of its programming framework into OS X.
Interestingly, AppKit contains a lot of these historical relics, including NXdefaultappicon, NXHelpBacktrack, and a great deal more. I imagine that a lot of these image names were originally supported to aid in porting existing NeXTSTEP applications across to OS X while the latter was under development.
In addition to a wide variety of NeXT icons, you'll also find a full complement of - horror of horrors! - Windows bitmaps. It's enough to make any self-respecting Mac developer cringe but - yes - they're there!
RE: No wonder we 200 GB disks
Hi John. I agree that it's a bit surprising all that stuff is still in there. But a lot of the really old icons are pretty poor quality by today's standards, and hence small. Taking 'em out wouldn't buy all that much disk space. A drop in the ocean compared to -- for example -- all the built in foreign language support.
No wonder we 200 GB disks
It's amazing this crap doesn't get taken out. It's interesting and all but seriously with a company the size of Apple why haven't they spent a little bit of time to remove what they don't require.
I don't know what most people's view of Snow Leopard is but I for one I'm happy and surprised that Apple have spent the time to do this.
Microsoft could learn from this.
Windows Icon and Yellowbox
Back in the early development of MacOS X (Rhapsody at the time) there was a project called yellow box that would allow Rhapsody apps to be compiled and work on Windows (I ran it on Win2k).