-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathIFCompilerOptions.m
84 lines (62 loc) · 2.2 KB
/
IFCompilerOptions.m
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
//
// IFCompilerOptions.m
// Inform
//
// Created by Andrew Hunter on 10/10/2004.
// Copyright 2004 Andrew Hunter. All rights reserved.
//
#import "IFCompilerOptions.h"
#import "IFCompiler.h"
@implementation IFCompilerOptions
- (id) init {
return [self initWithNibName: @"CompilerSettings"];
}
- (void) dealloc {
[super dealloc];
}
// = Misc info =
- (NSString*) title {
return [[NSBundle mainBundle] localizedStringForKey: @"Compiler Settings"
value: @"Compiler Settings"
table: nil];
}
// = Setting up =
- (void) updateFromCompilerSettings {
IFCompilerSettings* settings = [self compilerSettings];
// Compiler versions
NSString* version = [settings compilerVersion];
NSEnumerator* compilerEnum = [[IFCompiler availableCompilers] objectEnumerator];
[compilerVersion removeAllItems];
NSDictionary* compilerInfo;
while (compilerInfo = [compilerEnum nextObject]) {
NSString* compilerStr = [NSString stringWithFormat: @"%@ %@ (%@)",
[compilerInfo objectForKey: @"name"],
[compilerInfo objectForKey: @"version"],
[compilerInfo objectForKey: @"platform"]];
[compilerVersion addItemWithTitle: compilerStr];
if ([IFCompiler compareCompilerVersion: version
toVersion: [compilerInfo objectForKey: @"version"]] == NSOrderedSame) {
[compilerVersion selectItemAtIndex: [compilerVersion numberOfItems]-1];
}
}
// Natural Inform
[naturalInform setState: [settings usingNaturalInform]?NSOnState:NSOffState];
}
- (void) setSettings {
IFCompilerSettings* settings = [self compilerSettings];
// Compiler version
int item = [compilerVersion indexOfSelectedItem];
NSString* newVersion;
newVersion = [[[IFCompiler availableCompilers] objectAtIndex: item] objectForKey: @"version"];
[settings setCompilerVersion: newVersion];
// Whether or not to use Natural Inform
[settings setUsingNaturalInform: [naturalInform state]==NSOnState];
}
- (BOOL) enableForCompiler: (NSString*) compiler {
// These settings are unsafe to change while using Natural Inform
if ([compiler isEqualToString: IFCompilerNaturalInform])
return NO;
else
return YES;
}
@end