This is SplatInfoManager.m in view mode; [Download] [Up]
/*
* SplatInfoManager
* description: a subclass of EKInfoManager for doing a few special things
* with the info panel
* history:
* 5/10/93 [Erik Kay] - created
* 5/23/93 [Erik Kay] - animateToAuthor cycles through the various effects
*/
#import "SplatInfoManager.h"
@implementation SplatInfoManager
- init
{
id img;
NXRect r;
NXSize sz, sz2;
NXPoint pt;
[super init];
// We've got a small problem in that my author tiff is 64x64 and the app
// tiff is of course 48x48. So basically I'm going to make a new author
// tiff that's 64x64, with the 48x48 image centered within it.
// Perhaps this functionality should be in the base class
img = appTIFF;
[img getSize:&sz2];
[authorTIFF getSize:&sz];
appTIFF = [[NXImage alloc] initSize:&sz];
[appTIFF lockFocus];
PSsetgray(0.667);
NXSetRect(&r,0,0,sz.width,sz.height);
NXRectFill(&r);
pt.x = (sz.width - sz2.width)/2;
pt.y = (sz.height - sz2.height)/2;
[img composite:NX_SOVER toPoint:&pt];
[appTIFF unlockFocus];
[img free];
animationSteps = 20;
return self;
}
// Actually do the animation to the author tiff.
// The implementation here cycles through the various effects provided by
// EKInfoManager.
- animateToAuthor:(int)i
{
static int counter = -1; // which effect we're going to be doing
if (i == 1) {
counter ++;
if (counter > 4)
counter = 0;
}
switch (counter) {
case 0:
[self dissolveTo:authorTIFF step:i];
break;
case 1:
[self slideTo:authorTIFF step:i];
break;
case 2:
[self circleTo:authorTIFF step:i];
break;
case 3:
[self checkerTo:authorTIFF step:i];
break;
case 4:
[self randomTo:authorTIFF step:i];
break;
default:
break;
}
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.