|
|
#import "PreferencesWindowController.h"
@implementation PreferencesWindowController
+ getPreferencesWindow{ static PreferencesWindowController *_singleton;
if (!_singleton) _singleton = [[PreferencesWindowController alloc] init]; [_singleton showWindow: _singleton]; return _singleton;}
- (id) init{ self = [self initWithWindowNibName: @"PreferenceWindow"]; return self;}
- (void)load_defaults{ NSString *title = [filetype titleOfSelectedItem];
settings = [FileSettings getDefaultsForFileType: title];}
- (void)update_display{ [interpreter reloadData]; [interpreter setStringValue: [settings interpreter]]; [honourhashbang setState: [settings honourhashbang]]; [debug setState: [settings debug]]; [verbose setState: [settings verbose]]; [inspect setState: [settings inspect]]; [optimize setState: [settings optimize]]; [nosite setState: [settings nosite]]; [tabs setState: [settings tabs]]; [others setStringValue: [settings others]]; [with_terminal setState: [settings with_terminal]]; // Not scriptargs, it isn't for preferences [commandline setStringValue: [settings commandLineForScript: @"<your script here>"]];}
- (void) windowDidLoad{ [super windowDidLoad]; [self load_defaults]; [self update_display];}
- (void)update_settings{ [settings updateFromSource: self];}
- (IBAction)do_filetype:(id)sender{ [self load_defaults]; [self update_display];}
- (IBAction)do_reset:(id)sender{ [settings reset]; [self update_display];}
- (IBAction)do_apply:(id)sender{ [self update_settings]; [self update_display];}
// FileSettingsSource protocol- (NSString *) interpreter { return [interpreter stringValue];};- (BOOL) honourhashbang { return [honourhashbang state]; };- (BOOL) debug { return [debug state];};- (BOOL) verbose { return [verbose state];};- (BOOL) inspect { return [inspect state];};- (BOOL) optimize { return [optimize state];};- (BOOL) nosite { return [nosite state];};- (BOOL) tabs { return [tabs state];};- (NSString *) others { return [others stringValue];};- (BOOL) with_terminal { return [with_terminal state];};- (NSString *) scriptargs { return @"";};
// Delegates- (void)controlTextDidChange:(NSNotification *)aNotification{ [self update_settings]; [self update_display];};
// NSComboBoxDataSource protocol- (unsigned int)comboBox:(NSComboBox *)aComboBox indexOfItemWithStringValue:(NSString *)aString{ NSArray *interp_list = [settings interpreters]; unsigned int rv = [interp_list indexOfObjectIdenticalTo: aString]; return rv;}
- (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(int)index{ NSArray *interp_list = [settings interpreters]; id rv = [interp_list objectAtIndex: index]; return rv;}
- (int)numberOfItemsInComboBox:(NSComboBox *)aComboBox{ NSArray *interp_list = [settings interpreters]; int rv = [interp_list count]; return rv;}
@end
|