This is InfoView.m in view mode; [Download] [Up]
#import "InfoView.h" static char *imageName[3] = { "app", "hole", "tete" }; @implementation InfoView - animateInfo:sender { [self display]; if (sender == teteButton) [self animateDissolve:2]; else [self animateDissolve:0]; return self; } - animateDissolve:(int)index { id image; float percent; NXPoint aPoint; if (index != current) { [self lockFocus]; aPoint.x = 0.0; aPoint.y = 0.0; image= [NXImage findImageNamed:imageName[index]]; for (percent=0.0;percent<=1.0;percent+=0.02) { if (NXUserAborted()) { percent=1.0; } [image dissolve:percent toPoint:&aPoint]; [window flushWindow]; } [self unlockFocus]; current = index; } return self; } - drawSelf:(const NXRect *)rects :(int)rectCount { id image; static NXPoint aPoint = { 0.0 , 0.0 }; image= [NXImage findImageNamed:imageName[current]]; [image composite:NX_SOVER toPoint:&aPoint]; return self; } - mouseDown:(NXEvent *)theEvent { if (current) [self animateDissolve:0]; else [self animateDissolve:1]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.