This is TileControl.h in view mode; [Download] [Up]
// TileSlide v1.0
// By Kevin Brain (ksbrain@zeus.UWaterloo.ca)
// with SoundGenerator class by Ali Ozer
// Released to the public domain September, 1991
#import <objc/Object.h>
#import <dpsclient/dpsNeXT.h> //DPSTimedEntry
#import <appkit/NXImage.h>
#define MAXSIZEX 5
#define MAXSIZEY 5
#define ROW 1
#define COL 2
#define NUMOFCHALLENGES 4
#define MAXMOVES 999
#define RANDOMFLAG 1000
#define INFOTIMERPERIOD 0.3
#define NUMBERMINWIDTH 155
#define NUMBERMINHEIGHT 110
#define IMAGEMINWIDTH 155
#define IMAGEMINHEIGHT 50
#define IMAGEMAXWIDTH 1030
#define IMAGEMAXHEIGHT 725
#define TYPENONE 0
#define TYPETIFF 1
#define TYPEEPS 2
@interface TileControl:Object
{
id infoPanelOut;
id slideWindowOut;
id bestsPanelOut;
id bestsMatrixOut;
id tileSlideCV;
id infoPanelCV;
id tileBox;
id tile[MAXSIZEX * MAXSIZEY];
id clearBox;
id movesOut;
id myFontManager;
id soundSwitch;
id usePicturesSwitch;
id useNumbersSwitch;
id stripe1;
id stripe1Blanker;
id stripe2;
id stripe2Blanker;
id listener; /* the icon-dragging listener */
id soundGenerator;
id picture;
id myOpenPanel;
NXSize windowSize;
int sizex,sizey;
int bottomMargin, topMargin;
int leftMargin, rightMargin;
int interTileDistance;
int buttonBorderWidth;
int NumTilesX, NumTilesY;
int rowOfSpace,colOfSpace;
int movementSteps,currentStep; // for sliding animation
int slideRowOrCol,fromRow,fromCol,howManyToMove;
int numberOfMoves;
int mixPattern;
int stripe1Positiony,stripe2Positiony;
int stripe1Positionx,stripe2Positionx;
int filePathLength;
int files;
int stripe1Movement,stripe2Movement;
int pictureType;
int bests[3][NUMOFCHALLENGES];
char *filePath;
BOOL sliding; // flag: are we sliding?
BOOL solved; // flag: in the 'solved' state?
BOOL usePictures; // flag: display pictures on tiles?
BOOL useNumbers; // flag: display numbers on tiles?
BOOL pictureLoaded; // flag: NXImage loaded with picture
double slidePeriod;
NXZone *zone;
DPSTimedEntry slideTimer;
DPSTimedEntry infoTimer;
struct _tileInfo{
int tileNumber;
id invisibleID;
NXCoord xPosition;
NXCoord yPosition;
} tileInPosition[MAXSIZEY][MAXSIZEX];
}
- appDidInit:sender;
- appDidHide:app;
- appDidUnhide:app;
- init;
- free;
- openInfoPanel:sender;
- windowWillClose:sender;
- windowDidMove:sender;
- (void)changeInfoPanel;
- infoPanelNotes:sender;
- openBackground:sender;
- togglePictures:sender;
- toggleNumbers:sender;
- sizeSlideBoard;
- slideTile:sender;
- (void) slideABit;
- playFinishMusic;
- selectSize:sender;
- shuffle:(int)pattern;
- challengeMix:sender;
- randomMix:sender;
- (int)iconEntered:(int)windowNum at:(double)x :(double)y
iconWindow:(int)iconWindowNum iconX:(double)iconX iconY:(double)iconY
iconWidth:(double)iconWidth iconHeight:(double)iconHeight
pathList:(char *)pathList;
- (int)iconReleasedAt:(double)x :(double)y ok:(int *)flag;
- (BOOL)initAndCheckPicture:(char *)pictureName;
- windowWillResize:sender toSize:(NXSize *)frameSize;
- windowDidResize:sender;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.