This is Rect.m in view mode; [Download] [Up]
#import "Rect.h"
@implementation Rect
- initFromX:(float)x y:(float)y width:(float)width height:(float)height
{
[super init];
rect.origin.x = x;
rect.origin.y = y;
rect.size.width = width;
rect.size.height = height;
return self;
}
- initFromOrigin:(NXPoint *)p size:(NXSize *)s
{
[super init];
rect.origin = *p;
rect.size = *s;
return self;
}
- initFromRect:(NXRect *)aRect
{
[super init];
rect = *aRect;
return self;
}
- setRect:(NXRect *)aRect
{
rect = *aRect;
return self;
}
- (NXRect *)asCPointer { return (NXRect *)▭ }
- setOrigin:aPoint { rect.origin.x = [aPoint xCoord]; rect.origin.y = [aPoint yCoord]; return self; }
- setX:(float)x { rect.origin.x = x; return self; }
- setY:(float)y { rect.origin.y = y; return self; }
- (double)xCoord { return (double)rect.origin.x; }
- (double)yCoord { return (double)rect.origin.y; }
- origin { return [[Point alloc] init]; }
- setSize:aSize { rect.size.width = [aSize width]; rect.size.height = [aSize height]; return self; }
- setWidth:(float)width { rect.size.width = width; return self; }
- setHeight:(float)height { rect.size.height = height; return self; }
- (double)width { return (double)rect.size.width; }
- (double)height { return (double)rect.size.height; }
- size { return [[Size alloc] init]; }
- (double)area { return (double)(rect.size.height * rect.size.width); }
- (Rect *)intersectionWith:(Rect *)aRect
{
NXRect temp;
temp = *(NXRect *)[(Rect *)aRect asCPointer];
if (NXIntersectionRect(&rect, &temp) != NULL)
return [[Rect alloc] initFromRect:&temp];
return [[Rect alloc] init];
}
- (Rect *)unionWith:(Rect *)aRect
{
NXRect temp;
temp = *(NXRect *)[(Rect *)aRect asCPointer];
if (NXUnionRect(&rect, &temp) != NULL)
return [[Rect alloc] initFromRect:&temp];
return [[Rect alloc] init];
}
- intergral
{
NXIntegralRect(&rect);
return self;
}
- insetBy:(Size *)size
{
NXInsetRect(&rect, [size width], [size height]);
return self;
}
- offsetBy:(Size *)size
{
NXOffsetRect(&rect, [size width], [size height]);
return self;
}
- (BOOL)mouseIn:(Point *)p flipped:(BOOL)aBool
{
return NXMouseInRect((const NXPoint *)[p asCPointer], &rect, aBool);
}
- (BOOL)pointIn:(Point *)p
{
return NXPointInRect((const NXPoint *)[p asCPointer], &rect);
}
- (BOOL)intersects:(Rect *)r
{
return NXIntersectsRect(&rect, (const NXRect *)[r asCPointer]);
}
- (BOOL)contains:(Rect *)r
{
return NXContainsRect(&rect, (const NXRect *)[r asCPointer]);
}
- (BOOL)equals:(Rect *)r
{
return NXEqualRect(&rect, (const NXRect *)[r asCPointer]);
}
- (BOOL)isEmpty
{
NXEmptyRect(&rect);
}
- clip
{
NXRectClip(&rect);
return self;
}
- fill
{
NXRectFill(&rect);
return self;
}
- erase
{
NXEraseRect(&rect);
return self;
}
- highlight
{
NXHighlightRect(&rect);
return self;
}
- drawButton:(Rect *)clipRect
{
return self;
}
- drawGrayBezel:(Rect *)clipRect
{
NXDrawGrayBezel(&rect, (const NXRect *)[clipRect asCPointer]);
return self;
}
- drawGroove:(Rect *)clipRect
{
NXDrawGroove(&rect, (const NXRect *)[clipRect asCPointer]);
return self;
}
- drawWhiteBezel:(Rect *)clipRect
{
NXDrawWhiteBezel(&rect, (const NXRect *)[clipRect asCPointer]);
return self;
}
- drawFrame
{
NXFrameRect(&rect);
return self;
}
- drawFrameWithWidth:(float)width
{
NXFrameRectWithWidth(&rect, width);
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.