This is NeXTshadesView.m in view mode; [Download] [Up]
/*
* Module:
* NeXTshades
*
* Author:
* Doug "Kareth" McClure
* asd@cc.purdue.edu
* XASD@PURCCVM.BITNET
*
* Version: 1.0
*/
#import "NeXTshadesView.h"
#import "Thinker.h"
#import "NeXTshadesWraps.h"
#import <appkit/NXImage.h>
#import <appkit/Window.h>
#import <appkit/Panel.h> // for NXRunAlertPanel()
#import <dpsclient/wraps.h>
#import <libc.h>
#import <math.h>
#define DSC_CHANGE 0.025 // incremental change of scale
#define SETG_CHANGE 0.01 // incremental change of color
#define XTRANS_CHANGE 4.0 // incremental change of X position
#define YTRANS_CHANGE 2.0 // incremental change of Y position
@implementation NeXTshadesView
- oneStep
{
static int sgtest = NO;
static float xTrans = 400.0, yTrans = 300.0, xScale = .5, yScale = .5;
static float dscx = DSC_CHANGE, dscy = DSC_CHANGE;
static float rota = 0.0, setg = 0.0;
PSsendfloat(setg);
PSsendfloat(rota);
PSsendfloat(xScale);
PSsendfloat(yScale);
PSsendfloat(xTrans);
PSsendfloat(yTrans);
psNeXTLogoShades();
xTrans += XTRANS_CHANGE;
if ( xTrans > xSize )
{
xTrans = 0.0;
}
yTrans += YTRANS_CHANGE;
if ( yTrans > ySize )
{
yTrans = 0.0;
}
xScale += dscx;
if ( xScale > 1.0 )
{
dscx = - DSC_CHANGE;
}
else if ( xScale < 0.1 )
{
dscx = DSC_CHANGE;
}
yScale += dscy;
if ( yScale > 1.0 )
{
dscy = - DSC_CHANGE;
}
else if ( yScale < 0.1 )
{
dscy = DSC_CHANGE;
}
rota++;
if ( rota > 360.0 )
{
rota = 0.0;
}
if ( sgtest == NO )
{
setg += SETG_CHANGE;
if ( setg > 1.0 )
{
sgtest = YES;
}
}
else
{
setg -= SETG_CHANGE;
if ( setg < 0.0 )
{
sgtest = NO;
}
}
return self;
}
- initFrame:(NXRect *)frameRect
{
[super initFrame:frameRect];
[self newSize];
return self;
}
- sizeTo:(NXCoord)width :(NXCoord)height
{
[super sizeTo:width :height];
[self newSize];
return self;
}
- newSize
{
xSize = bounds.size.width;
ySize = bounds.size.height;
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.