5 // Created by kuri on 10/02/26.
6 // Copyright 2010-2020 kuri. All rights reserved.
19 userDefaults = [NSUserDefaults standardUserDefaults];
21 infodict = [NSBundle mainBundle].infoDictionary;
22 mailVersion = infodict[@"CFBundleVersion"];
23 lastknow = [userDefaults stringForKey:@"LetterFixLastKnownBundleVersion"];
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 switch (systemVersionMinor) {
42 version = LF_Mavericks;
45 version = LF_Yosemite;
48 version = LF_ElCapitan;
54 version = LF_HighSierra;
60 version = LF_Catalina;
73 if (version != LF_Unknown) {
74 [userDefaults setObject:mailVersion forKey:@"LetterFixLastKnownBundleVersion"];
76 self.isActive = ![userDefaults boolForKey:@"LetterFixDisabled"];
77 self.shouldFixOsDependents = ![userDefaults boolForKey:@"LetterFixOsDependentFixDisabled"];
78 self.shouldFixParenSymbols = ![userDefaults boolForKey:@"LetterFixParenSymbolFixDisabled"];
79 self.shouldNotFixSomeParenSymbols = [userDefaults boolForKey:@"LetterFixSomeParenSymbolFixEnabled"];
80 self.shouldFixAllLetters = ![userDefaults boolForKey:@"LetterFixAllLetterFixDisabled"];
81 self.shouldAppendCodeInfo = [userDefaults boolForKey:@"LetterFixDoAppendCodeInfo"];
82 self.operationModeOnLoad = (int)[userDefaults integerForKey:@"LetterFixOperationAtOpen"];
83 if (version == LF_HighSierra || version == LF_Mojave || version == LF_Catalina)
84 self.shouldCheckSubject = [userDefaults integerForKey:@"LetterFixCheckSubjectEnabled"];
86 self.shouldCheckSubject = ![userDefaults integerForKey:@"LetterFixCheckSubjectDisabled"];
87 self.shouldCheckOnSave = [userDefaults integerForKey:@"LetterFixCheckOnSaveEnabled"];
88 self.shouldIgnoreZeroWidthSpace = [userDefaults boolForKey:@"LetterFixIgnoreZeroWidthSpace"];
89 menu = [[LFMenu alloc] initWithApp:self];
93 for (NSString *lang in [NSLocale preferredLanguages])
94 if ([lang hasPrefix:@"ja"]) return NO;
97 NSAlert *alert = [[NSAlert alloc] init];
98 [alert setMessageText:@"LetterFix plug-in"];
99 [alert setInformativeText:@"システム環境設定>言語とテキスト(Language & Text)内の言語リストに"
100 @"「日本語」が存在しません。この状態では Letter-fix は動作せず、すべての日本語メールはUTF-8で送信されます。"
101 @"言語リストに日本語を加えてください。なお順序は問いません。"];
102 [alert setAlertStyle:NSInformationalAlertStyle];
106 [[menu onoffMenuItem] setState:FALSE];
109 NSAlert *alert = [[NSAlert alloc] init];
110 [alert setMessageText:@"LetterFix plug-in"];
111 [alert setInformativeText:@"このバージョンのmacOSには対応していません。アンインストールしてください。"];
112 [alert setAlertStyle:NSInformationalAlertStyle];
125 - (void) setIsActive:(BOOL)active
127 [userDefaults setBool:!active forKey:@"LetterFixDisabled"];
131 - (BOOL) shouldFixOsDependents
133 return (flagFixOsDependents);
136 - (void) setShouldFixOsDependents:(BOOL)active
138 [userDefaults setBool:!active forKey:@"LetterFixOsDependentFixDisabled"];
139 flagFixOsDependents = active;
142 - (BOOL) shouldFixParenSymbols
144 return (flagFixParenSymbols);
147 - (void) setShouldFixParenSymbols:(BOOL)active
149 [userDefaults setBool:!active forKey:@"LetterFixParenSymbolFixDisabled"];
150 flagFixParenSymbols = active;
153 - (BOOL) shouldNotFixSomeParenSymbols
155 return (flagNotFixSomeParenSymbols);
158 - (void) setShouldNotFixSomeParenSymbols:(BOOL)active
160 [userDefaults setBool:active forKey:@"LetterFixSomeParenSymbolFixEnabled"];
161 flagNotFixSomeParenSymbols = active;
164 - (BOOL) shouldFixAllLetters
166 return (flagFixAllLetters);
169 - (void) setShouldFixAllLetters:(BOOL)active
171 [userDefaults setBool:!active forKey:@"LetterFixAllLetterFixDisabled"];
172 flagFixAllLetters = active;
175 - (BOOL) shouldAppendCodeInfo
177 return (flagAppendCodeInfo);
180 - (void) setShouldAppendCodeInfo:(BOOL)active
182 [userDefaults setBool:active forKey:@"LetterFixDoAppendCodeInfo"];
183 flagAppendCodeInfo = active;
186 - (int) operationModeOnLoad
188 return (operationModeOnLoad);
191 - (void) setOperationModeOnLoad:(int)value
193 [userDefaults setInteger:value forKey:@"LetterFixOperationAtOpen"];
194 operationModeOnLoad = value;
197 - (BOOL) shouldCheckSubject
199 return (flagCheckSubject);
202 - (void) setShouldCheckSubject:(BOOL)active
204 [userDefaults setBool:active forKey:@"LetterFixCheckSubjectEnabled"];
205 [userDefaults setBool:!active forKey:@"LetterFixCheckSubjectDisabled"];
206 flagCheckSubject = active;
209 - (BOOL) shouldCheckOnSave
211 return (flagCheckOnSave);
214 - (void) setShouldCheckOnSave:(BOOL)active
216 [userDefaults setBool:active forKey:@"LetterFixCheckOnSaveEnabled"];
217 flagCheckOnSave = active;
220 - (BOOL) shouldIgnoreZeroWidthSpace
222 return (flagIgnoreZeroWidthSpace);
225 - (void) setShouldIgnoreZeroWidthSpace:(BOOL)active
227 [userDefaults setBool:active forKey:@"LetterFixIgnoreZeroWidthSpace"];
228 flagIgnoreZeroWidthSpace = active;
232 @synthesize mailVersion;