This is Credits.m in view mode; [Download] [Up]
#import "Credits.h" static void tick(DPSTimedEntry timedEntry, double now, void *userData ); @interface Credits (Private ) - _scrollTick; @end @implementation Credits - init { [super init]; origin.x = 0.0; origin.y = 0.0; seconds = 0.05; done = YES; return self; } - setScrollView: anObject { char buf[MAXPATHLEN + 1]; [[NXBundle mainBundle] getPath: buf forResource: "credits" ofType:"rtfd"]; scrollView = anObject; [scrollView setVertScrollerRequired: NO]; clipView = [[scrollView docView] superview]; text = [clipView docView]; [text setMonoFont: NO]; [text openRTFDFrom: buf]; [text setSelectable: NO]; [text setEditable: NO]; return self; } - start: sender { if(done) { done = NO; scrollFunc = DPSAddTimedEntry(seconds, tick, (void *)self, NX_BASETHRESHOLD); } return self; } - setSeconds: (double) sec { seconds = sec; return self; } - (double) seconds { return seconds; } @end @implementation Credits (Private ) - _scrollTick; { NXRect theSize; if(!done) { [text getFrame: &theSize]; if(origin.y < theSize.size.height - 10) origin.y += 1.0; else { done = YES; DPSRemoveTimedEntry(scrollFunc); origin.y = 0; } [clipView rawScroll: &origin]; } return self; } @end static void tick(DPSTimedEntry timedEntry, double now, void *userData ) { [(id)userData _scrollTick]; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.