X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fthecheat;a=blobdiff_plain;f=MyDocument.h;fp=MyDocument.h;h=1e928e0176265af5c1bea088442b623bb0a3837e;hp=0000000000000000000000000000000000000000;hb=42cf7bbe564d70233a0d73baee613f209eb00eb6;hpb=2d60a59a8ad195dd0af8f90c8d5b74a69ce7f4fa diff --git a/MyDocument.h b/MyDocument.h new file mode 100644 index 0000000..1e928e0 --- /dev/null +++ b/MyDocument.h @@ -0,0 +1,198 @@ + +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Project: The Cheat +// +// File: MyDocument.h +// Created: Sun Sep 07 2003 +// +// Copyright: 2003 Chaz McGarvey. All rights reserved. +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#import + +#include + +#import "ClientDelegate.h" + +#import "MenuExtras.h" + +#include "cheat_types.h" +#include "cheat_globals.h" +#include "cheat_net.h" + + +@interface MyDocument : NSDocument < ClientDelegate > +{ + // allows for easy interface updating + TCstatus status, lastStatus; + + // dealing with connecting + BOOL waitingToConnect; + NSConnection *connection; + NSData *connectionAddress; + NSString *connectionName; + int sockfd; + NSNetServiceBrowser *browser; + + // for updating the interface + NSString *targetName; + int targetPID; + BOOL targetPaused; + + // list of broadcast servers + NSMutableArray *serverList; + NSMutableArray *addressList; + + TCaddress *searchResults; + int searchResultsAmount; + + // to allow for connecting on new document + BOOL everConnected; + + // for the status field + NSString *savedStatusText; + NSColor *savedStatusColor; + NSTimer *statusTextTimer; + + // for updating the interface + int undoCount, redoCount; + BOOL addressSelected; + + // for changing variables every x seconds + NSTimer *changeTimer; + + // INTERFACE OUTLETS + IBOutlet NSWindow *cheatWindow; + IBOutlet NSPopUpButton *serverPopup; + IBOutlet NSButton *pauseButton; + IBOutlet NSPopUpButton *processPopup; + IBOutlet NSPopUpButton *typePopup; + IBOutlet NSPopUpButton *sizePopup; + IBOutlet NSTextField *searchTextField; + IBOutlet NSMatrix *searchRadioMatrix; + IBOutlet NSButton *searchButton; + IBOutlet NSButton *clearSearchButton; + IBOutlet NSButton *changeButton; + IBOutlet NSTableView *addressTable; + IBOutlet NSTextField *statusText; + IBOutlet NSProgressIndicator *statusBar; + + IBOutlet NSMenu *serverMenu; + IBOutlet NSMenu *processMenu; + IBOutlet NSMenu *typeMenu; + IBOutlet NSMenu *stringSizeMenu; + IBOutlet NSMenu *integerSizeMenu; + IBOutlet NSMenu *decimalSizeMenu; + + // FOR THE CHANGE SHEET + IBOutlet NSWindow *changeSheet; + IBOutlet NSTextField *changeTextField; + IBOutlet NSButton *recurringChangeButton; + IBOutlet NSComboBox *changeSecondsCombo; + IBOutlet NSButton *cancelButton; + IBOutlet NSButton *okButton; +} + +// UPDATE INTERFACE +- (void)initialInterfaceSetup; + +- (void)updateSearchButton; +- (void)updatePauseButton; +- (void)updateSearchBoxes; +- (void)updateChangeButton; + +- (void)setStatusDisconnected; +- (void)setStatusConnected; +- (void)setStatusCheating; +- (void)setStatusSearching; +- (void)setStatusChanging; +- (void)setStatusChangingLater; +- (void)setStatusChangingContinuously; +- (void)setStatusUndoing; +- (void)setStatusRedoing; +- (void)setStatusToLast; + +- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds; +- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds color:(NSColor *)color; +- (void)statusTextTimer:(NSTimer *)timer; + +// UPDATE CHANGE SHEET + + + +// CONNECT/DISCONNECT TO SERVER +- (void)connectToLocal; +- (void)connectToServer:(NSData *)addr name:(NSString *)name; +- (void)disconnect; + +// SEND NETWORK MESSAGE +- (void)sendProcessListRequest; +- (void)sendClearSearch; +- (void)sendSearch:(char const *)data size:(int)size; +- (void)sendChange:(char const *)data size:(int)size; +- (void)sendPauseTarget; +- (void)sendVariableValueRequest; +- (void)sendUndoRequest; +- (void)sendRedoRequest; +- (void)sendSetTargetPID:(int)pid; + +// RECEIVED NETWORK MESSAGE +- (void)receivedProcessList:(NSData *)data; +- (void)receivedSearchFinished; +- (void)receivedVariableList:(NSData *)data; +- (void)receivedChangeFinished; +- (void)receivedError:(NSData *)data; +- (void)receivedUndoFinished; +- (void)receivedRedoFinished; +- (void)receivedUndoRedoStatus:(NSData *)data; +- (void)receivedAppLaunched:(NSData *)data; +- (void)receivedAppQuit:(NSData *)data; +- (void)receivedTargetQuit; +- (void)receivedPauseFinished:(NSData *)data; + +// SEARCHING/CHANGING COMMANDS +- (void)search; +- (void)change; + +- (void)changeSheet:(NSWindow *)sheet returned:(int)returned context:(void *)context; + +- (void)changeTimer:(NSTimer *)timer; + +// CHEAT WINDOW INTERFACE +- (IBAction)typePopup:(id)sender; + +- (IBAction)searchButton:(id)sender; +- (IBAction)clearSearchButton:(id)sender; + +- (IBAction)changeButton:(id)sender; + +- (IBAction)serverMenuItem:(id)sender; +- (IBAction)serverMenuDisconnect:(id)sender; +- (IBAction)serverMenuLocal:(id)sender; +- (IBAction)processMenuItem:(id)sender; + +- (IBAction)pauseButton:(id)sender; + +- (IBAction)undoMenu:(id)sender; +- (IBAction)redoMenu:(id)sender; + +// CHANGE SHEET INTERFACE +- (IBAction)cancelButton:(id)sender; +- (IBAction)okButton:(id)sender; + +- (IBAction)recurringChangeButton:(id)sender; + +// CLEAN UP +- (void)clearSearch; +- (void)destroyResults; + +// NOTIFICATION SELECTORS +- (void)listenerStarted:(NSNotification *)note; +- (void)listenerStopped:(NSNotification *)note; + +- (void)windowsOnTopChanged:(NSNotification *)note; + +// ERROR HANDLING +- (void)handleErrorMessage:(NSString *)msg fatal:(BOOL)fatal; + +@end \ No newline at end of file