#import "Controller.h"
#import "GnuViewController.h"
#import "GnuView.h"
@implementation Controller
- (id) activeTerm
{
return activeTerm;
}
- (void) applicationDidFinishLaunching:(NSNotification *) notification
{
// NSApplication *theApplication = [notification object];
NSDictionary *gnutermDefaults;
NSPrintInfo *prInfo;
#if 0
gnutermDefaults = [NSDictionary dictionaryWithObjectsAndKeys: @"400", @"Width", @"300", @"Height", @"Buffered", @"Backing", NULL];
#endif
activeTerm = keyTerm = [self newGnuTerm:self];
myConnection = [NSConnection defaultConnection];
[myConnection retain];
[myConnection setRootObject:self];
if([myConnection registerName:@"gnuplotServer"] == NO) {
NSLog(@"Error registering %s\n", "gnuplotServer");
}
#warning PrintingConversion: The current PrintInfo object now depends on context. '[NSPrintInfo sharedPrintInfo]' used to be '[NSApp printInfo]'. This might want to be [[NSPrintOperation currentOperation] printInfo] or possibly [[PageLayout new] printInfo].
prInfo = [NSPrintInfo sharedPrintInfo];
// prInfo = [[NSPrintOperation currentOperation] printInfo];
#warning PrintingConversion: May be able to remove some of the [prInfo setXXXXMargin:] calls
[prInfo setLeftMargin:0];
[prInfo setRightMargin:0];
[prInfo setTopMargin:0];
[prInfo setBottomMargin:50];
[prInfo setOrientation:NSLandscapeOrientation];
[prInfo setHorizontallyCentered:YES];
[prInfo setVerticallyCentered:YES];
#if 0
/* Get user Preferences */
[[NSUserDefaults standardUserDefaults] registerDefaults: gnutermDefaults]; // TODO this may override existing values
[[DefaultSize cellAtIndex:0] setStringValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"Width"]];
[[DefaultSize cellAtIndex:1] setStringValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"Height"]];
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"Backing"] isEqualToString:@"Buffered"]) {
backing = NSBackingStoreBuffered;
[useBufferedSwitch setState:YES];
}
else {
backing = NSBackingStoreRetained;
[useBufferedSwitch setState:NO];
}
gvList = [NSMutableArray array];
[gvList retain];
#endif
}
- newGnuTerm:sender
{
NSWindow *win;
NSRect frame;
if ([NSBundle loadNibNamed:@"gnuview.nib" owner:self] == NO) {
return nil;
}
if (win = [activeTerm window]) {
frame = [win frame];
(&frame)->origin.x += offset;
(&frame)->origin.y -= offset;
if ( (offset += 24.0) > 100.0)
offset = 0.0;
[win setTitle:[NSString stringWithFormat: @"gnuplot %d", ++gnuviewNum]];
[win setFrame:frame display:YES];
[win makeKeyAndOrderFront:nil];
return activeTerm;
}
return nil;
}
- (void) setActiveTerm:(id) newTerm
{
if (activeTerm != nil) [activeTerm deactivate:self];
activeTerm = newTerm;
}
- (void) printPScodeInKey:sender
{
[[keyTerm gnuView] print:sender];
}
- (void) setKeyTerm: (id) newTerm
{
keyTerm = newTerm;
[NameField setStringValue:[[keyTerm window] title]];
[NameField selectText:self];
}
- (void) setKeyTitle:sender
{
[[keyTerm window] setTitle:[NameField stringValue]];
[[NameField window] performClose:self];
}
- (void) executePScode:(NSString *) PSstring termTitle:(NSString *) title;
{
NSLog(@"Request for window: %@\n", title);
if (activeTerm == nil) [self newGnuTerm:self];
[[activeTerm gnuView] executePS:PSstring];
}
@end