This Image Kit addition to the
CIFilter class, introduced in OS X v10.5, consists of one method and a set of constants that generate a view with input parameter controls for a Core Image filter. Using this method, it is easier for applications to present a user interface for a filter than it was in OS X v10.4. Then, applications could create a filter user interface only by analyzing the keys and key attributes of a filter and then writing the code to implement the user interface.
You use the
viewForUIConfiguration:excludedKeys: method to request a view from Core Image. The view is a subclass of the
NSView class so that you can insert it easily into any other view as a subview or into an
NSWindow object as a content view. Core Image automatically generates the view for you unless you implement the
IKFilterCustomUIProvider protocol, in which case calling
viewForUIConfiguration:excludedKeys: causes Core Image to provide your custom view.
Returns a filter view for the filter.
A dictionary that contains values for the
“User Interface Options”for the constants that you can provide as values for
kCIUIParameterSetyou can provide one of the following values:
kCIUISetDevelopment. When you request a user interface for a parameter set, all keys for that set and below are included. For example, the advanced set consists of all parameters in the basic, intermediate and advanced sets. The development set should contain parameters that are either experimental or for debugging purposes. You should use them only during the development of filters and client applications, and not in a shipping product.
An array of the input keys for which you do not want to provide a user interface. Pass
nilif you want all input keys to be represented in the user interface.
Calling this method to receive a view for a filter causes the
CIFilterclass to invoke the
provideViewForUIConfiguration:excludedKeys:method. If you override
provideViewForUIConfiguration:excludedKeys:the user interface is created by your filter subclass . Otherwise, Core Image automatically generates the user interface based on the filter keys and attributes.
The algorithm used to lay out the controls for a filter operates in a manner similar to the Core Image Fun House application (
/Developer/Applications/Graphics Tools/). Applications can retrieve a view whose control sizes complement the size of user interface elements already used in the application. It is also possible to choose which filter input parameters appear in the view. Consumer applications, for example, may want to show a small, basic set of input parameters whereas professional applications may want to provide access to all input parameters.
The controls in the view use bindings to set the values of the filter. See Cocoa Bindings Programming Topics if you are unfamiliar with bindings.
Keys or values for the size of the input parameter controls for a filter view.
NSString *IKUISizeFlavor; NSString *IKUISizeMini; NSString *IKUISizeSmall; NSString *IKUISizeRegular; NSString *IKUImaxSize; NSString *IKUIFlavorAllowFallback;
A key for the size of the controls in a filter view. The associated value can be
Controls whose size is mini, as defined by Interface Builder 2.5.
Controls whose size is small, as defined by Interface Builder 2.5.
Controls whose size is regular or normal, as defined by Interface Builder 2.5.
Controls whose dimensions are the maximum allowable for the filter view. A width or height of
0indicates that that dimension of the view is not restricted. If the size requested is too small, the filter is expected to return a view as small as possible. It is up to the client to verify that the returned view fits into the context.
Substitute controls of another size. The associated value is a Boolean value. If the filter cannot provide a view for the requested size and a fallback is allowed, the filter can use controls of a different size.