//// MyDocument.m// PythonLauncher//// Created by Jack Jansen on Fri Jul 19 2002.// Copyright (c) 2002 __MyCompanyName__. All rights reserved.//#import "MyDocument.h"#import "MyAppDelegate.h"#import "doscript.h"@implementation MyDocument- (id)init{self = [super init];if (self) {// Add your subclass-specific initialization here.// If an error occurs here, send a [self dealloc] message and return nil.script = [@"<no script>.py" retain];filetype = [@"Python Script" retain];settings = NULL;}return self;}- (NSString *)windowNibName{// Override returning the nib file name of the document// If you need to use a subclass of NSWindowController or if your document supports multiple NSWindowControllers, you should remove this method and override -makeWindowControllers instead.return @"MyDocument";}- (void)close{NSApplication *app = [NSApplication sharedApplication];[super close];if ([(MyAppDelegate*)[app delegate] shouldTerminate])[app terminate: self];}- (void)load_defaults{settings = [FileSettings newSettingsForFileType: filetype];}- (void)update_display{[interpreter setStringValue: [settings interpreter]];[honourhashbang setState: [settings honourhashbang]];[debug setState: [settings debug]];[verbose setState: [settings verbose]];[inspect setState: [settings inspect]];[optimize setState: [settings optimize]];[nosite setState: [settings nosite]];[tabs setState: [settings tabs]];[others setStringValue: [settings others]];[scriptargs setStringValue: [settings scriptargs]];[with_terminal setState: [settings with_terminal]];[commandline setStringValue: [settings commandLineForScript: script]];}- (void)update_settings{[settings updateFromSource: self];}- (BOOL)run{const char *cmdline;int sts;cmdline = [[settings commandLineForScript: script] UTF8String];if ([settings with_terminal]) {sts = doscript(cmdline);} else {sts = system(cmdline);}if (sts) {NSLog(@"Exit status: %d\n", sts);return NO;}return YES;}- (void)windowControllerDidLoadNib:(NSWindowController *) aController{[super windowControllerDidLoadNib:aController];// Add any code here that need to be executed once the windowController has loaded the document's window.[self load_defaults];[self update_display];}- (NSData *)dataRepresentationOfType:(NSString *)aType{// Insert code here to write your document from the given data. You can also choose to override -fileWrapperRepresentationOfType: or -writeToFile:ofType: instead.return nil;}- (BOOL)readFromFile:(NSString *)fileName ofType:(NSString *)type;{// Insert code here to read your document from the given data. You can also choose to override -loadFileWrapperRepresentation:ofType: or -readFromFile:ofType: instead.BOOL show_ui;// ask the app delegate whether we should show the UI or not.show_ui = [(MyAppDelegate*)[[NSApplication sharedApplication] delegate] shouldShowUI];[script release];script = [fileName retain];[filetype release];filetype = [type retain];settings = [FileSettings newSettingsForFileType: filetype];if (show_ui) {[self update_display];return YES;} else {[self run];[self performSelector:@selector(close) withObject:nil afterDelay:0.0];return YES;}}- (IBAction)do_run:(id)sender{[self update_settings];[self update_display];if ([self run])[self close];}- (IBAction)do_cancel:(id)sender{[self close];}- (IBAction)do_reset:(id)sender{[settings reset];[self update_display];}- (IBAction)do_apply:(id)sender{[self update_settings];[self update_display];}// FileSettingsSource protocol- (NSString *) interpreter { return [interpreter stringValue];};- (BOOL) honourhashbang { return [honourhashbang state];};- (BOOL) debug { return [debug state];};- (BOOL) verbose { return [verbose state];};- (BOOL) inspect { return [inspect state];};- (BOOL) optimize { return [optimize state];};- (BOOL) nosite { return [nosite state];};- (BOOL) tabs { return [tabs state];};- (NSString *) others { return [others stringValue];};- (NSString *) scriptargs { return [scriptargs stringValue];};- (BOOL) with_terminal { return [with_terminal state];};// Delegates- (void)controlTextDidChange:(NSNotification *)aNotification{[self update_settings];[self update_display];};@end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。