Due to a recent email, it came to my attention that the zip containing the IKImageFlowView sample I wrote on my sample code page was completely botched and unexpandable. So I set out to rebuild the project and produce a (some-what) fully documented header for IKImageFlowView. The header is included in the project, and for the sake of prosperity I am posting the contents here:

/*

* IKImageFlowView.h

* Documentation Copyright (c) 2008, Peter MacWhinnie. All Rights Reserved.

* (Some documentation directly stolen from IKImageBrowserView, what, I am lazy)

*

* Generated by class-dump 3.1.2.

* class-dump is Copyright (C) 1997-1998, 2000-2001, 2004-2007 by Steve Nygard.

*/

#import <Cocoa/Cocoa.h>

#import <ImageKit/ImageKit.h>

typedef NSUInteger IKImageFlowAnimationsMask;

/*!

@class IKImageFlowView

@abstract The IKImageFlowView class is used to represent a set of images in a cover flow.

@discussion The documentation in this file is far from complete, but should give you

enough information to have a basic understanding of how to use IKImageFlowView.<br />

This view requires Mac OS X 10.5+ and that you link Quartz or ImageKit.

*/

@interface IKImageFlowView : NSOpenGLView

{

id _dataSource;

id _dragDestinationDelegate;

id _delegate;

void *_reserved;

}

/*!

@method flowViewIsSupportedByCurrentHardware

@abstract Returns YES if cover flow is supported by the current hardware; NO otherwise.

*/

+ (BOOL)flowViewIsSupportedByCurrentHardware;

/*!

@method reloadCellDataAtIndex:

@abstract Marks a specified row as needing reloading.

*/

- (void)reloadCellDataAtIndex:(NSInteger)index;

/*!

@method reloadData

@abstract Marks the receiver as needing its data reloaded.

*/

- (void)reloadData;

/*!

@method itemAtIndexIsLoaded:

@abstract Returns YES if the item at the specified index is loaded; NO otherwise.

*/

- (BOOL)itemAtIndexIsLoaded:(NSUInteger)index;

/*!

@property animationsMask

@abstract The animations mask used by the receiver.

@discussion No further information available for this property,

if you have any an email would be appreciated.

*/

@property IKImageFlowAnimationsMask animationsMask;

/*!

@property selectedIndex

@abstract The index of the selected item in the receiver.

*/

@property NSUInteger selectedIndex;

/*!

@property focusedIndex

@abstract The index of the focused item in the receiver.

@discussion If you have more information about this method, an email would be appreciated.

*/

- (NSUInteger)focusedIndex;

/*!

@method cellIndexAtLocation:

@abstract Returns the index of the cell at the specified point.

*/

- (NSUInteger)cellIndexAtLocation:(NSPoint)point;

/*!

@method cellIndexAtPosition:

@abstract Returns the index of the cell at the specified position.

*/

- (NSInteger)cellIndexAtPosition:(CGFloat)position;

/*!

@method countOfVisibleCellsOnEachSide

@abstract The number of cells visible on the left and right side of the selected item.

*/

- (NSInteger)countOfVisibleCellsOnEachSide;

/*!

@method flipCellsWithOldSelectedIndex:newSelectedIndex:

@abstract No information available for this method.

*/

- (void)flipCellsWithOldSelectedIndex:(NSUInteger)oldSelectedIndex newSelectedIndex:(NSUInteger)newSelectedIndex;

/*!

@method updateLayoutInRange:

@abstract No information available for this method.

*/

- (void)updateLayoutInRange:(NSRange)range;

/*!

@method updateLayout

@abstract No information available for this method.

*/

- (void)updateLayout;

/*!

@method selectedImageFrame

@abstract Returns the frame of the selected item.

*/

- (NSRect)selectedImageFrame;

/*!

@property showSplitter

@abstract Whether or not to show the splitter in the image flow view.

*/

@property BOOL showSplitter;

/*!

@property delegate

@abstract The delegate of the receiver.

*/

@property (assign) id delegate;

/*!

@property dataSource

@abstract The data source of the receiver.

*/

@property (retain) id dataSource;

/*!

@property zoomOnSelectedLayer

@abstract Whether or not the receiver zooms on the selected item.

*/

@property BOOL zoomOnSelectedLayer;

/*!

@method backgroundIsLight

@abstract Returns YES if the receivers background is light; NO otherwise.

*/

- (BOOL)backgroundIsLight;

/*!

@method backgroundIsBlack

@abstract Returns YES if the receivers background is black; NO otherwise.

*/

- (BOOL)backgroundIsBlack;

/*!

@property backgroundColor

@abstract The background color of the image flow view.

*/

@property (retain) NSColor *backgroundColor;

/*!

@property cellBackgroundColor

@abstract The cell background color of the image flow view.

*/

@property (retain) id cellBackgroundColor;

/*!

@property cellBorderColor

@abstract The cell border color of the image flow view.

*/

@property (retain) NSColor *cellBorderColor;

/*!

@property imageAspectRatio

@abstract The image aspect ratio used by the receiver.

*/

@property CGFloat imageAspectRatio;

/*!

@property cellsAlignOnBaseline

@abstract Whether or not the receiver aligns its cells on its baseline.

*/

@property BOOL cellsAlignOnBaseline;

//These methods are no-ops, so there is no information available on them.

- (id)thumbnailImageAtIndex:(NSInteger)fp8;

- (id)previewImageAtIndex:(NSInteger)fp8;

@end

/*!

@protocol IKImageFlowViewDataSource

@abstract The IKImageBrowserDataSource formal protocol declares the methods that an instance

of the IKImageFlowView class uses to access the contents of its data source object.

*/

@protocol IKImageFlowViewDataSource

@required

/*!

@method numberOfItemsInImageBrowser:

@abstract Returns the number of records managed by the data source object.

@param sender An image flow view.

@returnValue The number of records managed by the image flow view.

*/

- (NSUInteger)numberOfItemsInImageFlow:(IKImageFlowView *)sender;

/*!

@method imageFlow:itemAtIndex:

@abstract Returns an object for the item in an image flow view that corresponds to the specified index.

@param sender An image flow view.

@param index The index of the item you want to retrieve.

@returnValue An IKImageBrowserItem object.

*/

- (id)imageFlow:(IKImageFlowView *)sender itemAtIndex:(NSInteger)index;

@optional

/*!

@method imageFlow:writeItemsAtIndexes:toPasteboard:

@abstract Signals that a drag should begin.

@param sender An image flow view.

@param indexes The indexes of the items that should be dragged.

@param pasteboard The pasteboard to copy the items to.

@returnValue The number of items written to the pasteboard.

@discussion This method is optional. It is invoked after Image Kit determines

that a drag should begin, but before the drag has been started.

*/

- (NSUInteger)imageFlow:(IKImageFlowView *)browser writeItemsAtIndexes:(NSIndexSet *)indexes toPasteboard:(NSPasteboard *)pasteboard;

/*!

@method imageFlow:removeItemsAtIndexes:

@abstract Signals that a remove operation should be applied to the specified items.

@param sender An image flow view.

@param indexes The indexes of the items that should be removed.

@discussion This method is optional. It is invoked by the image browser after Image Kit

determines that a remove operation should be applied. In response, the

data source should update itself by removing the specified items.

*/

- (void)imageFlow:(IKImageFlowView *)sender removeItemsAtIndexes:(NSIndexSet *)indexes;

@end

/*!

@protocol IKImageFlowViewDelegate

@abstract The IKImageFlowViewDelegate is an informal protocol for the delegate of

an IKImageFlowView object. You can implement these methods to perform custom

tasks when in response to events in the image browser view.

*/

@protocol IKImageFlowViewDelegate

@optional

/*!

@method imageFlow:cellWasDoubleClickedAtIndex:

@abstract Performs custom tasks when the user double-clicks an item in the image flow view.

*/

- (void)imageFlow:(IKImageFlowView *)sender cellWasDoubleClickedAtIndex:(NSInteger)index;

/*!

@method imageFlow:cellWasDoubleClickedAtIndex:

@abstract Performs custom tasks when the user clicks an item in the image flow view.

*/

- (void)imageFlow:(IKImageFlowView *)sender didSelectItemAtIndex:(NSInteger)index;

@end

by Peter on 08/14/2008, in Cocoa, Software,

Name *:

Mail *:

Website:

*: required field.
Copyright © 2007-2008, Peter MacWhinnie. All Fancy Rights Reserved. Boring ones too.