mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
60 lines
1.3 KiB
Plaintext
60 lines
1.3 KiB
Plaintext
//
|
|
// File: VLLogWindow.mm - Manage output log window
|
|
//
|
|
// Author(s):
|
|
//
|
|
// (MN) Matthias Neeracher
|
|
//
|
|
// Copyright © 2005-2007 Matthias Neeracher
|
|
//
|
|
|
|
#import "VLLogWindow.h"
|
|
|
|
@implementation VLLogWindow
|
|
|
|
- (id)init
|
|
{
|
|
self = [super initWithWindowNibName:@"VLLogWindow"];
|
|
logText = [[NSMutableString alloc] initWithCapacity:1000];
|
|
|
|
return self;
|
|
}
|
|
|
|
- (void)dealloc
|
|
{
|
|
[logText autorelease];
|
|
[super dealloc];
|
|
}
|
|
|
|
- (IBAction)printDocument:(id)sender
|
|
{
|
|
[log print: sender];
|
|
}
|
|
|
|
- (NSString *)windowTitleForDocumentDisplayName:(NSString *)displayName
|
|
{
|
|
return [displayName stringByAppendingString: @" - Log"];
|
|
}
|
|
|
|
- (void) logFromFileHandle:(NSFileHandle *) h
|
|
{
|
|
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
|
|
NSData * data;
|
|
|
|
[logText setString: @""];
|
|
[log setString: logText];
|
|
while ((data = [h availableData]) && [data length]) {
|
|
NSString * append = [[[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding] autorelease];
|
|
dispatch_sync(dispatch_get_main_queue(), ^{
|
|
[logText appendString: append];
|
|
[log setString: logText];
|
|
[log scrollRangeToVisible: NSMakeRange([logText length], 0)];
|
|
});
|
|
[pool release];
|
|
pool = [[NSAutoreleasePool alloc] init];
|
|
}
|
|
[pool release];
|
|
}
|
|
|
|
@end
|