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.