This is MiscLayoutTree.h in view mode; [Download] [Up]
/*
Copyright (c) Uwe Hoffmann, 1995.
All Rights Reserved.
Filename: MiscLayoutTree.h
Author: Uwe Hoffmann
Date: Jun 30, 1995
$Id: MiscLayoutTree.h,v 1.0 1995/06/30 11:22:00 Uwe Hoffmann Exp $
$Log: MiscLayoutTree.h,v $
*/
#import <foundation/foundation.h>
#import "uwFoundationAdds.h"
/*" MiscPolyline is a linked list representing a polygon line."*/
typedef struct _MiscPolyline {
float dx,dy;
struct _MiscPolyline *link;
} MiscPolyline;
/*" MiscPolygon is made out of an upper (left) and a lower (right) polygon line."*/
typedef struct _MiscPolygon {
struct {
MiscPolyline *head,*tail;
} lower,upper;
} MiscPolygon;
/*" This types constants define the layout of the tree: horizontal or vertical."*/
typedef enum _MiscLayoutTreeType {
MiscHorizontalTreeType,
MiscVerticalTreeType
} MiscLayoutTreeType;
/*" This types constants define the orientation of the tree (i.e. the position of the root node)."*/
typedef enum _MiscLayoutTreeOrientation {
MiscStandardOrientation,
MiscInverseOrientation
} MiscLayoutTreeOrientation;
@interface MiscLayoutTree:NSObject <NSCoding, NSCopying>
{
@private
MiscLayoutTree *parent; /*"Parent node"*/
MiscLayoutTree *child; /*"Child node"*/
MiscLayoutTree *sibling; /*"Sibling node"*/
NSPoint pos; /*"Position of the node"*/
NSPoint offset; /*"Position offset from predecessor node"*/
NSSize size; /*"Size of node"*/
float distanceToParent; /*"Horizontal distance to parent"*/
float border; /*"Defines a buffer rectangle around node"*/
MiscPolygon contour; /*"Contour of subtree rooted in node"*/
BOOL updateLayout; /*"YES, if contour needs recalculating"*/
BOOL collapsed; /*"YES, if subtree rooted in node is collapsed"*/
MiscLayoutTreeType layoutType; /*"Horizontal or vertical"*/
MiscLayoutTreeOrientation orientation; /*"Position of root node"*/
int tag; /*"node tag, can be used by client"*/
}
/*"Allocating and initializing an MiscLayoutTree instance"*/
+ tree;
+ treeWithSize:(NSSize)aSize;
- initWithSize:(NSSize)aSize;
- copyNodeWithZone:(NSZone *)zone;
/*"Laying out"*/
- (void)layout;
- (BOOL)needsUpdateLayout;
- (void)invalidateLayout;
- (void)layoutNode;
/*"Accessing and manipulating geometric structure"*/
- (void)setPos:(NSPoint)aPos;
- (void)setSize:(NSSize)aSize;
- (void)setDistanceToParent:(float)aDistance;
- (void)setBorder:(float)aBorder;
- (NSPoint)pos;
- (NSPoint)offset;
- (NSSize)size;
- (float)distanceToParent;
- (float)border;
- (float)width;
- (float)height;
- (NSRect)nodeBounds;
- (NSRect)branchBounds;
- (MiscLayoutTreeType)layoutType;
- (void)setLayoutType:(MiscLayoutTreeType)aType;
- (MiscLayoutTreeOrientation)orientation;
- (void)setOrientation:(MiscLayoutTreeOrientation)anOrientation;
/*"Accessing and manipulating tree structure"*/
- (MiscLayoutTree *)sibling;
- (MiscLayoutTree *)child;
- (MiscLayoutTree *)parent;
- (NSEnumerator *)depthEnumerator;
- (NSEnumerator *)breadthEnumerator;
- (MiscLayoutTree *)branchAt:(unsigned)index;
- (unsigned)numberOfChildren;
- (void)addBranch:(MiscLayoutTree *)branch;
- (void)insertBranch:(MiscLayoutTree *)branch at:(unsigned)index;
- (void)removeBranch:(MiscLayoutTree *)branch;
- (void)removeBranchAt:(unsigned)index;
- (void)moveBranchAt:(unsigned)index to:(unsigned)otherIndex;
- (BOOL)isCollapsed;
- (void)collapse;
- (void)expand;
- (void)toggleCollapse;
/*"Accessing and manipulating node contents"*/
- (void)setTag:(int)aTag;
- (int)tag;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.