Changes: - Bindings - Nib2Cib bindings - Controller marker support (CPMultipleValuesMarker, CPNoSelectionMarker, etc) - Overhaul of CPTextField value binding - Overhaul of CPCheckBox value binding - Support for binding to the selectedTag of a CPPopUpButton - Various bug fixes for binding to the selection proxy of CPObjectController - CPArrayController working support for selectionIndexes and selectsInsertedObjects - CPArrayController fixes re add, remove, observable key paths, preserveSelection, etc - CPTableView bindings support - CPValueTransformer support - CPUndoManager improvements when used together with bindings - CPCollectionView selectionIndexes bindings support - Key Value Observing - Support for complex dependent key paths e.g. keyPathsForAffectValueForKey: - Support for ordered and unordered to-many properties - Key Value Coding - Various bug fixes for CPArray KVO proxy - Implementation of CPSet KVO proxy - TableView: - Variable row heights - Group rows - Intercell spacing - Column reordering - Documentation of TableView and OutlineView as well as delegate and data source methods - Various bug fixes - Themed - Initiate inline editing programmatically - Implemented various methods providing a near complete API - New source list style selection gradient - CPOutlineView - Group items - Inline editing - Various bug fixes - More complete implementation of delegate methods - Auto expanding items while dragging - Nicer looking disclosure button - Documentation of all methods, delegate methods, and datasource methods - More complete API - Aristo 2.0 art for various components including new HUD look for some controls - Rewrites of CPArray and CPSet class clusters - Unit tests galore - Various enhancements to Nib2Cib - Key equivalent fixes - Key equivalents for buttons - Full support for modifier keys - Support for backspace, escape and other special keys - Right click contextual menu support (with a special delegate method for the tableview) - Introduction of hover states - Native scrolling for CPScrollView - CPScrollView auto scrolling for dragging - CPWindow alpha support - Cocoa compliant CPNull - CPArray sorting performance improvements - CPDate timezone support overhaul, plus ISO date parsing and output - CPView didHide and viewDidUnhide - NEW: Native Host - NEW: CPCursor - CPSplitView resize cursor support - TableColumn resize cursor support - NEW: CPAlert - Completely rewritten - Themable - Accessory views - Suppress checkbox - Help button - NEW: CPBrowser - NEW: CPButtonBar - NEW: CPTabView - Completely rewritten with a more Cocoa like look - NEW: CPBox - NEW: CPSound - NEW: CPDecimalNumber - NEW: CPExpression - expressionForKeyPath, constant, evaluated, variable, function, unionSet, intersectSet, minusSet, aggregate, subquery. - NEW: CPPredicate - CPComparisonPredicate - CPCompoundPredicate - predicateWithFormat: parses all supported expressions + built-in function expressions - CPPredicate support in CPArray and CPSet. - NEW: CPStepper - NEW: CPTokenField - Autocomplete - Multiline editing - NEW: Open JDK support for installing tool chain - Various bug fixes to many classes Deprecated: - setDefaultButton: for CPButton now must be called on CPWindow instead or you can set the button's key equivalent to CPCarriageReturnCharacter - Selected theme state for TableView theme state is now CPThemeStateSelectedTableDataView - CPAlert deprecated setWindowStyle: in favor of setTheme: - CPCollectionView: rectForItemAtIndex: and rectForItemsAtIndexes: have been deprecated - Deprecated: Binding to objectValue is no longer the same as binding to value