ftp.nice.ch/Attic/openStep/games/Solitaire.3.1.s.tgz#/Solitaire.3.1/Solitaire/Solitaire.h

This is Solitaire.h in view mode; [Download] [Up]

/* indent:4  tabsize:8  font:fixed-width */

/*---------------------------------------------------------------------------
|----------------------------------------------------------------------------
|
|    Solitaire : ChangeManager
|
|    A single Solitaire object acts as the central controller for the
|    Solitaire game engine.  It is the application delegate, and is 
|    responsible for finding and loading .solitaire modules.
|
|    As a subclass of "ChangeManager", it can manage undo/redo.
|
|    Implementation of this class is split into Solitaire.m and 
|    SolitaireMore.m.
|
|    Thanks to Sam Streeper for BackSpace, which was a good source of 
|    sample code for this project.
|
|
|    CREDITS
|
|    Gary Ritchie<gary@uaneuro.uah.ualberta.ca>
|        -- dynamic loading, game engine, localization, documentation
|
|    Michael McCulloch<michael@hsv.tybrin.com>
|        -- artwork, CardSet preferences
|
|    Blake Stone<bstone@acs.ucalgary.ca>
|        -- original concept and Solitaire.app
|        -- CardSet classes, Klondike game
|
|----------------------------------------------------------------------------
\---------------------------------------------------------------------------*/

#import <AppKit/AppKit.h>
#import <Solitaire/CardSet.h>
//#import "undo.subproj/change.h"
#import <Solitaire/ChangeManager.h>

@class Preferences;
@class GameModule;
@class ModuleList;

#define IBOutlet

@interface Solitaire:ChangeManager
{
    IBOutlet NSWindow* 		infoPanel;
    IBOutlet NSWindow* 		winPanel;			// default win panel
    IBOutlet NSWindow* 		settingsPanel;
    
    IBOutlet Preferences*	preferencesObject;
    IBOutlet NSBrowser*		gameSelectionBrowser;
    
    IBOutlet NSView*		commonInspector;	// do-nothing inspector
    IBOutlet NSView*		nullInspector;		// for games that wouldn't load
    NSView*					currentInspector;   // active inspector
    NSRect					inspectorFrame;         // size of inspector
    GameModule*				oldInspectorOwner;      // game controller of previous game
    IBOutlet NSBox*			invisibleInspectorBox;  // view where inspectors are shown
    
    ModuleList*				moduleList;				// list of available games

    int						realGameIndex;			// index of current game in browser

    BOOL					browserValid;           // are browser contents valid?
    BOOL					windowHasBeenDisplayed; // has the settings panel been shown?
    
}

- (void) applicationDidFinishLaunching:(NSNotification*)notification;
- (void) applicationDidUnhide:(NSNotification*)notification;
- (int) application:sender openFile:(NSString*)filename;
- (BOOL) applicationShouldTerminate:(id)sender;
- (void) workspaceWillPowerOff:(NSNotification*)notification;

- (void) selectGameIndex:sender;
- (void) setGameIndex;
- (void) installInspector:(NSView*)newInspector ownedBy:(GameModule*)myController;
- (GameModule*) gameController;

- (void) browser:(NSBrowser *)sender createRowsForColumn:(int)column 
	inMatrix:(NSMatrix*)matrix;
- (BOOL) browser:(NSBrowser*)sender isColumnValid:(int)column;
- (void) addCellWithString:(NSString*)str at:(int)row toMatrix:(NSMatrix*)matrix;


- (void) newGame:sender;
- (void) restartGame:sender;
- (void) showRules:sender;

- (void) showInfoPanel:sender;
- (BOOL) windowShouldClose:(id)sender;

- (CardSize) cardSize;
- (CardBack) cardBack;
- (NSColor*) backgroundColor;
- (NSImage*) imageForSize:(CardSize)aSize;

- (void) win;

@end


// Stuff for building the list of games

@interface Solitaire (More)

- (void) getGameType;
- (void) setGameType:(NSString*)filename dir:(NSString*)dirname;

- (void) loadGamesFrom:(NSString*)dirname;
- (void) addGameToList:(NSString*)filename dir:(NSString*)dirname;

- (NSString*) appDirectory;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.