blob: 311c37502bb2208715261ce0b1992a7f0235dae0 [file] [log] [blame]
Jack Jansen3bbb6172002-07-29 21:36:35 +00001#import "PreferencesWindowController.h"
2
3@implementation PreferencesWindowController
4
5+ getPreferencesWindow
6{
7 static PreferencesWindowController *_singleton;
8
9 if (!_singleton)
10 _singleton = [[PreferencesWindowController alloc] init];
11 [_singleton showWindow: _singleton];
12 return _singleton;
13}
14
15- (id) init
16{
17 self = [self initWithWindowNibName: @"PreferenceWindow"];
18 return self;
19}
20
21- (void)load_defaults
22{
23 NSString *title = [filetype titleOfSelectedItem];
24
25 settings = [FileSettings getDefaultsForFileType: title];
26}
27
28- (void)update_display
29{
30// [[self window] setTitle: script];
31
Jack Jansen122f87f2004-07-16 12:36:02 +000032 [interpreter reloadData];
Jack Jansen3bbb6172002-07-29 21:36:35 +000033 [interpreter setStringValue: [settings interpreter]];
Jack Jansen3d3b7462003-02-17 15:40:00 +000034 [honourhashbang setState: [settings honourhashbang]];
Jack Jansen3bbb6172002-07-29 21:36:35 +000035 [debug setState: [settings debug]];
36 [verbose setState: [settings verbose]];
37 [inspect setState: [settings inspect]];
38 [optimize setState: [settings optimize]];
39 [nosite setState: [settings nosite]];
40 [tabs setState: [settings tabs]];
41 [others setStringValue: [settings others]];
42 [with_terminal setState: [settings with_terminal]];
Jack Jansend7cccdd2003-06-20 22:21:03 +000043 // Not scriptargs, it isn't for preferences
Jack Jansen3bbb6172002-07-29 21:36:35 +000044
45 [commandline setStringValue: [settings commandLineForScript: @"<your script here>"]];
46}
47
48- (void) windowDidLoad
49{
50 [super windowDidLoad];
51 [self load_defaults];
52 [self update_display];
53}
54
55- (void)update_settings
56{
57 [settings updateFromSource: self];
58}
59
60- (IBAction)do_filetype:(id)sender
61{
62 [self load_defaults];
63 [self update_display];
64}
65
66- (IBAction)do_reset:(id)sender
67{
Jack Jansen2095c062002-11-25 13:11:06 +000068 [settings reset];
Jack Jansen3bbb6172002-07-29 21:36:35 +000069 [self update_display];
70}
71
72- (IBAction)do_apply:(id)sender
73{
74 [self update_settings];
75 [self update_display];
76}
77
78// FileSettingsSource protocol
79- (NSString *) interpreter { return [interpreter stringValue];};
Jack Jansen3d3b7462003-02-17 15:40:00 +000080- (BOOL) honourhashbang { return [honourhashbang state]; };
Jack Jansen3bbb6172002-07-29 21:36:35 +000081- (BOOL) debug { return [debug state];};
82- (BOOL) verbose { return [verbose state];};
83- (BOOL) inspect { return [inspect state];};
84- (BOOL) optimize { return [optimize state];};
85- (BOOL) nosite { return [nosite state];};
86- (BOOL) tabs { return [tabs state];};
87- (NSString *) others { return [others stringValue];};
88- (BOOL) with_terminal { return [with_terminal state];};
Jack Jansend7cccdd2003-06-20 22:21:03 +000089- (NSString *) scriptargs { return @"";};
Jack Jansen3bbb6172002-07-29 21:36:35 +000090
91// Delegates
92- (void)controlTextDidChange:(NSNotification *)aNotification
93{
94 [self update_settings];
95 [self update_display];
96};
97
Jack Jansenf044e092002-12-26 22:10:53 +000098// NSComboBoxDataSource protocol
99- (unsigned int)comboBox:(NSComboBox *)aComboBox indexOfItemWithStringValue:(NSString *)aString
100{
Jack Jansen122f87f2004-07-16 12:36:02 +0000101 NSArray *interp_list = [settings interpreters];
102 unsigned int rv = [interp_list indexOfObjectIdenticalTo: aString];
103 return rv;
Jack Jansenf044e092002-12-26 22:10:53 +0000104}
105
106- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(int)index
107{
Jack Jansen122f87f2004-07-16 12:36:02 +0000108 NSArray *interp_list = [settings interpreters];
109 id rv = [interp_list objectAtIndex: index];
110 return rv;
Jack Jansenf044e092002-12-26 22:10:53 +0000111}
112
113- (int)numberOfItemsInComboBox:(NSComboBox *)aComboBox
114{
Jack Jansen122f87f2004-07-16 12:36:02 +0000115 NSArray *interp_list = [settings interpreters];
116 int rv = [interp_list count];
117 return rv;
Jack Jansenf044e092002-12-26 22:10:53 +0000118}
119
Jack Jansen3bbb6172002-07-29 21:36:35 +0000120
121@end