#import <Cocoa/Cocoa.h>
#import "MBCBoard.h"
@class MBCBoard;
@class MBCBoardView;
@class MBCEngine;
@class MBCInteractivePlayer;
@class NSSpeechSynthesizer;
@interface MBCController : NSObject
{
IBOutlet id fMainWindow;
IBOutlet id fNewGamePane;
IBOutlet id fGameVariant;
IBOutlet id fPlayers;
IBOutlet id fPlayersSimple;
IBOutlet id fSpeakMoves;
IBOutlet id fListenForMoves;
IBOutlet id fSearchTime;
IBOutlet id fBoardStyle;
IBOutlet id fPieceStyle;
IBOutlet id fTakebackMenuItem;
IBOutlet id fLicense;
IBOutlet id fGameInfo;
IBOutlet id fOpaqueView;
IBOutlet id fComputerVoice;
IBOutlet id fAlternateVoice;
#if HAS_FLOATING_BOARD
IBOutlet id fFloatingView;
IBOutlet id fFloatingMenuItem;
#endif
MBCBoard * fBoard;
MBCBoardView * fView;
MBCEngine * fEngine;
MBCInteractivePlayer * fInteractive;
NSMutableString * fEngineBuffer;
NSFileHandle * fEngineLogFile;
bool fIsLogging;
MBCVariant fVariant;
NSString * fWhiteType;
NSString * fBlackType;
NSDictionary * fLastLoad;
NSString * fLastSaved;
NSMutableDictionary * fStyleLocMap;
NSSpeechSynthesizer * fDefaultSynth;
NSSpeechSynthesizer * fAlternateSynth;
}
+ (MBCController *)controller;
- (id) init;
- (void) awakeFromNib;
- (IBAction) updateOptions:(id)sender;
- (IBAction) updateGraphicsOptions:(id)sender;
- (IBAction) updateSearchTime:(id)sender;
- (IBAction) updateStyles:(id)sender;
- (IBAction) newGame:(id)sender;
- (IBAction) startNewGame:(id)sender;
- (IBAction) cancelNewGame:(id)sender;
- (IBAction) profileDraw:(id)sender;
- (IBAction) takeback:(id)sender;
- (IBAction) toggleLogging:(id)sender;
- (IBAction) showHint:(id)sender;
- (IBAction) showLastMove:(id)sender;
- (IBAction) openGame:(id)sender;
- (IBAction) saveGame:(id)sender;
- (IBAction) saveGameAs:(id)sender;
- (IBAction) saveMoves:(id)sender;
- (IBAction) updateVoices:(id)sender;
#if HAS_FLOATING_BOARD
- (IBAction) toggleFloating:(id)sender;
#endif
- (void) startNewGame;
- (MBCBoard *) board;
- (MBCBoardView *) view;
- (MBCInteractivePlayer *) interactive;
- (MBCEngine *) engine;
- (void) logToEngine:(NSString *)text;
- (void) logFromEngine:(NSString *)text;
- (BOOL) speakMoves;
- (BOOL) listenForMoves;
- (BOOL) loadGame:(NSString *)fileName fromDict:(NSDictionary *)dict;
- (NSDictionary *) saveGameToDict;
- (BOOL) saveMovesTo:(NSString *)fileName;
- (NSWindowController *) windowController;
- (NSString *) localizedStyleName:(NSString *)name;
- (NSSpeechSynthesizer *) defaultSynth;
- (NSSpeechSynthesizer *) alternateSynth;
- (void)loadVoiceMenu:(id)menu withSelectedVoice:(NSString *)voiceIdentifierToSelect;
@end