public
Description: A handy OS X menu icon application for launching commands in Terminal.app and iTerm.
Homepage: http://mbcharbonneau.github.com/terminalicious
Clone URL: git://github.com/mbcharbonneau/terminalicious.git
terminalicious / DSHPrefsController.m
100755 86 lines (68 sloc) 1.74 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#import "DSHPrefsController.h"
 
@implementation DSHPrefsController
 
#pragma mark API
 
+ (id)sharedPrefsController;
{
id sharedController = nil;
 
if ( sharedController == nil )
sharedController = [[self alloc] initWithWindowNibName:@"Prefs"];
 
return sharedController;
}
 
- (void)setTerminalApp:(id)sender;
{
NSString *appName = ( [sender selectedRow] == 0 ) ? @"Terminal" : @"iTerm";
[[NSUserDefaults standardUserDefaults] setObject:appName forKey:@"terminalApp"];
}
 
- (void)setPosition:(id)sender;
{
NSString *level;
 
switch ( [sender indexOfSelectedItem] )
{
case 0:
level = @"top";
break;
case 1:
level = @"floating";
break;
case 2:
level = @"desktop";
break;
default:
return;
}
 
[[NSUserDefaults standardUserDefaults] setObject:level forKey:@"windowPosition"];
}
 
- (void)toggleKeepWindowOpen:(id)sender;
{
NSNumber *keepOpen = [NSNumber numberWithInt:[sender state]];
[[NSUserDefaults standardUserDefaults] setObject:keepOpen forKey:@"keepOpen"];
}
 
#pragma mark NSWindowController Overrides
 
- (void)windowDidLoad;
{
NSString *app = [[NSUserDefaults standardUserDefaults] objectForKey:@"terminalApp"];
NSString *level = [[NSUserDefaults standardUserDefaults] objectForKey:@"windowPosition"];
int levelIndex, appIndex;
 
if ( [level isEqualToString:@"top"] )
{
levelIndex = 0;
}
else if ( [level isEqualToString:@"top"] )
{
levelIndex = 1;
}
else
{
levelIndex = 2;
}
 
appIndex = ( [app isEqualToString:@"Terminal"] ) ? 0 : 1;
 
[windowPosition selectItemAtIndex:levelIndex];
[terminalApp selectCellAtRow:appIndex column:0];
}
 
- (IBAction)showWindow:(id)sender;
{
[NSApp activateIgnoringOtherApps:YES];
[[self window] center];
[super showWindow:sender];
}
 
@end