#import "HelpCtrl.h" @implementation HelpCtrl BOOL resetOnNextWrite=YES; NSColor *colorNormal, *colorBold, *colorLink; - (void) awakeFromNib { colorNormal=[NSColor blackColor]; colorLink=[NSColor blueColor]; colorBold=[NSColor redColor]; [helpText setRichText: TRUE]; [helpText setFont:[NSFont fontWithName:@"Monaco" size:11.0]]; } - (void) resetHelp { [helpWin makeKeyAndOrderFront: self]; [helpText setString:@""]; } char buf[512]; - (void) writeToHelpWindow: (const char*) t length: (int) l { NSRange r; NSLog(@"writeToHelpWindow (%d bytes)",l); if (resetOnNextWrite) { [helpText setString:@""]; resetOnNextWrite=NO; } r.length=0; r.location=[[helpText string] length]; [helpText setEditable: YES]; { int i=0, last=0; int tick1=-1; while (i=0) { NSRange tr; tr.location=tick1+1; tr.length=[[helpText string] length]+i-last-tick1-1; [helpText insertText:[NSString stringWithCString:(t+last) length:i-last]]; [helpText setTextColor:colorLink range:tr]; last=i; } if (t[i]=='_' && t[i+1]==8) { NSString *s; NSRange rg; int uc=0; if (i>last) [helpText insertText:[NSString stringWithCString:(t+last) length:i-last]]; rg.location=[[helpText string] length]; while (t[i]=='_' && t[i+1]==8 && t[i+2] && uc<512) { buf[uc]=t[i+2]; i+=3; uc++; } rg.length=uc; s=[NSString stringWithCString:buf length:uc]; [helpText insertText:s]; [helpText setTextColor:colorBold range:rg]; last=i; } else i++; } if (i>last) [helpText insertText:[NSString stringWithCString:(t+last) length:i-last]]; } r.location=[[helpText string] length]; r.length=0; NSLog(@"writeToHelpWindow txt added."); //[helpText setSelectedRange: r]; //[helpText display]; //[helpText insertText: @""]; [helpText setEditable: NO]; NSLog(@"writeToHelpWindow done."); } @end