Home | History | Annotate | Download | only in PythonLauncher
      1 #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     [interpreter reloadData];
     31     [interpreter setStringValue: [settings interpreter]];
     32     [honourhashbang setState: [settings honourhashbang]];
     33     [debug setState: [settings debug]];
     34     [verbose setState: [settings verbose]];
     35     [inspect setState: [settings inspect]];
     36     [optimize setState: [settings optimize]];
     37     [nosite setState: [settings nosite]];
     38     [tabs setState: [settings tabs]];
     39     [others setStringValue: [settings others]];
     40     [with_terminal setState: [settings with_terminal]];
     41     // Not scriptargs, it isn't for preferences
     42     [commandline setStringValue: [settings commandLineForScript: @"<your script here>"]];
     43 }
     44 
     45 - (void) windowDidLoad
     46 {
     47     [super windowDidLoad];
     48     [self load_defaults];
     49     [self update_display];
     50 }
     51 
     52 - (void)update_settings
     53 {
     54     [settings updateFromSource: self];
     55 }
     56 
     57 - (IBAction)do_filetype:(id)sender
     58 {
     59     [self load_defaults];
     60     [self update_display];
     61 }
     62 
     63 - (IBAction)do_reset:(id)sender
     64 {
     65     [settings reset];
     66     [self update_display];
     67 }
     68 
     69 - (IBAction)do_apply:(id)sender
     70 {
     71     [self update_settings];
     72     [self update_display];
     73 }
     74 
     75 // FileSettingsSource protocol
     76 - (NSString *) interpreter { return [interpreter stringValue];};
     77 - (BOOL) honourhashbang { return [honourhashbang state]; };
     78 - (BOOL) debug { return [debug state];};
     79 - (BOOL) verbose { return [verbose state];};
     80 - (BOOL) inspect { return [inspect state];};
     81 - (BOOL) optimize { return [optimize state];};
     82 - (BOOL) nosite { return [nosite state];};
     83 - (BOOL) tabs { return [tabs state];};
     84 - (NSString *) others { return [others stringValue];};
     85 - (BOOL) with_terminal { return [with_terminal state];};
     86 - (NSString *) scriptargs { return @"";};
     87 
     88 // Delegates
     89 - (void)controlTextDidChange:(NSNotification *)aNotification
     90 {
     91     [self update_settings];
     92     [self update_display];
     93 };
     94 
     95 // NSComboBoxDataSource protocol
     96 - (unsigned int)comboBox:(NSComboBox *)aComboBox indexOfItemWithStringValue:(NSString *)aString
     97 {
     98     NSArray *interp_list = [settings interpreters];
     99     unsigned int rv = [interp_list indexOfObjectIdenticalTo: aString];
    100     return rv;
    101 }
    102 
    103 - (id)comboBox:(NSComboBox *)aComboBox objectValueForItemAtIndex:(int)index
    104 {
    105     NSArray *interp_list = [settings interpreters];
    106     id rv = [interp_list objectAtIndex: index];
    107     return rv;
    108 }
    109 
    110 - (int)numberOfItemsInComboBox:(NSComboBox *)aComboBox
    111 {
    112     NSArray *interp_list = [settings interpreters];
    113     int rv = [interp_list count];
    114     return rv;
    115 }
    116 
    117 
    118 @end
    119