version 1.3, 2006/03/07 11:15:23 |
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 |
// For OnState or OffState in the execution menu |
static NSMenuItem *menuItemNotebookMode = nil; |
static NSMenuItem *menuItemNotebookMode = nil; |
static NSMenuItem *menuItemBasicMode = nil; |
static NSMenuItem *menuItemBasicMode = nil; |
Line 72 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 74 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
[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 150 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 157 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
[self openMyModel: myEnvironment ]; |
[self openMyModel: myEnvironment ]; |
[MyOpenGLController initMyOpenGLController]; // For the second execution, it will do nothing. |
[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 165 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 172 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
[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 227 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 236 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
|
|
-(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 240 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 250 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
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 251 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 264 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
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 283 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 297 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
[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 313 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 333 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
[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 370 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 390 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
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 401 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
Line 422 static NSMenuItem *menuItemPrettyPrint = nil; // pret |
|
else [mc outputStringToOutputWindow: amt]; |
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 1025 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; } |
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 1044 int debugInbound = 0; |
|
Line 1070 int debugInbound = 0; |
|
-(void)openGLMeta: (NSString *) cmd to: (int) gid{ |
-(void)openGLMeta: (NSString *) cmd to: (int) gid{ |
MyOpenGLController *oglc; |
MyOpenGLController *oglc; |
oglc = [MyOpenGLController getOglWindow: gid]; |
oglc = [MyOpenGLController getOglWindow: gid]; |
if (!oglc) {[self outputErrorString: [NSString stringWithFormat: @"Invalid gid %d in openGLMeta\n",gid]]; return; } |
if (!oglc) {[self printErrorMessage: |
|
[NSString stringWithFormat: @"Invalid gid %d in openGLMeta command %@\n",gid,cmd]]; return; } |
if ([cmd hasPrefix: @"meta_showListOfOglComm"]) { |
if ([cmd hasPrefix: @"meta_showListOfOglComm"]) { |
[self showListOfOglComm: gid]; return ; |
[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"]) { |
}else if ([cmd hasPrefix: @"meta_removeAll"]) { |
[oglc removeAllOfOglComm]; |
[oglc removeAllOfOglComm]; |
}else if ([cmd hasPrefix: @"meta_removeLast"]) { |
}else if ([cmd hasPrefix: @"meta_removeLast"]) { |
[oglc removeLastOfOglComm]; |
[oglc removeLastOfOglComm]; |
}else if ([cmd hasPrefix: @"meta_removeAllInit"]) { |
|
[oglc removeAllOfOglInitComm]; |
|
}else if ([cmd hasPrefix: @"meta_removeLastInit"]) { |
|
[oglc removeLastOfOglInitComm]; |
|
}else{ |
}else{ |
[self outputErrorString: [NSString stringWithFormat: @"Unknown OpenGL meta command %@\n",cmd]]; |
[self printErrorMessage: [NSString stringWithFormat: @"Unknown OpenGL meta command %@\n",cmd]]; |
} |
} |
} |
} |
-(void) showListOfOglComm: (int) gid { |
-(void) showListOfOglComm: (int) gid { |
Line 1101 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 1188 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 1274 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 retain]; |
|
[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 retain]; // it is the static variable. |
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)]; |
Line 1335 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]; |