5 // Created by kuri on 10/02/26.
6 // Copyright 2010-2015 kuri. All rights reserved.
18 userDefaults = [NSUserDefaults standardUserDefaults];
20 infodict = [[NSBundle mainBundle] infoDictionary];
21 mailversion = [infodict objectForKey:@"CFBundleVersion"];
22 lastknow = [userDefaults stringForKey:@"LetterFixLastKnownBundleVersion"];
23 verm = [[infodict valueForKey:@"CFBundleVersion"] integerValue];
25 if (lastknow && [mailversion compare:lastknow] != NSOrderedSame) {
26 NSAlert *alert = [[NSAlert alloc] init];
27 [alert setMessageText:@"LetterFix plug-in"];
28 [alert setInformativeText:@"Mail.app が変更されました。\n"
29 @"Mail.app のアップデート等により,プラグインの動作に問題が発生する場合は,アンインストールしてください。\n"
30 @"このプラグインは通常 ~/Library/Mail/Bundles/ にインストールされています。"];
31 [alert setAlertStyle:NSInformationalAlertStyle];
36 SInt32 systemVersionMajor, systemVersionMinor;
37 if ((Gestalt(gestaltSystemVersionMajor, &systemVersionMajor) == noErr)&&
38 (Gestalt(gestaltSystemVersionMinor, &systemVersionMinor) == noErr)) {
39 if (systemVersionMajor == 10) {
40 if (systemVersionMinor == 9) {
42 } else if (systemVersionMinor == 10) {
44 } else if (systemVersionMinor == 11) {
56 [userDefaults setObject:mailversion forKey:@"LetterFixLastKnownBundleVersion"];
58 [self setIsActive:![userDefaults boolForKey:@"LetterFixDisabled"]];
59 [self setIsOsDependentFix:![userDefaults boolForKey:@"LetterFixOsDependentFixDisabled"]];
60 [self setParenSymbolFix:![userDefaults boolForKey:@"LetterFixParenSymbolFixDisabled"]];
61 [self setSomeParenSymbolNotFix:[userDefaults boolForKey:@"LetterFixSomeParenSymbolFixEnabled"]];
62 [self setIsAllLetterFix:![userDefaults boolForKey:@"LetterFixAllLetterFixDisabled"]];
63 [self setOperationAtOpen:[userDefaults integerForKey:@"LetterFixOperationAtOpen"]];
64 [self setIsCheckSubject:![userDefaults integerForKey:@"LetterFixCheckSubjectDisabled"]];
65 [self setWillCheckOnSave:[userDefaults integerForKey:@"LetterFixCheckOnSaveEnabled"]];
66 menu = [[LFMenu alloc] initWithApp:self];
69 if (![[NSLocale preferredLanguages] containsObject:@"ja"]) {
70 NSAlert *alert = [[NSAlert alloc] init];
71 [alert setMessageText:@"LetterFix plug-in"];
72 [alert setInformativeText:@"システム環境設定>言語とテキスト(Language & Text)内の言語リストに"
73 @"「日本語」が存在しません。そのため Letter-fix は動作せず、すべての日本語メールはUTF-8で送信されます。"
74 @"言語リストに日本語を加えてください。なお順序は問いません。"];
75 [alert setAlertStyle:NSInformationalAlertStyle];
79 [[menu onoffMenuItem] setState:FALSE];
90 - (void) setIsActive:(BOOL)active
92 [userDefaults setBool:!active forKey:@"LetterFixDisabled"];
96 - (BOOL) isOsDependentFix
98 return isOsDependentFix;
101 - (void) setIsOsDependentFix:(BOOL)active
103 [userDefaults setBool:!active forKey:@"LetterFixOsDependentFixDisabled"];
104 isOsDependentFix = active;
107 - (BOOL) parenSymbolFix
109 return parenSymbolFix;
112 - (void) setParenSymbolFix:(BOOL)active
114 [userDefaults setBool:!active forKey:@"LetterFixParenSymbolFixDisabled"];
115 parenSymbolFix = active;
118 - (BOOL) someParenSymbolNotFix
120 return someParenSymbolNotFix;
123 - (void) setSomeParenSymbolNotFix:(BOOL)active
125 [userDefaults setBool:active forKey:@"LetterFixSomeParenSymbolFixEnabled"];
126 someParenSymbolNotFix = active;
129 - (BOOL) isAllLetterFix
131 return isAllLetterFix;
134 - (void) setIsAllLetterFix:(BOOL)active
136 [userDefaults setBool:!active forKey:@"LetterFixAllLetterFixDisabled"];
137 isAllLetterFix = active;
140 - (int) operationAtOpen
142 return operationAtOpen;
145 - (void) setOperationAtOpen:(int)value
147 [userDefaults setInteger:value forKey:@"LetterFixOperationAtOpen"];
148 operationAtOpen = value;
151 - (BOOL) isCheckSubject
153 return isCheckSubject;
156 - (void) setIsCheckSubject:(BOOL)active
158 [userDefaults setBool:!active forKey:@"LetterFixCheckSubjectDisabled"];
159 isCheckSubject = active;
162 - (BOOL) willCheckOnSave
164 return willCheckOnSave;
167 - (void) setWillCheckOnSave:(BOOL)active
169 [userDefaults setBool:active forKey:@"LetterFixCheckOnSaveEnabled"];
170 willCheckOnSave = active;