PSPreferencesController.[hm]: Manage preferences window, just like in HostLauncher (and DockCam, I guess, though I didn't check.)
NJRHotKeyField.[hm], NJRHotKeyFieldCell.[hm]: Implements a NSTextField
subclass which intercepts every keyboard event it can, and turns it
into a human-readable representation. Don't ask me how many hours of
work this was.
English.lproj/MainMenu.nib: Hook up Preferences menu item.
English.lproj/Preferences.nib: Simple Preferences panel. One
NJRHotKeyField, one button, a couple of static text fields.
NSString-NJRExtensions.[hm]: Added method from HostLauncher (modified
to output attributed string, as it's needed in order to get the right
mix of fonts), -keyEquivalentAttributedStringWithModifierMask:.
Greatly broadened the number of keys which this method can process to
pretty much the entire extended keyboard.
NSFont-NJRExtensions.[hm]: Provide a class method for obtaining a
theme font as a NSFont.