version 1.2, 2006/03/06 08:55:31 |
version 1.10, 2016/09/30 01:13:38 |
Line 18 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 18 static int myDocumentSaidTheMessageAboutX = 0; |
|
|
|
|
|
@implementation MyDocument |
@implementation MyDocument |
|
static int NoEngine = 0; // experimental. |
|
static NSMenuItem *menuItemNoEngine = nil; // NoEngine |
|
// For OnState or OffState in the execution menu |
|
static NSMenuItem *menuItemNotebookMode = nil; |
|
static NSMenuItem *menuItemBasicMode = nil; |
|
static NSMenuItem *menuItemRisaAsir = nil; |
|
static NSMenuItem *menuItemKanSm1 = nil; |
|
static NSMenuItem *menuItemOutputDebugMessages = nil; //cf. debugMyTunnel; |
|
static NSMenuItem *menuItemPrettyPrint = nil; // prettyPrint. |
|
|
|
|
- (void)dealloc { |
- (void)dealloc { |
MyOutputWindowController *mowc; |
MyOutputWindowController *mowc; |
if (myDebug) NSLog(@"dealloc of MyDocument.\n"); |
if (myDebug) NSLog(@"dealloc of MyDocument.\n"); |
Line 64 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 74 static int myDocumentSaidTheMessageAboutX = 0; |
|
[self addMenuExec]; // adding the execution menu. |
[self addMenuExec]; // adding the execution menu. |
[textViewIn setAllowsUndo:YES]; |
[textViewIn setAllowsUndo:YES]; |
if ([textViewIn isContinuousSpellCheckingEnabled]) [textViewIn toggleContinuousSpellChecking: self]; // Turn off the spell checking. |
if ([textViewIn isContinuousSpellCheckingEnabled]) [textViewIn toggleContinuousSpellChecking: self]; // Turn off the spell checking. |
|
if ([textViewIn isAutomaticQuoteSubstitutionEnabled]) [textViewIn toggleAutomaticQuoteSubstitution: self]; // Turn off the smart quote. |
|
if ([MyEnvironment isX11Installed] != 1) |
|
[self messageDialog: NSLocalizedString(@"X11 is not installed. To install it, insert MacOS DVD1 and open Optional install->Applications->X11",nil) with: 0]; |
|
// if ([MyEnvironment isGccInstalled] != 1) |
|
// [self messageDialog: NSLocalizedString(@"gcc is not installed. To install it, insert MacOS DVD1 and open Xcode Tools->XcodeTools.mpkg",nil) with: 0]; |
[self sayTheMessageAboutX]; |
[self sayTheMessageAboutX]; |
[self initAux]; |
[self initAux]; |
} |
} |
Line 140 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 155 static int myDocumentSaidTheMessageAboutX = 0; |
|
myDecoder = [[MyDecoder alloc] init]; [myDecoder retain]; |
myDecoder = [[MyDecoder alloc] init]; [myDecoder retain]; |
|
|
[self openMyModel: myEnvironment ]; |
[self openMyModel: myEnvironment ]; |
|
[MyOpenGLController initMyOpenGLController]; // For the second execution, it will do nothing. |
} |
} |
-(int) getMyDocumentKey { return myDocumentKey; } |
-(NSString *) getMyDocumentKey { return myDocumentKey; } |
|
|
-(id) openMyModel: (MyEnvironment *) myEnvironment { |
-(id) openMyModel: (MyEnvironment *) myEnvironment { |
[myEnvironment showForDebug]; // for debug. |
[myEnvironment showForDebug]; // for debug. |
Line 156 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 172 static int myDocumentSaidTheMessageAboutX = 0; |
|
[peerEndEvaluteMark retain]; |
[peerEndEvaluteMark retain]; |
|
|
[self stopIndicator]; |
[self stopIndicator]; |
|
if (NoEngine && (!restartMode)) { task = nil; return self; } |
|
|
// Initialization to call /bin/bash |
// Initialization to call /bin/bash |
outboundPipe = [NSPipe pipe]; // since autorelease is called in pipe. |
outboundPipe = [NSPipe pipe]; // since autorelease is called in pipe. |
inboundPipe = [NSPipe pipe]; |
inboundPipe = [NSPipe pipe]; |
Line 218 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 236 static int myDocumentSaidTheMessageAboutX = 0; |
|
|
|
-(id) restartMyModel: (enum peer_type) peerType { |
-(id) restartMyModel: (enum peer_type) peerType { |
MyEnvironment *myEnvironment; |
MyEnvironment *myEnvironment; |
|
restartMode = 1; |
[self closeMyModel]; |
[self closeMyModel]; |
myEnvironment = [[MyEnvironment alloc] initFor: peerType]; //BUG. leak memory? |
myEnvironment = [[MyEnvironment alloc] initFor: peerType]; //BUG. leak memory? |
[myEnvironment retain]; |
[myEnvironment retain]; |
Line 231 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 250 static int myDocumentSaidTheMessageAboutX = 0; |
|
NSLog(@"myDocumentSaidTheMessageAboutX=%d\n",myDocumentSaidTheMessageAboutX); |
NSLog(@"myDocumentSaidTheMessageAboutX=%d\n",myDocumentSaidTheMessageAboutX); |
if (!myDocumentSaidTheMessageAboutX) { |
if (!myDocumentSaidTheMessageAboutX) { |
if ([MyEnvironment checkX] != 1) |
if ([MyEnvironment checkX] != 1) |
[self messageDialog: |
// [self messageDialog: |
NSLocalizedString(@"A few commands (plot, ...) cannot be used, because X11 is not running.",nil) with: 0]; |
// NSLocalizedString(@"A few commands (plot, ...) cannot be used, because X11 is not running.",nil) with: 0]; |
|
[self changeOutputCounterFieldWithString: |
|
[NSLocalizedString(@"Output mini-view: ",nil) stringByAppendingString: |
|
NSLocalizedString(@"A few commands (plot, ...) cannot be used, because X11 is not running.",nil)]]; |
myDocumentSaidTheMessageAboutX = 1; |
myDocumentSaidTheMessageAboutX = 1; |
} |
} |
} |
} |
Line 242 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 264 static int myDocumentSaidTheMessageAboutX = 0; |
|
NSMutableString *cmd; |
NSMutableString *cmd; |
NSRange r; |
NSRange r; |
|
|
|
if (!task) return; |
if (inEvaluation) { |
if (inEvaluation) { |
NSLog(@"In evaluatioin. "); |
NSLog(@"In evaluatioin. "); |
[self messageDialog: NSLocalizedString(@"Evaluating...",nil) with: 0]; |
[self messageDialog: NSLocalizedString(@"Evaluating...",nil) with: 0]; |
Line 274 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 297 static int myDocumentSaidTheMessageAboutX = 0; |
|
[textViewIn replaceCharactersInRange: NSMakeRange(pos,0) withString: @"\n"]; |
[textViewIn replaceCharactersInRange: NSMakeRange(pos,0) withString: @"\n"]; |
} |
} |
cmd0 = [cmd0 substringWithRange:r ]; |
cmd0 = [cmd0 substringWithRange:r ]; |
} |
} |
|
[self outputBorderLine: [NSColor magentaColor]]; |
|
[self outputString: cmd0]; |
|
if ([cmd0 length] > 0) { |
|
if ([cmd0 characterAtIndex: ([cmd0 length]-1)] != 0xa) [self outputString: @"\n"]; |
|
} |
|
[self outputBorderLine: [NSColor yellowColor]]; |
}else{ |
}else{ |
cmd0 = [textViewIn string]; |
cmd0 = [textViewIn string]; |
MyOutputWindowController *mc; |
MyOutputWindowController *mc; |
Line 304 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 333 static int myDocumentSaidTheMessageAboutX = 0; |
|
[alert release]; |
[alert release]; |
|
|
fprintf(stderr,"Trying to interrupt.\n"); |
fprintf(stderr,"Trying to interrupt.\n"); |
[task interrupt]; |
if (task) [task interrupt]; |
inputCounter = outputCounter = 0; |
inputCounter = outputCounter = 0; |
[self stopIndicator]; |
[self stopIndicator]; |
[myDecoder reset]; |
[myDecoder reset]; |
Line 361 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 390 static int myDocumentSaidTheMessageAboutX = 0; |
|
NSLog(@"Evaluating... "); |
NSLog(@"Evaluating... "); |
NSLog(@"%@",cmd); |
NSLog(@"%@",cmd); |
// Evaluation is here. |
// Evaluation is here. |
|
if (!task) return -1; |
cmdInData = [cmd dataUsingEncoding: NSUTF8StringEncoding]; |
cmdInData = [cmd dataUsingEncoding: NSUTF8StringEncoding]; |
@try { |
@try { |
//todo if (yes) [outboundFileHandle writeData: peerStartEvaluateMark]; |
//todo if (yes) [outboundFileHandle writeData: peerStartEvaluateMark]; |
Line 388 static int myDocumentSaidTheMessageAboutX = 0; |
|
Line 418 static int myDocumentSaidTheMessageAboutX = 0; |
|
else { |
else { |
MyOutputWindowController *mc; |
MyOutputWindowController *mc; |
mc = [MyOutputWindowController sharedMyOutputWindowController: self]; |
mc = [MyOutputWindowController sharedMyOutputWindowController: self]; |
[mc outputStringToOutputWindow: amt]; |
if (prettyPrint) [mc outputStringToOutputWindow: amt withColor: [NSColor blueColor]]; |
|
else [mc outputStringToOutputWindow: amt]; |
} |
} |
} |
} |
|
-(void)outputBorderLine: (NSColor *)color { |
|
MyOutputWindowController *mc; |
|
mc = [MyOutputWindowController sharedMyOutputWindowController: self]; |
|
[mc outputStringToOutputWindow: @"----------------------------------------\n" withColor: color]; |
|
} |
- (void) outputErrorString: (NSString *) amt { |
- (void) outputErrorString: (NSString *) amt { |
int oldEnd; |
int oldEnd; |
int newEnd; |
int newEnd; |
Line 976 int debugInbound = 0; |
|
Line 1012 int debugInbound = 0; |
|
NSRange r; |
NSRange r; |
NSRange r3; |
NSRange r3; |
int currentLine,i; |
int currentLine,i; |
|
[self outputErrorString: NSLocalizedString(@"Move to the line ",nil)]; |
|
[self outputErrorString: [NSString stringWithFormat: @"%d\n",line]]; |
// move the selection to the line line. |
// move the selection to the line line. |
s = [textViewIn string]; |
s = [textViewIn string]; |
if (onlySelectedArea || notebookMode) r = [textViewIn selectedRange]; |
if (onlySelectedArea || notebookMode) r = [textViewIn selectedRange]; |
Line 996 int debugInbound = 0; |
|
Line 1034 int debugInbound = 0; |
|
} |
} |
-(int) gotoNextError: (id) sender{ |
-(int) gotoNextError: (id) sender{ |
int n; |
int n; |
|
if (onlySelectedArea || notebookMode) |
|
[self outputErrorString: NSLocalizedString(@"The next error action will not work properly in this mode.\n",nil)]; |
n = [self nextLine: 0]; |
n = [self nextLine: 0]; |
if (n >= 0) { [self gotoLine: n]; return n;} |
if (n >= 0) { [self gotoLine: n]; return n;} |
else return -1; |
else return -1; |
Line 1011 int debugInbound = 0; |
|
Line 1051 int debugInbound = 0; |
|
return -1; |
return -1; |
} |
} |
gid = [[a objectAtIndex: 0] intValue]; |
gid = [[a objectAtIndex: 0] intValue]; |
|
if ([[a objectAtIndex: 1] hasPrefix: @"meta"]) {[self openGLMeta: [a objectAtIndex: 1] to: gid]; return 0; } |
[MyOpenGLController addOglComm: [a objectAtIndex: 1] to: gid from: self]; |
[MyOpenGLController addOglComm: [a objectAtIndex: 1] to: gid from: self]; |
return 0; |
return 0; |
} |
} |
Line 1026 int debugInbound = 0; |
|
Line 1067 int debugInbound = 0; |
|
[MyOpenGLController addOglInitComm: [a objectAtIndex: 1] to: gid from: self]; |
[MyOpenGLController addOglInitComm: [a objectAtIndex: 1] to: gid from: self]; |
return 0; |
return 0; |
} |
} |
|
-(void)openGLMeta: (NSString *) cmd to: (int) gid{ |
|
MyOpenGLController *oglc; |
|
oglc = [MyOpenGLController getOglWindow: gid]; |
|
if (!oglc) {[self printErrorMessage: |
|
[NSString stringWithFormat: @"Invalid gid %d in openGLMeta command %@\n",gid,cmd]]; return; } |
|
if ([cmd hasPrefix: @"meta_showListOfOglComm"]) { |
|
[self showListOfOglComm: gid]; return ; |
|
}else if ([cmd hasPrefix: @"meta_removeAllInit"]) { // longer command must come first, because we use prefix. |
|
[oglc removeAllOfOglInitComm]; |
|
}else if ([cmd hasPrefix: @"meta_removeLastInit"]) { |
|
[oglc removeLastOfOglInitComm]; |
|
}else if ([cmd hasPrefix: @"meta_removeAll"]) { |
|
[oglc removeAllOfOglComm]; |
|
}else if ([cmd hasPrefix: @"meta_removeLast"]) { |
|
[oglc removeLastOfOglComm]; |
|
}else{ |
|
[self printErrorMessage: [NSString stringWithFormat: @"Unknown OpenGL meta command %@\n",cmd]]; |
|
} |
|
} |
|
-(void) showListOfOglComm: (int) gid { |
|
MyDocument *md; |
|
MyOpenGLController *oglc; |
|
NSMutableArray *comm; |
|
int i,n; |
|
md = self; |
|
oglc = [MyOpenGLController getOglWindow: gid]; |
|
if (!oglc) {[self outputErrorString: @"Invalid gid in showListOfOglComm\n"]; return; } |
|
comm = [oglc getListOfOglInitComm]; |
|
n = [comm count]; |
|
[md outputString: NSLocalizedString(@"OpenGL init commands\n",nil)]; |
|
for (i=0; i<n; i++) { |
|
[md outputString: [NSString stringWithFormat: @"%04d: ",i]]; |
|
[md outputString: [[comm objectAtIndex: i] toString]]; |
|
[md outputString: @"\n"]; |
|
} |
|
comm = [oglc getListOfOglComm]; |
|
n = [comm count]; |
|
[md outputString: NSLocalizedString(@"OpenGL redraw commands\n",nil)]; |
|
for (i=0; i<n; i++) { |
|
[md outputString: [NSString stringWithFormat: @"%04d: ",i]]; |
|
[md outputString: [[comm objectAtIndex: i] toString]]; |
|
[md outputString: @"\n"]; |
|
} |
|
} |
|
|
|
|
-(void) pngActionFor: (NSString *)act { |
-(void) pngActionFor: (NSString *)act { |
NSArray *a; |
NSArray *a; |
id typesetExpression; |
id typesetExpression; |
Line 1042 int debugInbound = 0; |
|
Line 1128 int debugInbound = 0; |
|
// NSLog(@"%@",a); |
// NSLog(@"%@",a); |
if ([[a objectAtIndex: 0] hasPrefix: @"notAvailable"]) { |
if ([[a objectAtIndex: 0] hasPrefix: @"notAvailable"]) { |
[self messageDialog: |
[self messageDialog: |
NSLocalizedString(@"Typeset the output by TeX is not available. latex, dvips, and pstoimg must be installed.",nil) with: 0]; |
NSLocalizedString(@"Typeset the output by TeX is not available. latex and dvipng must be installed.",nil) with: 0]; |
prettyPrint = 1; [self setPrettyPrint: nil]; |
prettyPrint = 1; [self setPrettyPrint: nil]; |
return; |
return; |
} else if ([[a objectAtIndex: 0] compare: @"showFile"] == NSOrderedSame) { |
} else if ([[a objectAtIndex: 0] compare: @"showFile"] == NSOrderedSame) { |
Line 1093 int debugInbound = 0; |
|
Line 1179 int debugInbound = 0; |
|
[self updateSelectEngineMenu]; |
[self updateSelectEngineMenu]; |
[self oxEvaluateString: @"!sm1;" withMark: TRUE]; |
[self oxEvaluateString: @"!sm1;" withMark: TRUE]; |
} |
} |
|
// BUG: update* must be called when the focus is changed to "setState:" |
-(void) updateSelectEngineMenu { |
-(void) updateSelectEngineMenu { |
if (!menuItemRisaAsir) return; |
if (!menuItemRisaAsir) return; |
if (!menuItemKanSm1) return; |
if (!menuItemKanSm1) return; |
Line 1114 int debugInbound = 0; |
|
Line 1201 int debugInbound = 0; |
|
} |
} |
[MyUtil setDebugMyUtil]; |
[MyUtil setDebugMyUtil]; |
} |
} |
|
|
|
//BUG: [self setPrettyPrint: nil] or update must be called when focus is changed to "setState:" |
-(void) setPrettyPrint: (id) sender { |
-(void) setPrettyPrint: (id) sender { |
if (prettyPrint) { |
if (prettyPrint) { |
prettyPrint = 0; |
prettyPrint = 0; |
Line 1126 int debugInbound = 0; |
|
Line 1215 int debugInbound = 0; |
|
if (menuItemPrettyPrint) [menuItemPrettyPrint setState: NSOnState]; |
if (menuItemPrettyPrint) [menuItemPrettyPrint setState: NSOnState]; |
} |
} |
} |
} |
|
-(void) setNoEngine: (id) sender { |
|
if (NoEngine) { |
|
NoEngine = 0; |
|
if (menuItemNoEngine) [menuItemNoEngine setState: NSOffState]; |
|
} else { |
|
NoEngine = 1; |
|
if (menuItemNoEngine) [menuItemNoEngine setState: NSOnState]; |
|
} |
|
} |
|
|
-(void) loadAsirContrib: (id) sender { |
-(void) loadAsirContrib: (id) sender { |
NSString *com; |
NSString *com; |
Line 1212 int debugInbound = 0; |
|
Line 1310 int debugInbound = 0; |
|
[menuItemGotoNextError setTarget: [[NSApp mainWindow] document]]; |
[menuItemGotoNextError setTarget: [[NSApp mainWindow] document]]; |
[menuExec addItem: menuItemGotoNextError]; |
[menuExec addItem: menuItemGotoNextError]; |
|
|
// outputDebugMessage |
|
menuItemOutputDebugMessages = [[[NSMenuItem alloc] init] autorelease]; |
|
[menuItemOutputDebugMessages setTitle: NSLocalizedString(@"Output debug messages",nil)]; |
|
[menuItemOutputDebugMessages setAction: @selector(setDebugMyTunnel:)]; |
|
[menuItemOutputDebugMessages setTarget: [[NSApp mainWindow] document]]; |
|
[menuExec addItem: menuItemOutputDebugMessages]; |
|
|
|
// pretty print |
// pretty print |
menuItemPrettyPrint = [[[NSMenuItem alloc] init] autorelease]; |
menuItemPrettyPrint = [[[NSMenuItem alloc] init] autorelease]; [menuItemPrettyPrint retain]; // it is the static variable. |
[menuItemPrettyPrint setTitle: NSLocalizedString(@"Typeset the output by TeX",nil)]; |
[menuItemPrettyPrint setTitle: NSLocalizedString(@"Typeset the output by TeX",nil)]; |
[menuItemPrettyPrint setAction: @selector(setPrettyPrint:)]; |
[menuItemPrettyPrint setAction: @selector(setPrettyPrint:)]; |
[menuItemPrettyPrint setTarget: [[NSApp mainWindow] document]]; |
[menuItemPrettyPrint setTarget: [[NSApp mainWindow] document]]; |
Line 1236 int debugInbound = 0; |
|
Line 1327 int debugInbound = 0; |
|
[menuItemBasicLike setTitle: NSLocalizedString(@"BASIC-like",nil)]; |
[menuItemBasicLike setTitle: NSLocalizedString(@"BASIC-like",nil)]; |
[menuItemBasicLike setAction: @selector(setBasicStyle:)]; |
[menuItemBasicLike setAction: @selector(setBasicStyle:)]; |
[menuItemBasicLike setTarget: [[NSApp mainWindow] document]]; |
[menuItemBasicLike setTarget: [[NSApp mainWindow] document]]; |
menuItemBasicMode = menuItemBasicLike; |
menuItemBasicMode = menuItemBasicLike; [menuItemBasicMode retain]; |
[submenuInterfaceItem addItem: menuItemBasicLike]; |
[submenuInterfaceItem addItem: menuItemBasicLike]; |
// notebook-like |
// notebook-like |
NSMenuItem *menuItemNotebookLike = [[[NSMenuItem alloc] init] autorelease]; |
NSMenuItem *menuItemNotebookLike = [[[NSMenuItem alloc] init] autorelease]; |
[menuItemNotebookLike setTitle: NSLocalizedString(@"Notebook-like",nil)]; |
[menuItemNotebookLike setTitle: NSLocalizedString(@"Notebook-like",nil)]; |
[menuItemNotebookLike setAction: @selector(setNotebookStyle:)]; |
[menuItemNotebookLike setAction: @selector(setNotebookStyle:)]; |
[menuItemNotebookLike setTarget: [[NSApp mainWindow] document]]; |
[menuItemNotebookLike setTarget: [[NSApp mainWindow] document]]; |
menuItemNotebookMode = menuItemNotebookLike; |
menuItemNotebookMode = menuItemNotebookLike; [menuItemNotebookMode retain]; |
[submenuInterfaceItem addItem: menuItemNotebookLike]; |
[submenuInterfaceItem addItem: menuItemNotebookLike]; |
|
|
menuItemInterfaceStyle = [[[NSMenuItem alloc] init] autorelease]; |
menuItemInterfaceStyle = [[[NSMenuItem alloc] init] autorelease]; |
Line 1255 int debugInbound = 0; |
|
Line 1346 int debugInbound = 0; |
|
// select engine |
// select engine |
NSMenu *submenuSelectEngineItem = [[[NSMenu alloc] init] autorelease]; |
NSMenu *submenuSelectEngineItem = [[[NSMenu alloc] init] autorelease]; |
// asir |
// asir |
menuItemRisaAsir = [[[NSMenuItem alloc] init] autorelease]; |
menuItemRisaAsir = [[[NSMenuItem alloc] init] autorelease]; [menuItemRisaAsir retain]; |
[menuItemRisaAsir setTitle: NSLocalizedString(@"Risa/Asir",nil)]; |
[menuItemRisaAsir setTitle: NSLocalizedString(@"Risa/Asir",nil)]; |
[menuItemRisaAsir setAction: @selector(setEngineRisaAsir:)]; |
[menuItemRisaAsir setAction: @selector(setEngineRisaAsir:)]; |
[menuItemRisaAsir setTarget: [[NSApp mainWindow] document]]; |
[menuItemRisaAsir setTarget: [[NSApp mainWindow] document]]; |
[submenuSelectEngineItem addItem: menuItemRisaAsir]; |
[submenuSelectEngineItem addItem: menuItemRisaAsir]; |
// notebook-like |
// notebook-like |
menuItemKanSm1 = [[[NSMenuItem alloc] init] autorelease]; |
menuItemKanSm1 = [[[NSMenuItem alloc] init] autorelease]; [menuItemKanSm1 retain]; |
[menuItemKanSm1 setTitle: NSLocalizedString(@"Kan/sm1",nil)]; |
[menuItemKanSm1 setTitle: NSLocalizedString(@"Kan/sm1",nil)]; |
[menuItemKanSm1 setAction: @selector(setEngineKanSm1:)]; |
[menuItemKanSm1 setAction: @selector(setEngineKanSm1:)]; |
[menuItemKanSm1 setTarget: [[NSApp mainWindow] document]]; |
[menuItemKanSm1 setTarget: [[NSApp mainWindow] document]]; |
Line 1273 int debugInbound = 0; |
|
Line 1364 int debugInbound = 0; |
|
[menuExec addItem: menuItemSelectEngine]; |
[menuExec addItem: menuItemSelectEngine]; |
[self updateSelectEngineMenu]; |
[self updateSelectEngineMenu]; |
|
|
|
// outputDebugMessage |
|
menuItemOutputDebugMessages = [[[NSMenuItem alloc] init] autorelease]; [menuItemOutputDebugMessages retain]; |
|
[menuItemOutputDebugMessages setTitle: NSLocalizedString(@"Output debug messages",nil)]; |
|
[menuItemOutputDebugMessages setAction: @selector(setDebugMyTunnel:)]; |
|
[menuItemOutputDebugMessages setTarget: [[NSApp mainWindow] document]]; |
|
[menuExec addItem: menuItemOutputDebugMessages]; |
|
|
|
// NoEngine |
|
menuItemNoEngine = [[[NSMenuItem alloc] init] autorelease]; [menuItemNoEngine retain]; // it is the static variable. |
|
[menuItemNoEngine setTitle: NSLocalizedString(@"Do not start engine at startup",nil)]; |
|
[menuItemNoEngine setAction: @selector(setNoEngine:)]; |
|
[menuItemNoEngine setTarget: [[NSApp mainWindow] document]]; |
|
[menuExec addItem: menuItemNoEngine]; |
|
|
// test |
// test |
menuItemForTest = [[[NSMenuItem alloc] init] autorelease]; |
menuItemForTest = [[[NSMenuItem alloc] init] autorelease]; |