--- /dev/null
+#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