1 //
2 //  FileSettings.h
3 //  PythonLauncher
4 //
5 //  Created by Jack Jansen on Sun Jul 21 2002.
6 //  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
7 //
8 
9 #import <Foundation/Foundation.h>
10 
11 @protocol FileSettingsSource
12 - (NSString *) interpreter;
13 - (BOOL) honourhashbang;
14 - (BOOL) debug;
15 - (BOOL) verbose;
16 - (BOOL) inspect;
17 - (BOOL) optimize;
18 - (BOOL) nosite;
19 - (BOOL) tabs;
20 - (NSString *) others;
21 - (BOOL) with_terminal;
22 - (NSString *) scriptargs;
23 @end
24 
25 @interface FileSettings : NSObject <FileSettingsSource>
26 {
27     NSString *interpreter;      // The pathname of the interpreter to use
28     NSArray *interpreters;      // List of known interpreters
29     BOOL honourhashbang;        // #! line overrides interpreter
30     BOOL debug;                 // -d option: debug parser
31     BOOL verbose;               // -v option: verbose import
32     BOOL inspect;               // -i option: interactive mode after script
33     BOOL optimize;              // -O option: optimize bytecode
34     BOOL nosite;                // -S option: don't import site.py
35     BOOL tabs;                  // -t option: warn about inconsistent tabs
36     NSString *others;           // other options
37     NSString *scriptargs;       // script arguments (not for preferences)
38     BOOL with_terminal;         // Run in terminal window
39 
40     FileSettings *origsource;
41     NSString *prefskey;
42 }
43 
44 + (id)getDefaultsForFileType: (NSString *)filetype;
45 + (id)getFactorySettingsForFileType: (NSString *)filetype;
46 + (id)newSettingsForFileType: (NSString *)filetype;
47 
48 - (id)initForFileType: (NSString *)filetype;
49 - (id)initForFSDefaultFileType: (NSString *)filetype;
50 - (id)initForDefaultFileType: (NSString *)filetype;
51 
52 - (void)updateFromSource: (id <FileSettingsSource>)source;
53 - (NSString *)commandLineForScript: (NSString *)script;
54 
55 - (void)applyValuesFromDict: (NSDictionary *)dict;
56 - (void)reset;
57 - (NSArray *) interpreters;
58 
59 @end
60