ftp.nice.ch/pub/next/developer/objc/iconkit/IconKit.1.2.s.tar.gz#/IconKit-1.2/Classes/IKShelf.h

This is IKShelf.h in view mode; [Download] [Up]

/*

File IKShelf.h

Release 1.2, 7 June 1994
Copyright (C) 1994 by H. Scott Roy

This code is part of IconKit, a general toolbox for drag-and-drop applications.  IconKit is free for noncommercial use, but costs money for a commercial license.  You should have received a copy of the license agreement with this file.  If not, a copy of the license and the complete source of IconKit can be obtained from the author:

		H. Scott Roy
		2573 Stowe Ct.
		Northbrook, IL  60062-8103
		iconkit@cs.stanford.edu

For your editing convenience, this file is best viewed using an editor that automatically wraps long lines, in a fixed point font at 80 columns, with tabs every 4 spaces.

*/


/* ========================================================================== */


/*

This class specializes the IKIconPath to conveniently set things up as needed for a shelf.  In particular, its cells are initialized to act as unlocked containers, and it can be configured to automatically add new cells when its size changes.

*/

#import "IKIconPath.h"
#import "IKDependency.h"


/* ========================================================================== */


@interface IKShelf : IKIconPath <IKDependency>
{
	id
		users,
		objectToPaste;
	
	char
		* classToHold;
		
	BOOL
		dynamic,
		lastIsEmptyContainer;
}


- initFrame: (const NXRect *) frameRect;
- initFrame: (const NXRect *) frameRect
		mode: (int) aMode
		cellClass: class
		numRows: (int) rows  numCols: (int) cols;

- (BOOL) isDynamic;
- (const char *) classToHold;
- setDynamic: (BOOL) flag;
- sizeTo: (NXCoord) width  : (NXCoord) height;
- fillWithCells;
- sizeCellsToFit;
- setClassToHold: (const char *) class;
- delegate;

- (NXDragOperation)	draggingOperation: (id <NXDraggingInfo>) sender;
- (NXDragOperation)	draggingEntered: (id <NXDraggingInfo>) sender;
- draggingExited: (id <NXDraggingInfo>) sender;
- (NXDragOperation) cellEntered: (id <NXDraggingInfo>) sender;
- (NXDragOperation) cellUpdated: (id <NXDraggingInfo>) sender;
- cellExited: (id <NXDraggingInfo>) sender;
- (BOOL) prepareForDragOperation: (id <NXDraggingInfo>) sender;
- (BOOL) performDragOperation: (id <NXDraggingInfo>) sender;
- concludeDragOperation: (id <NXDraggingInfo>) sender;


	// -- IKDependency methods

- addUser: who;
- addListener: who;
- removeUser: who;
- removeListener: who;

/*
	-NO NEW DOCUMENTATION-

- free;
- read: (NXTypedStream *) stream;
- write: (NXTypedStream *) stream;
- mouseDown: (NXEvent *) event;

*/

@end


/* ========================================================================== */


/*

A shelf sends out notification messages at various points in a dragging operation.  A user can step in to determine an appropriate dragging operation.  The default is NX_DragOperationGeneric.

*/

@interface Object (IKShelfAnnouncements)

- (NXDragOperation) shelf: sender  isDragging: objectToPaste
		from: (id <NXDraggingInfo>) source;

- shelf: sender  dragWillEnter:		(id <NXDraggingInfo>) source;
- shelf: sender  dragWillExit:		(id <NXDraggingInfo>) source;
- shelf: sender  dragWillComplete:	(id <NXDraggingInfo>) source;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.