Gradient Panel Release Notes
version 1.1.1, 2nd May, 2007
- Enhancement/Fix: Selecting a gradient stop deactivates any NSColorWell and vice versa, so a stop acts exactly like a colour well. Added a well to the demo to illustrate and test this.
- Menu wording: "Clear" changed to "Delete".
- Drag deletion of swatches from the library matrix disabled, as this was too easy to do accidentally. You can delete using the menu.
version 1.1, 27th April, 2007
- Bug where the support subfolder within Application Support was not being created if it didn't already exist was fixed.
- Enhancement: the framework user is now able to set an explicit path to the default library save location using + setGradientPanelDefaultLibraryPath: The caller is responsible for ensuring that the directories in the path already exist. The file itself will be created as necessary.
- Enhancement: additional low-level methods for accessing the current user library as an array, a plist and to read/write as a file were added.
- Enhancement: the panel was updated to work with the enhanced gradient well behaviours (see below)
- Enhancement: the library matrix area now supports additional menu commands to allow cut/copy/paste and clear of individual cells. This complements the existing drag/drop behaviour.
- Bug fix: The "Copy Library Image" command was not drawing the last row of tiles.
- Bug fix: Reversing colour stops did not immediately invalidate the cached stop rects, leading to incorrectly displayed colours until a stop was moved.
- Enhancement: Gradient type can now be selected using the contextual menu on the colour bar control.
- Enhancement: panel keeps track of ten last read or written library files (Action menu)
GCGradientWell
- Enhancement: Substantially improved to closely model the NSColorWell widget. A well can now be made "active" (user selects it by clicking, and it gains a highlighted border). The active well is driven by the panel - changes in the panel are reflected immediately in the active well. Only one well may be activated at a time within a single application. The target/action of the active well are called when the panel is being operated in addition to the panel's own target/action and any first responder implementing changeGradient: Making a well active updates the panel to the well's content, if it has any. Standard wells allow this new behaviour by default.
- Enhancement: Additional public methods exposed to help support the above programmatically if desired.
- Bug fix: Default cell class for a standard well changed to be the basic variety, not the enhanced minicontrol variety used by the special main well.
- Enhancement: now supports Copy and Clear standard menu commands.
- Improvement/partial fix: the "chequered.png" image is now cached which both slightly enhances its performance and vastly reduces the number of writes to the console with the message "CMSCreateDataProviderOrGetInfo : Invalid colorspace type", which comes from some NSImage internals. Changing the image to .tif did not help, and added a lot of bloat to the image size. The console message is harmless, but now is only written twice as the program starts. (This message plagues most apps).
- Bug fix: main well was drawing its inherited content twice each time, reducing performance.
GCGradient
- Enhancement: additional public methods for getting a plist representation of the gradient and for creating a gradient from a plist were added.
- Change: calculation of start/end points for linear gradients changed to give more useful results for a wider range of cases. Previously, the gradient was sized to fit an imaginary circle inscribed within the longer side of the path's bounds, which would not always give ideal results for very wide/tall paths. Now, the start/end points are calculated to lie on an imaginary ellipsoid that is inscribed to just touch the midpoints of the path's bounds. This gives the same result for square boundaries, and more intuitively expected results for wide/tall paths. Performance is unchanged.
General
- Fix: Framework cross-compiled to work on Mac OS 10.3 for the PPC builds. This should have worked for 1.0, but didn't.