]> Dogcows Code - chaz/thecheat/blob - SessionController.h
The Cheat 1.1.2
[chaz/thecheat] / SessionController.h
1
2 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 // Project: The Cheat
4 //
5 // File: SessionController.h
6 // Created: Sun Sep 07 2003
7 //
8 // Copyright: 2003 Chaz McGarvey. All rights reserved.
9 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
11 #import <Cocoa/Cocoa.h>
12 #import <Chaz/Chaz.h>
13
14 #include <float.h>
15
16 #import "ClientDelegate.h"
17
18 #import "MenuExtras.h"
19
20 #include "cheat_types.h"
21 #include "cheat_globals.h"
22 #include "cheat_net.h"
23
24
25 @interface SessionController : NSWindowController < ClientDelegate >
26 {
27 // allows for easy interface updating
28 TCstatus status, lastStatus;
29
30 // dealing with connecting
31 BOOL waitingToConnect;
32 NSConnection *connection;
33 NSData *connectionAddress;
34 NSString *connectionName;
35 int sockfd;
36
37 // for updating the interface
38 NSString *targetName;
39 int targetPID;
40 BOOL targetPaused;
41
42 NSArray *serverList;
43 NSMutableArray *addressList;
44
45 TCaddress *searchResults;
46 int searchResultsAmount;
47 int searchResultsAmountDisplayed;
48
49 // to allow for connecting on new document
50 BOOL everConnected;
51
52 // for the status field
53 NSString *savedStatusText;
54 NSColor *savedStatusColor;
55 NSTimer *statusTextTimer;
56
57 // for updating the interface
58 int undoCount, redoCount;
59 BOOL addressSelected;
60
61 // for changing variables every x seconds
62 NSTimer *changeTimer;
63 NSArray *changeSelectedItems;
64
65 // INTERFACE OUTLETS
66 IBOutlet NSWindow *cheatWindow;
67 IBOutlet NSPopUpButton *serverPopup;
68 IBOutlet NSButton *pauseButton;
69 IBOutlet NSPopUpButton *processPopup;
70 IBOutlet NSPopUpButton *typePopup;
71 IBOutlet NSPopUpButton *sizePopup;
72 IBOutlet NSTextField *searchTextField;
73 IBOutlet NSMatrix *searchRadioMatrix;
74 IBOutlet NSButton *searchButton;
75 IBOutlet NSButton *clearSearchButton;
76 IBOutlet NSButton *changeButton;
77 IBOutlet NSTableView *addressTable;
78 IBOutlet CMStatusView *statusText;
79 IBOutlet NSProgressIndicator *statusBar;
80 IBOutlet NSTextField *descriptionText;
81
82 IBOutlet NSMenu *serverMenu;
83 IBOutlet NSMenu *processMenu;
84 IBOutlet NSMenu *typeMenu;
85 IBOutlet NSMenu *stringSizeMenu;
86 IBOutlet NSMenu *integerSizeMenu;
87 IBOutlet NSMenu *decimalSizeMenu;
88
89 // FOR THE CHANGE SHEET
90 IBOutlet NSWindow *changeSheet;
91 IBOutlet NSTextField *changeTextField;
92 IBOutlet NSButton *recurringChangeButton;
93 IBOutlet NSComboBox *changeSecondsCombo;
94 IBOutlet NSButton *cancelButton;
95 IBOutlet NSButton *okButton;
96 }
97
98 // UPDATE INTERFACE
99 - (void)initialInterfaceSetup;
100
101 - (void)updateSearchButton;
102 - (void)updatePauseButton;
103 - (void)updateSearchBoxes;
104 - (void)updateChangeButton;
105 - (void)updateDescriptionText;
106
107 - (void)setStatusDisconnected;
108 - (void)setStatusConnected;
109 - (void)setStatusCheating;
110 - (void)setStatusSearching;
111 - (void)setStatusChanging;
112 - (void)setStatusChangingLater;
113 - (void)setStatusChangingContinuously;
114 - (void)setStatusUndoing;
115 - (void)setStatusRedoing;
116 //- (void)setStatusToLast;
117
118 //- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds;
119 //- (void)setStatusText:(NSString *)msg duration:(NSTimeInterval)seconds color:(NSColor *)color;
120 //- (void)statusTextTimer:(NSTimer *)timer;
121
122 // UPDATE CHANGE SHEET
123
124
125
126 // CONNECT/DISCONNECT TO SERVER
127 - (void)connectToLocal;
128 - (void)connectToServer:(NSData *)addr name:(NSString *)name;
129 - (void)disconnect;
130
131 // SEND NETWORK MESSAGE
132 - (void)sendProcessListRequest;
133 - (void)sendClearSearch;
134 - (void)sendSearch:(char const *)data size:(int)size;
135 - (void)sendChange:(char const *)data size:(int)size;
136 - (void)sendPauseTarget;
137 - (void)sendVariableValueRequest;
138 - (void)sendUndoRequest;
139 - (void)sendRedoRequest;
140 - (void)sendSetTargetPID:(int)pid;
141
142 // RECEIVED NETWORK MESSAGE
143 - (void)receivedProcessList:(NSData *)data;
144 - (void)receivedSearchFinished;
145 - (void)receivedVariableList:(NSData *)data;
146 - (void)receivedChangeFinished;
147 - (void)receivedError:(NSData *)data;
148 - (void)receivedUndoFinished;
149 - (void)receivedRedoFinished;
150 - (void)receivedUndoRedoStatus:(NSData *)data;
151 - (void)receivedAppLaunched:(NSData *)data;
152 - (void)receivedAppQuit:(NSData *)data;
153 - (void)receivedTargetQuit;
154 - (void)receivedPauseFinished:(NSData *)data;
155
156 // SEARCHING/CHANGING COMMANDS
157 - (void)search;
158 - (void)change;
159
160 - (void)changeSheet:(NSWindow *)sheet returned:(int)returned context:(void *)context;
161
162 - (void)changeTimer:(NSTimer *)timer;
163
164 // CHEAT WINDOW INTERFACE
165 - (IBAction)typePopup:(id)sender;
166 - (IBAction)sizePopup:(id)sender;
167
168 - (IBAction)searchButton:(id)sender;
169 - (IBAction)clearSearchButton:(id)sender;
170
171 - (IBAction)changeButton:(id)sender;
172
173 - (IBAction)serverMenuItem:(id)sender;
174 - (IBAction)serverMenuDisconnect:(id)sender;
175 - (IBAction)serverMenuLocal:(id)sender;
176 - (IBAction)processMenuItem:(id)sender;
177
178 - (IBAction)pauseButton:(id)sender;
179
180 - (IBAction)undoMenu:(id)sender;
181 - (IBAction)redoMenu:(id)sender;
182
183 // CHANGE SHEET INTERFACE
184 - (IBAction)cancelButton:(id)sender;
185 - (IBAction)okButton:(id)sender;
186
187 - (IBAction)recurringChangeButton:(id)sender;
188
189 // CLEAN UP
190 - (void)clearSearch;
191 - (void)destroyResults;
192
193 // NOTIFICATION SELECTORS
194 - (void)listenerStarted:(NSNotification *)note;
195 - (void)listenerStopped:(NSNotification *)note;
196
197 - (void)windowsOnTopChanged:(NSNotification *)note;
198
199 // ERROR HANDLING
200 - (void)handleErrorMessage:(NSString *)msg fatal:(BOOL)fatal;
201
202 @end
This page took 0.039306 seconds and 4 git commands to generate.