ftp.nice.ch/pub/next/developer/objc/appkit/OfMiceAndMen.2.0.s.tar.gz#/OMAMsources/InfoView.m

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.