mirror of
https://github.com/ksherlock/TwoTerm.git
synced 2024-10-15 23:23:38 +00:00
41c311fb8a
commit b9723cf13690c3a6ecefeee81b1d95a23bde0422 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Fri Feb 9 22:41:59 2018 -0500 remove most gui config stuff from new window. commit c690c5ebd99d6268f605094f429114a39ab3c180 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Feb 8 11:48:29 2018 -0500 crosshatch cursor, push/pop cursor state when no longer key window. commit ebaa0e535ee52a85a514efbaa872f891f7e817f1 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Feb 8 11:47:20 2018 -0500 child monitor - removeAll commit e591630339f3cd22ca461f2006f4c360fa43d026 Author: Kelvin Sherlock <ksherlock@gmail.com> Date: Thu Feb 8 11:46:19 2018 -0500 add config popup for the term window.
213 lines
5.2 KiB
Plaintext
213 lines
5.2 KiB
Plaintext
//
|
|
// NewTerminalWindowController.m
|
|
// 2Term
|
|
//
|
|
// Created by Kelvin Sherlock on 10/5/2010.
|
|
// Copyright (c) 2010 __MyCompanyName__. All rights reserved.
|
|
//
|
|
|
|
#import "NewTerminalWindowController.h"
|
|
#import "Emulator.h"
|
|
#import "Defaults.h"
|
|
#import "ExampleView.h"
|
|
|
|
@implementation NewTerminalWindowController
|
|
|
|
@synthesize exampleView = _exampleView;
|
|
|
|
@synthesize terminalTypeButton = _terminalTypeButton;
|
|
@synthesize colorSchemeButton = _colorSchemeButton;
|
|
|
|
@synthesize foregroundColorControl = _foregroundColorControl;
|
|
@synthesize backgroundColorControl = _backgroundColorControl;
|
|
|
|
// colors
|
|
enum {
|
|
kCustom = 0,
|
|
kGreenBlack,
|
|
kBlueBlack,
|
|
kWhiteBlue,
|
|
kAmberBlack,
|
|
kGreen2,
|
|
kBlue2
|
|
};
|
|
|
|
+(id)new
|
|
{
|
|
return [[self alloc] initWithWindowNibName: @"NewTerminal"];
|
|
|
|
}
|
|
|
|
|
|
- (void)dealloc {
|
|
// Clean-up code here.
|
|
|
|
[super dealloc];
|
|
}
|
|
|
|
- (void)windowDidLoad {
|
|
|
|
NSWindow *window;
|
|
|
|
[super windowDidLoad];
|
|
|
|
window = [self window];
|
|
//[[window contentView] setWantsLayer: YES];
|
|
|
|
//[window setAutorecalculatesContentBorderThickness: NO forEdge: NSMinYEdge];
|
|
//[window setAutorecalculatesContentBorderThickness: NO forEdge: NSMaxYEdge];
|
|
|
|
|
|
[_terminalTypeButton setMenu: [EmulatorManager emulatorMenu]];
|
|
|
|
// set color schemes.
|
|
[_colorSchemeButton setMenu: [self colorMenu]];
|
|
|
|
}
|
|
|
|
-(NSMenu *)colorMenu
|
|
{
|
|
NSMenuItem *item;
|
|
|
|
NSMenu *menu = [[NSMenu new] autorelease];
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Green Black"];
|
|
[item setTag: kGreenBlack];
|
|
[menu addItem: item];
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Blue Black"];
|
|
[item setTag: kBlueBlack];
|
|
[menu addItem: item];
|
|
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"White Blue"];
|
|
[item setTag: kWhiteBlue];
|
|
[menu addItem: item];
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Amber Black"];
|
|
[item setTag: kAmberBlack];
|
|
[menu addItem: item];
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Green Phosphor"];
|
|
[item setTag: kGreen2];
|
|
[menu addItem: item];
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Blue Phosphor"];
|
|
[item setTag: kBlue2];
|
|
[menu addItem: item];
|
|
|
|
|
|
|
|
item = [[NSMenuItem new] autorelease];
|
|
[item setTitle: @"Custom"];
|
|
[item setTag: kCustom];
|
|
[menu addItem: item];
|
|
|
|
return menu;
|
|
}
|
|
|
|
#pragma mark -
|
|
#pragma mark IBActions
|
|
|
|
-(IBAction)cancelButton: (id)sender
|
|
{
|
|
[[self window] performClose: self];
|
|
}
|
|
|
|
-(IBAction)connectButton: (id)sender
|
|
{
|
|
|
|
NSMenuItem *item = [_terminalTypeButton selectedItem];
|
|
NSUInteger tag = [item tag];
|
|
|
|
Class klass = [EmulatorManager emulatorForTag: (unsigned)tag];
|
|
|
|
if (klass)
|
|
{
|
|
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
|
NSMutableDictionary *userInfo = [NSMutableDictionary dictionaryWithCapacity: 5];
|
|
|
|
[userInfo setObject: klass forKey: kClass];
|
|
[userInfo setObject: [_foregroundColorControl color] forKey: kForegroundColor];
|
|
[userInfo setObject: [_backgroundColorControl color] forKey: kBackgroundColor];
|
|
|
|
|
|
[nc postNotificationName: kNotificationNewTerminal object: self userInfo: userInfo];
|
|
|
|
}
|
|
|
|
|
|
[[self window] performClose: self];
|
|
}
|
|
|
|
-(IBAction)colorChanged:(id)sender
|
|
{
|
|
[_colorSchemeButton selectItemWithTag: kCustom];
|
|
// redraw sample...
|
|
}
|
|
|
|
-(IBAction)setColorScheme:(id)sender
|
|
{
|
|
switch ([_colorSchemeButton selectedTag])
|
|
{
|
|
case kGreenBlack:
|
|
[_foregroundColorControl setColor: [NSColor greenColor]];
|
|
[_backgroundColorControl setColor: [NSColor blackColor]];
|
|
break;
|
|
|
|
case kBlueBlack:
|
|
[_foregroundColorControl setColor: [NSColor colorWithCalibratedRed:0.0 green: 0.5 blue: 1.0 alpha: 1.0]];
|
|
[_backgroundColorControl setColor: [NSColor blackColor]];
|
|
break;
|
|
|
|
|
|
case kWhiteBlue:
|
|
[_foregroundColorControl setColor: [NSColor whiteColor]];
|
|
[_backgroundColorControl setColor: [NSColor blueColor]];
|
|
break;
|
|
|
|
case kAmberBlack:
|
|
[_foregroundColorControl setColor: [NSColor colorWithDeviceRed: 1.0 green: 0.5 blue: 0.0 alpha: 1.0]];
|
|
[_backgroundColorControl setColor: [NSColor blackColor]];
|
|
break;
|
|
|
|
case kBlue2:
|
|
[_foregroundColorControl setColor: [NSColor colorWithDeviceRed:0.324 green:0.592 blue:0.934 alpha:1.000]];
|
|
[_backgroundColorControl setColor: [NSColor blackColor]];
|
|
break;
|
|
|
|
case kGreen2:
|
|
[_foregroundColorControl setColor: [NSColor colorWithRed: 0.0 green: 1.0 blue: 0.6 alpha: 1.0]];
|
|
[_backgroundColorControl setColor: [NSColor blackColor]];
|
|
break;
|
|
|
|
case kCustom:
|
|
break;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#pragma mark -
|
|
#pragma mark NSWindowDelegate
|
|
|
|
-(void)windowWillClose:(NSNotification *)notification
|
|
{
|
|
[_foregroundColorControl deactivate];
|
|
[_backgroundColorControl deactivate];
|
|
|
|
[self autorelease];
|
|
}
|
|
|
|
|
|
|
|
@end
|