3 * Copyright (c) 2011, Blue Static <http://www.bluestatic.org>
5 * This program is free software; you can redistribute it and/or modify it under the terms of the GNU
6 * General Public License as published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
10 * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along with this program; if not,
14 * write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17 #import "EvalController.h"
19 #import "DebuggerBackEnd.h"
21 static EvalController
* g_activeEvalController
= nil;
23 @implementation EvalController
25 @synthesize dataField
= dataField_
;
26 @synthesize resultField
= resultField_
;
28 - (id)initWithBackEnd
:(DebuggerBackEnd
*)backEnd
30 if (self = [super initWithWindowNibName
:@
"Eval"]) {
39 self.resultField
= nil;
43 - (void)runModalForWindow
:(NSWindow
*)parent
45 assert(!g_activeEvalController
);
46 g_activeEvalController
= self;
47 [NSApp beginSheet
:[self window
]
50 didEndSelector
:@selector(sheetDidEnd
:returnCode
:contextInfo
:)
54 - (void)sheetDidEnd
:(NSWindow
*)sheet
55 returnCode
:(NSInteger
)returnCode
56 contextInfo
:(void*)contextInfo
58 g_activeEvalController
= nil;
62 - (IBAction
)evaluateScript
:(id)sender
64 NSString
* code
= [self.dataField stringValue
];
65 [backEnd_ evalScript
:code
];
68 - (IBAction
)closeWindow
:(id)sender
71 [NSApp endSheet
:[self window
]];
74 + (void)scriptWasEvaluatedWithResult
:(NSString
*)result
76 [g_activeEvalController.resultField setStringValue
:result
];