Releases

ahankinson edited this page Dec 4, 2012 · 9 revisions

Cappuccino 0.9.6 (RC2)

Release date: 2012-08-22

Foundation and Core

  • New: CFURL.createCopyDeletingLastPathComponent.
  • New: CPURL URLByDeletingLastPathComponent.
  • New: CFData.bytes() and CFData.base64().
  • New: CPData +dataWithBytes and CPData +dataWithBase64:.
  • New: CPString pathWithComponents:, stringByAppendingPathComponent:, and stringByAppendingPathExtension:.
  • New: CPArray and CPDictionary descriptions now attempt to describe JavaScript member objects in more detail than just [Object object].
  • CPMutableArray sortUsingDescriptors: optimised.
  • Improved documentation for CPArray, CPString.
  • New: CPArray indexesOfObjectPassingTest:.
  • New: CPIndexSet indexPassingTest:, indexesPassingTest:, indexWithOptions:passingTest:, indexesWithOptions:passingTest:, indexInRange:options:passingTest: and indexesInRange:options:passingTest:.
  • Reimplement CPGeometry using CGGeometry since they are equivalent in Objective-J.
  • New: CPDictionary keysOfEntriesPassingTest:, keysOfEntriesWithOptions:passingTest: and keysSortedByValueUsingComparator:.
  • New: CPDictionary enumerateKeysAndObjectsUsingBlock:.
  • New: CGInsetMakeInvertedCopy.
  • New: CPUndoManager posts CPUndoManagerDidCloseUndoGroupNotification.
  • CFData base64 encoding optimised.
  • New: CPNumberFormatter setMinimumFractionDigits: support.
  • New: very basic CPNumberFormatter currency style.
  • New: CPNumberFormatter generatesDecimalNumbers support, enabled by default.

Bug Fixes:

  • Fixed: a CPURLRequest created without using the designated initialiser wouldn't work.
  • Fixed #1512: patch for rhino-narwhal to add JAVA_OPTS support when running Cappuccino utilities through rhino. This generally improves configurability for special cases, and specifically enables a work around for the failed to map segment from shared object error on some platforms.
  • Fixed #1529: incorrect CPDecimalNumber result for 220000/220. In general divisions where the quotient had fewer digits than the dividend when disregarding exponent would fail.
  • Fixed: LOG global function.
  • Fixed: CPString path methods should collect // into /.
  • Fixed: main bundle URL missing final / when running in CommonJS.
  • Fixed: CPDateReferenceDate should be 'Jan 1 2001' instead of 'Feb 1 2001'
  • Match CPDate distantPast and distantFuture with Cocoa.
  • Fixed: removed redundant CPCopyRange function.
  • Fixed: incorrect change information sent to observers when the top level object of an observed key path changes.
  • Fixed: crash if an observer was set between willChange… / didChange….
  • Fixed #1624: CPNumberFormatter grouping was wrong.
  • Fixed: CPNumberFormatter grouping separator support. perMillSymbol was incorrectly used as the grouping separator.
  • Fixed: CPSet used identity checks, not Objective-J equality checks.
  • Fixed: CPArray should throw an exception when observer is added/removed.
  • Fixed: CPSet removeObject: for an object not a member is not an error.
  • Properly allow CPNumberFormatter to operate on most CPNumber types. This only worked by accident before.
  • Correct CPNumberFormatter maximumFractionalDigits default.
  • Fix CPNumberFormatter maximum fraction digits property name.
  • Extend CPNumberFormatter CPCoding support and fix rounding default.
  • Fixed: CPDecimal would not accept strings such as '.003' or '-.003' (no integer component).

AppKit

  • Much improved support for sheets in general and modal sheets in particular (doc-modal).
  • Better animation of sheet shadow when the sheet animates in our out.
  • CPPredicateEditor improvements. Bindings compatibility.
  • Raise an exception if a view is added to itself as a subview.
  • New: + (BOOL)automaticallyNotifiesObserversOf<Key> support.
  • If showRelativeToRect: is called while a popover is closing, it is ignored.
  • If showRelativeToRect: is called when the popover is already open the existing popover is repositioned.
  • Close all popovers when a window is closed.
  • New: CGInsetUnion and CGInsetDifference.
  • New: small progress indicator spinners.
  • New: CPImageView CPValueURLBinding and CPValuePathBinding read-only support.
  • New: hold down the option key while expanding an outline view item to expand all children as well.
  • New: CPImageView CPImageScaleProportionallyUpOrDown.
  • New: CPSplitView adjustSubviews.
  • Archive CPView tooltips.
  • The parent window of a sheet can be moved.
  • New: CPWindow sheet delegate messages.
  • New: CPImage -initWithData:.
  • New: CPImageView support for CPDataBinding.
  • New: CPTableView themed attribute for round rect selection of rows. Selections in the tableview can now have round corners. The default is a regular rect.
  • New: CPTableView content binding (especially useful for Lion style view-based tables.)
  • New: CPImage data. If the image was not initialised using data but the browser supports canvas, data is generated.
  • Improve toolbar item layout. The height of all items is determined by the tallest item. If a toolbar item has a small view or a small icon, it is now centred within the available space above the label. For example, for a tiny icon in one item next to a normal size icon the tiny icon would be centre aligned with the larger icon.
  • New: toolbar CPToolbarDisplayModeIconOnly support.
  • New: toolbar support for tall custom widgets. You can now finally have that CPTableView you always wanted in your toolbar.
  • New: toolbar "labels only" mode.
  • Use any size toolbar icons such as 48x48 and the toolbar adapts automatically (unlike Cocoa).
  • Improved artwork for button bars (switch odd blue colour for a more standard white).
  • New: CPTokenField delegate method tokenField:representedObjectForEditingString:. This improves support for represented objects and is used both when an autocompletion suggestion is used or when the name of a token is typed in by hand.
  • Place token autocomplete underneath what's being completed.
  • Autosize token field autocomplete menu. The new menu is much more efficient for the user:
    • Less tall items makes it much easier to select among many completions.
    • Exactly wide enough for widest item.
    • Tall enough to show all items (instead of just 3 as before).
    • Uses a maximum width and height defined by the screen edges and some Cocoa-like constants.
  • Improve token field subclassing support. Token field now triggers autocompletion from textDidChange: which better meets the expectations of Cappuccino programmers. Eliminated custom non-Cappuccino key press handler.
  • New: CPTokenField keyUp: support.
  • New: key bindings support for token field. Also improve compatibility with CPTextField superclass and subclassing support by properly using interpretKeyEvents: like CPTextField.
  • Allow token field subclasses to override defaultCompletionDelay.
  • Allow token field insertText: to be somewhat overridden. If insertText: is overridden to do nothing, nothing in inserted.
  • Overwrite selected tokens by typing.
  • New: CPArrayController removeObjectAtArrangedObjectIndex:.
  • New: select all support for CPTokenField.
  • Improve token field keyboard navigation when tokens are selected.
  • New: many more CPButton types, highlightsBy and showsStateBy support, including for subclasses (CPCheckBox and CPRadio) when appropriate. All button types now supported:
    • CPPushOnPushOffButton
    • CPToggleButton
    • CPMomentaryChangeButton
    • CPOnOffButton
    • CPMomentaryPushInButton
    • CPMomentaryPushButton
    • CPMomentaryLight
  • New: full CPPopUpButton bindings support.
  • New: CPToolbar autovalidate support.
  • New: CPSplitViewWillResizeSubviewsNotification notification userInfo now contains the divider index.
  • New: CPComboBox.
  • Better focus ring for CPTextField and all subclasses, and improved drawing of disabled contents.
  • New: themable CPColorWell with Aristo look. Highlighted and disabled visuals.
  • Standardise CPColorWell's mouse handling and highlighting. Switch to setNeedsLayout based drawing.
  • New: CGRectInsetByInset.
  • New: the system font can now be changed at runtime, even for archived UI (e.g. through nib2cib.) There is no need to recompile if the system font is changed in Info.plist.
  • New: CPControl now archives its formatter. This allows you to use a formatter with a table column's data view.
  • New: a font of size 0 now uses the current system font size.
  • New: CPFontManager setSelectedFont:isMultiple: and other basic properties.
  • New: CPFontManager convertFont:, convertFont:toHaveTrait: and addFontTrait:.
  • New: CPFontManager weightOfFont: and traitsOfFont:.
  • New: CPFontManager convertFont:toFace:.
  • New: notify when a CPTableView column moves through CPTableViewColumnDidMoveNotification and the delegate.
  • New: +CPEvent modifierFlags.
  • New: CPEvent description.
  • New: CPViewController isViewLoaded.
  • New: inactive windows (windows which are not the key window) now have a greyed out window title.
  • Improve CPTokenField, CPView, CPTableColumn and CPWindow documentation.

Bug Fixes:

  • Fixed: attempt to close a sheet while it is animating is now handled.
  • Fixed: in Safari 5.1 sheets would sometimes not correctly order out.
  • Fixed #1279: CPRuleEditor was not compatible with Internet Explorer 7, 8 or 9.
  • Fixed: CPRuleEditor would not scroll properly in a scroll view as more rules were added.
  • Fixed: CPTabView item selection could not be fully disabled through the delegate.
  • Fixed #1457: clicking CPPopUpButton then dragging to an item and releasing the mouse button did not select the item.
  • Fixed cases where a CPMenu would not close after certain mouse interactions.
  • Fixed: check box binding value transformers were ignored.
  • Fixed: reverse value transformations were not applied for table view bindings.
  • Fixed: CPPopover close consulted the delegate's popoverShouldClose.
  • Fixed: infinite loop with empty collection in @min, @max and @sum operators.
  • Fixed: return valueForUndefinedKey: value properly for KVC.
  • Fixed: CPSet valueForKeyPath: returned incorrect results in some cases.
  • Fixed: CPTextField did not send CPControlTextDidEndEditingNotification if editing had not started, contrary to Cocoa.
  • Fixed #1433: more initial key view loop calculations.
  • Fixed: flashing CPTextField insertion point when text field becomes the first responder.
  • Fixed: when bindings were applied in reverse, the source of the binding would cause the destination to needlessly update again, causing e.g. the CPTextField cursor to jump to the end after every character typed when continuouslyUpdatesValue was on.
  • Fixed: table view highlighting drawing bug.
  • Fixed: table view infinite loop when finishing cell editing.
  • Fixed: CPEvent timeStamp did not return seconds since startup.
  • Fixed: don't crash when removing objects from an array controller which has its arrangedObjects.@count observed.
  • Fixed: a collection view wouldn't become the first responder when its items were clicked.
  • Fixed #1485: CPScroller decoding bugs which would lead to errors such as CPInvalidArgumentException: CPScroller does not contain theme attribute 'scroller-width'.
  • Fixed: timestamp for CPEvents from periodic events.
  • Fixed: menu item highlighting error.
  • Fixed #1491: CPInvalidArgumentException: - [_CPMenuBarWindow scrollByDelta:] unrecognized selector sent to instance when attempting to scroll in a menu.
  • Fixed: collection views cleared their selection whenever the content was changed.
  • Fixed: CPPredicateEditor Display value must be… exception in recent revisions.
  • Fixed: CPOutlineView setMenu: was not effective.
  • Raise an error on attempt to add a new sheet to a window which already has one, or to a window which is a sheet.
  • Fixed: sheets would order out without an explicit orderOut: message, unlike Cocoa.
  • Fixed: CPProgressIndicator encoder wasted space and caused errors. The errors would cause exceptions such as Not allowed to load local resource: file:///<some local path from the machine that ran nib2cib> when loading cib driven app through a web server.
  • Fixed: CPPopover typo (setBehaviour: -> setBehavior:).
  • Fixed: CPTextField delegate method control:didFailToFormatString:errorDescription: did not actually send a string.
  • Fixed: CPTableView bug where dragged rows didn't have their bindings applied.
  • Fixed: when a CPPopover closes implicitly, popoverShouldClose delegate method should be checked.
  • Added a very hacky workaround for the jittery resize bug in WebKit.
  • Fixed: CGSizeFromString and CGPointFromString would try to parse only integer values.
  • Fixed: shared CPDocumentController instantiation.
  • Fixed: window.status access when not running in the browser by CPApplication.
  • Fixed: CPOutlineView disclosure control width was hardcoded.
  • Fixed: CPMenu highlights wouldn't always disappear.
  • Fixed: CPTableView selectedColumn.
  • Fixed: CPButton's "dim image when disabled" should be on by default.
  • Fixed: token field auto completions. Auto completions are strings, not represented objects.
  • Improve CPTokenField autocomplete scrolling.
  • Fixed: CPTokenField autocomplete menu could show up underneath other windows.
  • Fixed: make sure autocomplete menu fits within browser.
  • Fixed: CPTokenField keyDown: handling. Previous nonstand implementation interacted poorly with Cappuccino's event handling and subclasses.
  • Fixed: CPTokenField object value for half finished tokens. Try to convert to a representedObject before responding to objectValue.
  • Fixed: CPTokenField nil representedObjectForEditingString: handling. If tokenField: representedObjectForEditingString: returns nil, act the same as if the delegate method didn't exist.
  • Fixed: CPTokenField token layout when tokens are selected.
  • Fixed: browser shortcuts wouldn't work when a CPTokenField was active.
  • Fixed: evaluation of whether a document based application needs an untitled document on startup.
  • Fixed: CPToolbar delegate method toolbarDefaultItemIdentifiers: is optional. This fix makes it possible for a cib-defined toolbar to have a delegate set without defining toolbarDefaultItemIdentifiers:. You might be implementing other delegate methods.
  • Fixed: CPPredicateEditor CPTextField action bug.
  • Fixed: non-bordered buttons should retain their size, not shrink to fit.
  • Fixed #1559: many edge cases of split view autosaving and restoration, including deeply nested split views. This fix also makes it easier to override autosave restores in a subclass or a controller's viewDidLoad.
  • Implement CPWindowController setViewControllerContainerView: and fix CPWindowController setViewControllerView:.
  • Use theme system for CPColorWell bordered state. This is more consistent with the rest of Cappuccino and prepares for theming support.
  • Fix CPColorPanel errors.
  • Fix clipping of text due to fractional pixels.
  • CPGeometry moved to Foundation.
  • CPRuleEditor fixes regarding format strings and regexes.
  • Fixed: browser propagation control when not in browser. This would lead to a [CPPlatformWindow _willPropagateCurrentDOMEvent] unrecognized selector sent to instance error if an event was sent in a non DOM environment.
  • Fixed #1593: editing of custom data views in CPTableView.
  • Fixed: a CPArrayController driven table could show an empty selection after removeObject:.
  • Fixed: removing selected CPPopUpButton item. When the selected item of a CPPopUpButton is removed the first item should become selected.
  • Fixed: popovers in modal windows couldn't be interacted with. This prevented e.g. date picker popovers in sheet dialogs.
  • Fixed: CPCib instantiateCibWithOwner:topLevelObjects: did not allow a nil owner.
  • Fixed: jumping text when editing a CPTextField in some browsers, especially Firefox and newer versions of Chrome.
  • Fixed: Internet Explorer drew toolbars of borderless windows wrong.
  • CPCib initWithContentsOfURL: returns nil if the requested data is nil.
  • Fixed: CPTokenFields would sometimes unexpectedly steal first responder status. If an autocomplete choice was made followed by immediately focusing on another control, the token field would reclaim first responder status a moment later.
  • Fixed: CPTokenField scrolling away from selected token. Sometimes clicking a token would cause the token field to scroll to some other spot.
  • Fixed: CPEvent data1 and data2 weren't stored right. They were stored in globals instead of ivars, allowing only one data1 or data2 in the whole app.
  • Fixed: in CPArrayController wrong indexes would become selected when removing arranged objects.
  • Fixed: CPWindowController setViewController: was incorrectly causing view loading.
  • Fixed: wrong text sizing across the board for custom fonts. If a custom font was used with the CSS @font-face syntax, Cappuccino would calculate the wrong sizes for strings throughout.
  • Allow CPControl formatter to format nil.
  • Fixed: many sheet related first responder and mouse interaction bugs.
  • Fixed: non-key window text fields tried to receive input, looked active.
  • Fixed: text field font size while editing was wrong in Internet Explorer.
  • Fixed: text field cut/paste by context menu would not trigger a change notification. Also just regular copy and paste could fail to trigger notifications.

Nib2Cib

  • New: XcodeCapp support for Xcode 4.4 with much improved code generation. The Xcode 4.4 support enables connection of new outlets and actions without restarting Xcode. At the same time Xcode should now be better at recognising the super classes of Cappuccino classes.
  • New: support for User Defined Runtime Attributes in IB.
  • New: support for defining userland NS classes for conversion from IB.
  • New: support for nib2cib configuration files.
  • New: support CPDateFormatter (although actual formatting not yet implemented in Cappuccino.)
  • New: support for tooltips.
  • Faster image utility.
  • New: support for CPProgressIndicator size.
  • nib2cib will now log the path and size of custom image resources in super verbose mode.
  • New: support alternative image and title for buttons.
  • New: support "thick divider" split view style.
  • New: support for tags on NSCell, useful for radio groups.

Bug Fixes:

  • NSButton now allows buttons that are not fixed height, if the theme allows it.
  • Fixed: a regular size spinner in IB became twice as large in Cappuccino.
  • Fixed: button imageDimsWhenDisabled default.
  • Make the default grid color in IB show correctly in CPTableView.
  • Make NSClipView obey the Draw Background checkbox in IB

Misc

  • Improved capp ThemeDescriptor template with better tasks, documentation and structure.
  • Stop generating useless XML from doxygen.
  • New dump_theme tool to inspect themes.
  • New: capp_lint added to Tools.
  • Fixed: don't mention narwhaljs.org in bootstrap.sh - it doesn't exist anymore.
  • Warn about the need to xcode-select in bootstrap.sh.
  • New: capp_lint check for space inside parens and dependent statement on same line

Bug Fixes:

  • Fixed: objcc --includeTypeSignatures typo.

Cappuccino 0.9.6 (RC1)

Release date: 2012-04-26

Foundation and Core

  • Faster CPNotificationCenter removeObserver:.
  • Complete isEqual: support for CPExpression and CPPredicate subclasses.
  • New: CPObject performSelector:withObject:.
  • Improved docuemntation for CPSet and CPMutableSet.
  • New: objcc -T (or --includeTypeSignatures) option which activates the IncludeTypeSignatures option.
  • New: CFPropertyList support for date decoding.
  • New: CPIndexSet enumerateIndexesUsingBlock:, enumerateIndexesWithOptions:usingBlock: and enumerateIndexesInRange:options:usingBlock:.
  • CPIndexSet optimisations.

Bug Fixes:

  • Fixed #1405: TypeError: framework is not a function, it is undefined when compiling Objective-J on Linux.
  • Fixed #1405: Error: Could not load file at Foundation/Foundation.j when compiling Aristo on Linux.
  • Fixed: CPNotificatioNCenter notifications were sent to removed observers. If one observer of a notification centre notification removed another observer, that other observer would still be notified even that it was no longer observing.
  • Fixed #1424: incorrect PNG paths for pngcrush.
  • Fixed: CFPropertyList.propertyListFromXML did not properly decode base64 encoded data values.
  • Fixed: CPKeyedUnarchiver decodeBytesForKey:.

AppKit

  • Archive default theme attribute values.
  • New: tooltips are now themable.
  • New: some bindings support for CPPopUpButton.
  • New: title support for CPBox.
  • New: support for split view shouldAdjustSizeOfSubview: delegate method.
  • Improved: rewritten CPSplitView resizing which plays well with a mix of fixed size and non-fixed size panes.
  • Throw an exception when trying to set a scroller's knob proportion to NaN or Inifinity.
  • Minor CPCollectionView optimisations.
  • Throw an exception when trying to set a null minimum item size for a CPCollectionView.
  • New: CPWorkspace openFile: and openURL:.
  • Support for "small" size toolbars (CPToolbar sizeMode).
  • Improved documentation for CPSplitView and CPScrollView.
  • New: checkbox placeholder bindings options.
  • Calculate a default key view loop for windows loading from cibs if necessary even if autorecalculatesKeyViewLoop is NO.
  • Constrain CPColor components to [0.0, 1.0].
  • New: CPColor colorWithSRGBRed:green:blue:alpha:.
  • New: CPColorSpace (basic).
  • New: CPGradient with drawInRect:angle:.
  • Stub out CPView inLiveResize.
  • New: CPGraphicsContext isFlipped.
  • Tile narrow vertical three part images horizontally, and short horizontal three part images vertically. For example you can use a 1px wide vertical three part image to stretch to any width.
  • New: CPColorWell bindings support.
  • New: CPOutlineView delegate method outlineView:shouldShowOutlineDisclosureControlForItem: (corresponding to shouldShowOutlineCellForItem: in Cocoa).
  • New: appkit_tag_dom_elements debug option adds a data-cappuccino-view attribute to most Cappuccino controls, making it easier to troubleshoot in a browser based document inspector.
  • Minor scroll view optimisations.
  • Don't draw a table corner view if there is no vertical scrollbar.
  • New: CPSet sortedArrayUsingDescriptors:.
  • New: CPView registerThemeValues: to change view theme attributes at runtime in a manner similar to ThemeDescriptors.j.
  • New: CPArray enumerateObjectsWithOptions:usingBlock:.
  • CPPopover animation tweaks and improvements.
  • New: select CPOutlineView item parent with left arrow key.
  • New: CPOutlineView selectionShouldChangeInOutlineView: delegate method.

Bug Fixes:

  • Fixed #1296: CPBrowser did not notify its delegate of new selections if the selection was made using the keyboard.
  • Fixed #1413: Internet Explorer colorWithCSSString: crash. Syntax such as [[CPColor colorWithCSSString:@"rgba(0,0,0,0.5)"] cssString] lead to a CSS string incompatible with browsers without the CSS rgba feature.
  • Fixed #1412: Internet Explorer rendered clearColor shadows in black.
  • Fixed #1411: in Internet Explorer, no table/outline view selection highlights would render for certain cibs.
  • Fixed: CPArray filteredArrayUsingPredicate: and CPArray filterUsingPredicate: did not work for certain types of arrays, and could potentially cause erroneous results for CPArrayControllers with filter predicates.
  • Fixed #1436: calling CPShadowView shadowViewEnclosingView: on a subclass of CPShadowView would return an instance of the superclass.
  • Fixed: CPTabView selectedTabViewItem would raise an exception when there were no tab items instead of nil.
  • Fixed: CPTabView would not properly reflect changed views if the view changed while the tab was not selected.
  • Fixed: CPSplitView tried to auto save even without an auto save name.
  • Fixed: + CPFont boldFontWithName:size:italic: sometimes returned a non-bold, non-italic font.
  • Fixed #1444: CPCompoundPredicate of CPNotPredicateType error.
  • Fixed: + CPFont fontWithName:size:italic: sometimes returned a non-italic font even for italic:YES.
  • Fixed: CPTableColumn decoded and set its header view twice.
  • Fixed: CPArrayController avoidsEmptySelection incorrectly was applied when setting an empty selection through code.
  • Fixed #1450: a scroll view with non hiding legacy scrollbars would crash if the document view had a size of 0 pixels in either dimension.
  • Fixed: CPCollectionView setSelectionIndexes:nil would freeze the app.
  • Fixed: don't crash when loading a CPCollectionView with no item prototype view from a cib.
  • Fixed: sending CPWindow setAutorecalculatesKeyViewLoop:NO caused the window to recalculate the key view loop.
  • Fixed: [CPString count] unrecognized selector error when binding an array controller's content array to a key of another AC's selection.
  • CPWindow autorecalculatesKeyViewLoop now defaults to NO rather than null.
  • Fixed: small size toolbars in bridge windows didn't show the bottom shadow line.
  • Fixed: blurry CPOutlineView disclosure triangle.
  • Fixed: scroll views with a bezel border had two strange dots in the upper corners instead of a Lion-like bezel.
  • Fixed: table column divider lines were drawn on top of the header bottom line.
  • CPViewController view loading behaviour tweaks.
  • Fixed: CPViewController initWithCibNamed:bundle: ignored the bundle argument.
  • Fixed: CPPopover created a new window every time it opened, leaking memory in the process.
  • Fixed: CPPopover delegate method popoverDidClose could be called before animation finished.
  • Fixed: CPPopUpButton exposed an unintended selectedTag method.

Nib2Cib

  • Make bold text labels a little taller when converted to avoid cropping the bottom.
  • New: CPStepper support.
  • New: CPTableView background colour support.

Bug Fixes:

  • Fixed: empty CPTabViews could not be converted.
  • Fixed: toolbars with standard items such as NSToolbarShowColorsItem didn't convert right.
  • Fixed: CPBox title position 'none' was converted to 'on top'.
  • Support for CPWindow autorecalculatesKeyViewLoop.
  • Fixed: base64 data could not be decoded from nib files.
  • Fixed: search fields had the bottom pixel cut off.
  • Fixed: toolbar search fields were cut in half height-wise due to a too small max size.
  • Fixed: spinner style progress indicators were nib2cibbed to progress bars.
  • Fixed: spinner progress indicators took on the wrong size in Cappuccino.

Misc

  • Fixed #1401: Cappuccino docs wouldn't display properly in Windows.

0.9.1:

  • Fixed: CPSound error in Firefox
  • Fixed: CPTableView's selection behavior
  • Fixed: CPSearchField layout glitch
  • Fixed: Only log a traceback once for the traceback decorator
  • Fixed: Nib2cib splitview behavior
  • Fixed: CPTextField cut and paste notifications
  • Fixed: CPOutlineView sortDescriptorDidChange: notification
  • Fixed: CPKeyValueCoding caches replaced methods
  • Fixed: Binding name constants
  • Fixed: CPControl enabled state unarchiving from nib
  • Fixed: Building NativeHost
  • Fixed: Building documentation
  • Fixed: Small bug with CPTableView variable row heights
  • Fixed: CPArrayController initialized with empty arrangedObjects array
  • Fixed: CPScrollView scroller problem when scroller is to small
  • Fixed: Root layer changing when redisplayed
  • Fixed: Small bugs in CPSplitView
  • Fixed: CPScanner bugs
  • Fixed: TableView corner view how draws edge grid line
  • Fixed: CPBrowser image spacing bug
  • Added: CPSearchField sendsActionOnEndEditing nib2cib support
  • Added: CPMenu keyboard support
  • Added: CPMenu mouse wheel support
  • Added: CGContext pattern fill support
  • Added: CPImageView nib2cib support
  • Added: CPProgressIndicator nbi2cib support
  • Added: Right click contextual menu delegate to CPOutlineView
  • Improved: CPWebView cocoa compliance
  • Improved: CPSound cocoa compliance
  • Improved: CPWebView native scrollbar support
  • Improved: Coding guidelines compliance
  • Improved: Documentation
  • Improved: Bootstrap
  • Improved: CPTableView column resizing
  • Refactored: CPCursor

0.9.0

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