Update project file to latest Xcode / OS X SDK.
Fix unsupported nib settings.
Fix warning from unknown type by using a fast enumeration. Also, it's faster.
Type references to the application delegate to prevent warnings.
Remove a branch that could never trigger (unsigned < 0) and some other logic errors leading to a potential access of array index '-1' when no row is selected.
Replace use of deprecated selectRow:byExtendingSelection:.
Update version and set build target to 10.6.
Update nib file to project SDK version.
'Convert to Modern Objective-C Syntax'...
Update to ARC (probably introducing some leaks, probably fixing others).
Remove useless items in menubar.
Shrink and refit window contents.
Switch from kEventAppFrontSwitched (Carbon) to NSWorkspaceDidActivateApplicationNotification (Cocoa) to detect application switching.
Carbon.framework is no longer necessary.
Switch controller/HID bridging to non-retained since the controller lives as long as the app delegate. Do not manually open and close HID devices; the HID manager does this and a manual close therefore causes a double-close and crash when a device is removed. Some reformatting, and make the joystick display name a virtual readonly attribute.
Clean-up of Joystick class. Refactor constructor to avoid mandatory 'post-constructor' in populateActions. Fix that the product ID was the vendor ID (this breaks existing configurations but I'm probably going to rename the program at this rate anyway). Standardize on spaces for whitespace rather than a mix of tabs and spaces.