This is TestRBView.m in view mode; [Download] [Up]
#import <MiscAppKit/MiscRubberband.h>
#import "TestRBView.h"
@implementation TestRBView
- initWithFrame:(NSRect)frameRect
{
[super initWithFrame:frameRect];
_selectionRect = NSZeroRect;
_hasSelection = NO;
return self;
}
- (void)drawRect:(NSRect)r
{
PSsetgray(NSWhite);
NSRectFill([self bounds]);
if(_hasSelection){
PSsetgray(NSBlack);
NSFrameRect(_selectionRect);
}
}
- (void)mouseDown:(NSEvent *)event
{
NSRect r;
MiscRubberband *rubberband = [MiscRubberband rubberbandWithView:self];
if([pivotMatrix selectedTag] == 0)
[rubberband setPivot:MiscCenterPivot];
else
[rubberband setPivot:MiscCornerPivot];
[rubberband setUsesBounds:[boundsToggle state]];
[rubberband doStretch:event];
r = [rubberband currentRect];
if(_hasSelection){
if(r.size.width == 0 && r.size.height == 0)
_hasSelection = NO;
_selectionRect = r;
} else {
if(r.size.width > 0 && r.size.height > 0)
_hasSelection = YES;
_selectionRect = r;
}
[self display];
}
- (NSRect)selectionRect
{
if(!_hasSelection)
return NSZeroRect;
else
return _selectionRect;
}
- (void)setSelectionRect:(NSRect)aRect
{
_selectionRect = aRect;
_hasSelection = YES;
[self display];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.