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

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

/*

File IKFolder.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.

*/


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


/*

Browsing and editing a graph is one of the most natural uses for an IKBrowser.  This class defines a node in a directed graph.  The class is fully capable of handling dragging and editing events, as well as searching the graph to find paths.

The IKFolder is configurable in all its features: editing, dragging, accepting drags, and so forth.

*/

#import <objc/Object.h>
#import <appkit/drag.h>

#import "IKBrowserManager.h"


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


@interface IKFolder : Object <IKIconObject, IKGraphNode>
{
	char
		* name;
	
	id
		users,
		image,
		acceptingDragImage,
		parents,
		children,
		dragging;
	
	int
		draggingSession,
		searchMarker;
		
	NXDragOperation
		operationMask;
	
	struct _folderflags {
							int		draggable:1;
							int		dragAccepting:1;
							int		editable:1;
							int		hidden:1;
							int		leaf:1;
							int		freeing:1;
		}
		
		flags;
}


+ initialize;
+ multipleSelectionClass;

- init: (const char *) theName;
- copyFromZone: (NXZone *) zone;
- free;
- read: (NXTypedStream *) stream;
- write: (NXTypedStream *) stream;
- checkForFree;
- (BOOL) garbageCollect;

- (BOOL) isHidden;
- (BOOL) isLeaf;
- parents;
- children;

- setHidden: (BOOL) flag;
- setLeaf: (BOOL) flag;

- pathToNode: destination;
- pathFromNode: source;
- searchFor: goal  via: (SEL) getNext;

- addChild: child;
- addChildren: theChildren;
- addParent: parent;
- removeChild: child;
- removeChildren: theChildren;
- removeParent: parent;

- (NXDragOperation) draggingOperation: (id <NXDraggingInfo>) sender;


	// -- NXDraggingDestination methods

- (NXDragOperation)	draggingEntered: (id <NXDraggingInfo>) sender;
- (NXDragOperation)	draggingUpdated: (id <NXDraggingInfo>) sender;
- (BOOL) performDragOperation: (id <NXDraggingInfo>) sender;


	// -- IKIconObject methods

- (const char *) name;
- image;
- (BOOL) isDraggable;
- (BOOL) isDragAccepting;
- (BOOL) isEditable;
- setDraggable: (BOOL) flag;
- copyToPasteboard: (Pasteboard *) pboard;
+ readFromPasteboard: (Pasteboard *) pboard;
+ (NXAtom *) pasteTypes;
- setDragAccepting: (BOOL) flag;
- acceptingDragImage;
- setAcceptingDragImage: image;
- setName: (const char *) name;
- setImage: image;
- setEditable: (BOOL) flag;


	// -- IKDependency methods

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


/*
	-NO NEW DOCUMENTATION-

- init;
- (NXImage *) getIBImage;
- (const char *) getInspectorClassName;

*/

@end


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


@interface Object (IKFolderAnnouncements)

- didChangeName: sender;
- didChangeImage: sender;
- didChangeAcceptingDragImage: sender;
- didChangeProperties: sender;
- didAddChild: sender;
- didAddChildren: sender;
- didAddParent: sender;
- didRemoveChild: sender;
- didRemoveChildren: sender;
- didRemoveParent: sender;
- willFree: sender;

@end

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