This is QixView.h in view mode; [Download] [Up]
#import <appkit/View.h>
#import <appkit/graphics.h>
/*
* This class implements what I've heard called, Qix lines.
*
* Please send any suggestions for improving or correcting this
* screen saver to larry@netcom.com. Have fun!
*
*/
/**********************************************************************/
typedef struct moveable_point // All values neccessary to keep track
{ // of a moving points position and direction.
int x; // x coordinate of the point.
int y; // y coordinate of the point.
int x_dir; // Points "x" direction, LEFT or RIGHT.
int y_dir; // Points "y" direction, UP or DOWN.
float x_inc; // Amount to move point in x's direction.
float y_inc; // Amount to move point in y's direction.
float orig_inc; // Used to reset x_inc and y_inc.
}
MVPOINT;
typedef struct qix_line // Two moveable points make a moving line.
{
MVPOINT pointA;
MVPOINT pointB;
}
QIX;
/*********************************************************************/
@interface QixView : View
{
QIX head; // Head Qix values. Drawn in white.
QIX tail; // Tail Qix values. Drawn in black.
int tailLen; // Current length of tail.
}
/*********************************************************************/
//--------------------------------------------------------------//
// //
- setQixPoint : ( MVPOINT * ) qix; //
// //
// Sets a movable points next position. //
// //
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// //
- resetQix : ( QIX * ) qix : ( BOOL ) resetControls; //
// //
// Resets a qix points fields to default values. //
// //
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// //
- initFrame : ( const NXRect * ) frameRect; //
// //
// Calls resetQix to reset the head and tail qix. //
// //
//--------------------------------------------------------------//
- (const char *) windowTitle;
//--------------------------------------------------------------//
// //
- drawSelf : ( NXRect * ) r : ( int ) count; //
// //
// Clears its view to a black background and calls resetQix, //
// to reset the head and tail qix to their default values. //
// //
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// //
- drawQix : ( QIX ) qix; //
// //
// Draws a line between the two points in a qix structure. //
// //
//--------------------------------------------------------------//
//--------------------------------------------------------------//
// //
- oneStep; //
// //
// This is it the master method. This method is the control //
// center for animating the qix lines. //
// //
//--------------------------------------------------------------//
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.