Pref // Merging OOBE module into Pref module.

This commit is contained in:
ShikiSuen 2022-01-29 15:04:21 +08:00
parent 3eecdca587
commit 5c0ae7282c
5 changed files with 111 additions and 138 deletions

View File

@ -150,7 +150,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NonModalAlertWindowControlle
LanguageModelManager.loadUserPhrases() LanguageModelManager.loadUserPhrases()
LanguageModelManager.loadUserPhraseReplacement() LanguageModelManager.loadUserPhraseReplacement()
OOBE.setMissingDefaults() Preferences.setMissingDefaults()
// 使 // 使
if (UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) != nil) == true { if (UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) != nil) == true {

View File

@ -1,80 +0,0 @@
/*
* clsOOBEDefaults.swift
*
* Copyright 2021-2022 vChewing Project (3-Clause BSD License).
* Derived from 2011-2022 OpenVanilla Project (MIT License).
* Some rights reserved. See "LICENSE.TXT" for details.
*/
import Cocoa
private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep"
private let kCheckUpdateAutomatically = "CheckUpdateAutomatically"
private let kCandidateListTextSize = "CandidateListTextSize"
private let kChooseCandidateUsingSpaceKey = "ChooseCandidateUsingSpaceKey"
private let kUseWinNT351BPMF = "UseWinNT351BPMF"
private let kSelectPhraseAfterCursorAsCandidate = "SelectPhraseAfterCursorAsCandidate"
private let kUseHorizontalCandidateList = "UseHorizontalCandidateList"
private let kCNS11643EnabledKey = "CNS11643Enabled"
private let kChineseConversionEnabledKey = "ChineseConversionEnabled"
private let kPhraseReplacementEnabledKey = "PhraseReplacementEnabled"
@objc public class OOBE : NSObject {
@objc public static func setMissingDefaults () {
// Preferences Module plist private
//
if UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) == nil {
UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically)
UserDefaults.standard.synchronize()
}
// 18
if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil {
UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize)
}
// true
if UserDefaults.standard.object(forKey: kChooseCandidateUsingSpaceKey) == nil {
UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpaceKey)
}
// WinNT351 false
if UserDefaults.standard.object(forKey: kUseWinNT351BPMF) == nil {
UserDefaults.standard.set(Preferences.useWinNT351BPMF, forKey: kUseWinNT351BPMF)
}
// 0
if UserDefaults.standard.object(forKey: kSelectPhraseAfterCursorAsCandidate) == nil {
UserDefaults.standard.set(Preferences.selectPhraseAfterCursorAsCandidate, forKey: kSelectPhraseAfterCursorAsCandidate)
}
//
if UserDefaults.standard.object(forKey: kUseHorizontalCandidateList) == nil {
UserDefaults.standard.set(Preferences.useHorizontalCandidateList, forKey: kUseHorizontalCandidateList)
}
//
if UserDefaults.standard.object(forKey: kCNS11643EnabledKey) == nil {
UserDefaults.standard.set(Preferences.cns11643Enabled, forKey: kCNS11643EnabledKey)
}
//
if UserDefaults.standard.object(forKey: kChineseConversionEnabledKey) == nil {
UserDefaults.standard.set(Preferences.chineseConversionEnabled, forKey: kChineseConversionEnabledKey)
}
//
if UserDefaults.standard.object(forKey: kPhraseReplacementEnabledKey) == nil {
UserDefaults.standard.set(Preferences.phraseReplacementEnabled, forKey: kPhraseReplacementEnabledKey)
}
//
if UserDefaults.standard.object(forKey: kShouldNotFartInLieuOfBeep) == nil {
UserDefaults.standard.set(Preferences.shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep)
}
UserDefaults.standard.synchronize()
}
}

View File

@ -182,7 +182,7 @@ static double FindHighestScore(const vector<NodeAnchor>& nodes, double epsilon)
- (void)activateServer:(id)client - (void)activateServer:(id)client
{ {
// Write missing OOBE user plist entries. // Write missing OOBE user plist entries.
[OOBE setMissingDefaults]; [Preferences setMissingDefaults];
// Read user plist. // Read user plist.
[[NSUserDefaults standardUserDefaults] synchronize]; [[NSUserDefaults standardUserDefaults] synchronize];
@ -1493,7 +1493,7 @@ NS_INLINE size_t max(size_t a, size_t b) { return a > b ? a : b; }
- (void)showPreferences:(id)sender - (void)showPreferences:(id)sender
{ {
// Write missing OOBE user plist entries. // Write missing OOBE user plist entries.
[OOBE setMissingDefaults]; [Preferences setMissingDefaults];
// show the preferences panel, and also make the IME app itself the focus // show the preferences panel, and also make the IME app itself the focus
if ([IMKInputController instancesRespondToSelector:@selector(showPreferences:)]) { if ([IMKInputController instancesRespondToSelector:@selector(showPreferences:)]) {

View File

@ -8,20 +8,21 @@
import Cocoa import Cocoa
private let kKeyboardLayoutPreferenceKey = "KeyboardLayout" private let kCheckUpdateAutomatically = "CheckUpdateAutomatically"
private let kBasisKeyboardLayoutPreferenceKey = "BasisKeyboardLayout" // alphanumeric ("ASCII") input basi private let kKeyboardLayoutPreference = "KeyboardLayout"
private let kFunctionKeyKeyboardLayoutPreferenceKey = "FunctionKeyKeyboardLayout" // alphanumeric ("ASCII") input basi private let kBasisKeyboardLayoutPreference = "BasisKeyboardLayout"
private let kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey = "FunctionKeyKeyboardLayoutOverrideIncludeShift" // whether include shif private let kFunctionKeyKeyboardLayoutPreference = "FunctionKeyKeyboardLayout"
private let kCandidateListTextSizeKey = "CandidateListTextSize" private let kFunctionKeyKeyboardLayoutOverrideIncludeShift = "FunctionKeyKeyboardLayoutOverrideIncludeShift"
private let kAppleLanguagesPreferencesKey = "AppleLanguages" private let kCandidateListTextSize = "CandidateListTextSize"
private let kSelectPhraseAfterCursorAsCandidatePreferenceKey = "SelectPhraseAfterCursorAsCandidate" private let kAppleLanguagesPreferences = "AppleLanguages"
private let kUseHorizontalCandidateListPreferenceKey = "UseHorizontalCandidateList" private let kSelectPhraseAfterCursorAsCandidatePreference = "SelectPhraseAfterCursorAsCandidate"
private let kComposingBufferSizePreferenceKey = "ComposingBufferSize" private let kUseHorizontalCandidateListPreference = "UseHorizontalCandidateList"
private let kChooseCandidateUsingSpaceKey = "ChooseCandidateUsingSpaceKey" private let kComposingBufferSizePreference = "ComposingBufferSize"
private let kCNS11643EnabledKey = "CNS11643Enabled" private let kChooseCandidateUsingSpace = "ChooseCandidateUsingSpaceKey"
private let kChineseConversionEnabledKey = "ChineseConversionEnabled" private let kCNS11643Enabled = "CNS11643Enabled"
private let kHalfWidthPunctuationEnabledKey = "HalfWidthPunctuationEnable" private let kChineseConversionEnabled = "ChineseConversionEnabled"
private let kEscToCleanInputBufferKey = "EscToCleanInputBuffer" private let kHalfWidthPunctuationEnabled = "HalfWidthPunctuationEnable"
private let kEscToCleanInputBuffer = "EscToCleanInputBuffer"
private let kUseWinNT351BPMF = "UseWinNT351BPMF" private let kUseWinNT351BPMF = "UseWinNT351BPMF"
private let kMaxCandidateLength = "MaxCandidateLength" private let kMaxCandidateLength = "MaxCandidateLength"
private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep" private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep"
@ -29,8 +30,8 @@ private let kShouldNotFartInLieuOfBeep = "ShouldNotFartInLieuOfBeep"
private let kCandidateTextFontName = "CandidateTextFontName" private let kCandidateTextFontName = "CandidateTextFontName"
private let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName" private let kCandidateKeyLabelFontName = "CandidateKeyLabelFontName"
private let kCandidateKeys = "CandidateKeys" private let kCandidateKeys = "CandidateKeys"
private let kChineseConversionEngineKey = "ChineseConversionEngine" private let kChineseConversionEngine = "ChineseConversionEngine"
private let kPhraseReplacementEnabledKey = "PhraseReplacementEnabled" private let kPhraseReplacementEnabled = "PhraseReplacementEnabled"
private let kDefaultCandidateListTextSize: CGFloat = 18 private let kDefaultCandidateListTextSize: CGFloat = 18
private let kMinKeyLabelSize: CGFloat = 10 private let kMinKeyLabelSize: CGFloat = 10
@ -168,62 +169,118 @@ struct ComposingBufferSize {
@objc public class Preferences: NSObject { @objc public class Preferences: NSObject {
static func reset() { static func reset() {
let defaults = UserDefaults.standard let defaults = UserDefaults.standard
defaults.removeObject(forKey: kKeyboardLayoutPreferenceKey) defaults.removeObject(forKey: kKeyboardLayoutPreference)
defaults.removeObject(forKey: kBasisKeyboardLayoutPreferenceKey) defaults.removeObject(forKey: kBasisKeyboardLayoutPreference)
defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutPreferenceKey) defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutPreference)
defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey) defaults.removeObject(forKey: kFunctionKeyKeyboardLayoutOverrideIncludeShift)
defaults.removeObject(forKey: kCandidateListTextSizeKey) defaults.removeObject(forKey: kCandidateListTextSize)
defaults.removeObject(forKey: kAppleLanguagesPreferencesKey) defaults.removeObject(forKey: kAppleLanguagesPreferences)
defaults.removeObject(forKey: kSelectPhraseAfterCursorAsCandidatePreferenceKey) defaults.removeObject(forKey: kSelectPhraseAfterCursorAsCandidatePreference)
defaults.removeObject(forKey: kUseHorizontalCandidateListPreferenceKey) defaults.removeObject(forKey: kUseHorizontalCandidateListPreference)
defaults.removeObject(forKey: kComposingBufferSizePreferenceKey) defaults.removeObject(forKey: kComposingBufferSizePreference)
defaults.removeObject(forKey: kChooseCandidateUsingSpaceKey) defaults.removeObject(forKey: kChooseCandidateUsingSpace)
defaults.removeObject(forKey: kCNS11643EnabledKey) defaults.removeObject(forKey: kCNS11643Enabled)
defaults.removeObject(forKey: kChineseConversionEnabledKey) defaults.removeObject(forKey: kChineseConversionEnabled)
defaults.removeObject(forKey: kHalfWidthPunctuationEnabledKey) defaults.removeObject(forKey: kHalfWidthPunctuationEnabled)
defaults.removeObject(forKey: kEscToCleanInputBufferKey) defaults.removeObject(forKey: kEscToCleanInputBuffer)
defaults.removeObject(forKey: kCandidateTextFontName) defaults.removeObject(forKey: kCandidateTextFontName)
defaults.removeObject(forKey: kCandidateKeyLabelFontName) defaults.removeObject(forKey: kCandidateKeyLabelFontName)
defaults.removeObject(forKey: kCandidateKeys) defaults.removeObject(forKey: kCandidateKeys)
defaults.removeObject(forKey: kPhraseReplacementEnabledKey) defaults.removeObject(forKey: kPhraseReplacementEnabled)
defaults.removeObject(forKey: kChineseConversionEngineKey) defaults.removeObject(forKey: kChineseConversionEngine)
defaults.removeObject(forKey: kUseWinNT351BPMF) defaults.removeObject(forKey: kUseWinNT351BPMF)
defaults.removeObject(forKey: kMaxCandidateLength) defaults.removeObject(forKey: kMaxCandidateLength)
defaults.removeObject(forKey: kShouldNotFartInLieuOfBeep) defaults.removeObject(forKey: kShouldNotFartInLieuOfBeep)
} }
@UserDefault(key: kAppleLanguagesPreferencesKey, defaultValue: []) @objc public static func setMissingDefaults () {
// Preferences Module plist private
//
if UserDefaults.standard.object(forKey: kCheckUpdateAutomatically) == nil {
UserDefaults.standard.set(false, forKey: kCheckUpdateAutomatically)
}
// 18
if UserDefaults.standard.object(forKey: kCandidateListTextSize) == nil {
UserDefaults.standard.set(Preferences.candidateListTextSize, forKey: kCandidateListTextSize)
}
// true
if UserDefaults.standard.object(forKey: kChooseCandidateUsingSpace) == nil {
UserDefaults.standard.set(Preferences.chooseCandidateUsingSpace, forKey: kChooseCandidateUsingSpace)
}
// WinNT351 false
if UserDefaults.standard.object(forKey: kUseWinNT351BPMF) == nil {
UserDefaults.standard.set(Preferences.useWinNT351BPMF, forKey: kUseWinNT351BPMF)
}
// 0
if UserDefaults.standard.object(forKey: kSelectPhraseAfterCursorAsCandidatePreference) == nil {
UserDefaults.standard.set(Preferences.selectPhraseAfterCursorAsCandidate, forKey: kSelectPhraseAfterCursorAsCandidatePreference)
}
//
if UserDefaults.standard.object(forKey: kUseHorizontalCandidateListPreference) == nil {
UserDefaults.standard.set(Preferences.useHorizontalCandidateList, forKey: kUseHorizontalCandidateListPreference)
}
//
if UserDefaults.standard.object(forKey: kCNS11643Enabled) == nil {
UserDefaults.standard.set(Preferences.cns11643Enabled, forKey: kCNS11643Enabled)
}
//
if UserDefaults.standard.object(forKey: kChineseConversionEnabled) == nil {
UserDefaults.standard.set(Preferences.chineseConversionEnabled, forKey: kChineseConversionEnabled)
}
//
if UserDefaults.standard.object(forKey: kPhraseReplacementEnabled) == nil {
UserDefaults.standard.set(Preferences.phraseReplacementEnabled, forKey: kPhraseReplacementEnabled)
}
//
if UserDefaults.standard.object(forKey: kShouldNotFartInLieuOfBeep) == nil {
UserDefaults.standard.set(Preferences.shouldNotFartInLieuOfBeep, forKey: kShouldNotFartInLieuOfBeep)
}
UserDefaults.standard.synchronize()
}
@UserDefault(key: kAppleLanguagesPreferences, defaultValue: [])
@objc static var appleLanguages: Array<String> @objc static var appleLanguages: Array<String>
@UserDefault(key: kKeyboardLayoutPreferenceKey, defaultValue: 0) @UserDefault(key: kKeyboardLayoutPreference, defaultValue: 0)
@objc static var keyboardLayout: Int @objc static var keyboardLayout: Int
@objc static var keyboardLayoutName: String { @objc static var keyboardLayoutName: String {
(KeyboardLayout(rawValue: self.keyboardLayout) ?? KeyboardLayout.standard).name (KeyboardLayout(rawValue: self.keyboardLayout) ?? KeyboardLayout.standard).name
} }
@UserDefault(key: kBasisKeyboardLayoutPreferenceKey, defaultValue: "com.apple.keylayout.US") @UserDefault(key: kBasisKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.US")
@objc static var basisKeyboardLayout: String @objc static var basisKeyboardLayout: String
@UserDefault(key: kFunctionKeyKeyboardLayoutPreferenceKey, defaultValue: "com.apple.keylayout.US") @UserDefault(key: kFunctionKeyKeyboardLayoutPreference, defaultValue: "com.apple.keylayout.US")
@objc static var functionKeyboardLayout: String @objc static var functionKeyboardLayout: String
@UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShiftKey, defaultValue: false) @UserDefault(key: kFunctionKeyKeyboardLayoutOverrideIncludeShift, defaultValue: false)
@objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool @objc static var functionKeyKeyboardLayoutOverrideIncludeShiftKey: Bool
@CandidateListTextSize(key: kCandidateListTextSizeKey) @CandidateListTextSize(key: kCandidateListTextSize)
@objc static var candidateListTextSize: CGFloat @objc static var candidateListTextSize: CGFloat
@UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreferenceKey, defaultValue: false) @UserDefault(key: kSelectPhraseAfterCursorAsCandidatePreference, defaultValue: false)
@objc static var selectPhraseAfterCursorAsCandidate: Bool @objc static var selectPhraseAfterCursorAsCandidate: Bool
@UserDefault(key: kUseHorizontalCandidateListPreferenceKey, defaultValue: true) @UserDefault(key: kUseHorizontalCandidateListPreference, defaultValue: true)
@objc static var useHorizontalCandidateList: Bool @objc static var useHorizontalCandidateList: Bool
@ComposingBufferSize(key: kComposingBufferSizePreferenceKey) @ComposingBufferSize(key: kComposingBufferSizePreference)
@objc static var composingBufferSize: Int @objc static var composingBufferSize: Int
@UserDefault(key: kChooseCandidateUsingSpaceKey, defaultValue: true) @UserDefault(key: kChooseCandidateUsingSpace, defaultValue: true)
@objc static var chooseCandidateUsingSpace: Bool @objc static var chooseCandidateUsingSpace: Bool
@UserDefault(key: kUseWinNT351BPMF, defaultValue: false) @UserDefault(key: kUseWinNT351BPMF, defaultValue: false)
@ -247,25 +304,25 @@ struct ComposingBufferSize {
return shouldNotFartInLieuOfBeep return shouldNotFartInLieuOfBeep
} }
@UserDefault(key: kCNS11643EnabledKey, defaultValue: false) @UserDefault(key: kCNS11643Enabled, defaultValue: false)
@objc static var cns11643Enabled: Bool @objc static var cns11643Enabled: Bool
@objc static func toggleCNS11643Enabled() -> Bool { @objc static func toggleCNS11643Enabled() -> Bool {
cns11643Enabled = !cns11643Enabled cns11643Enabled = !cns11643Enabled
UserDefaults.standard.set(cns11643Enabled, forKey: kCNS11643EnabledKey) UserDefaults.standard.set(cns11643Enabled, forKey: kCNS11643Enabled)
return cns11643Enabled return cns11643Enabled
} }
@UserDefault(key: kChineseConversionEnabledKey, defaultValue: false) @UserDefault(key: kChineseConversionEnabled, defaultValue: false)
@objc static var chineseConversionEnabled: Bool @objc static var chineseConversionEnabled: Bool
@objc static func toggleChineseConversionEnabled() -> Bool { @objc static func toggleChineseConversionEnabled() -> Bool {
chineseConversionEnabled = !chineseConversionEnabled chineseConversionEnabled = !chineseConversionEnabled
UserDefaults.standard.set(chineseConversionEnabled, forKey: kChineseConversionEnabledKey) UserDefaults.standard.set(chineseConversionEnabled, forKey: kChineseConversionEnabled)
return chineseConversionEnabled return chineseConversionEnabled
} }
@UserDefault(key: kHalfWidthPunctuationEnabledKey, defaultValue: false) @UserDefault(key: kHalfWidthPunctuationEnabled, defaultValue: false)
@objc static var halfWidthPunctuationEnabled: Bool @objc static var halfWidthPunctuationEnabled: Bool
@objc static func toggleHalfWidthPunctuationEnabled() -> Bool { @objc static func toggleHalfWidthPunctuationEnabled() -> Bool {
@ -273,7 +330,7 @@ struct ComposingBufferSize {
return halfWidthPunctuationEnabled return halfWidthPunctuationEnabled
} }
@UserDefault(key: kEscToCleanInputBufferKey, defaultValue: true) @UserDefault(key: kEscToCleanInputBuffer, defaultValue: true)
@objc static var escToCleanInputBuffer: Bool @objc static var escToCleanInputBuffer: Bool
// MARK: Optional settings // MARK: Optional settings
@ -343,19 +400,19 @@ struct ComposingBufferSize {
} }
@UserDefault(key: kChineseConversionEngineKey, defaultValue: 0) @UserDefault(key: kChineseConversionEngine, defaultValue: 0)
@objc static var chineseConversionEngine: Int @objc static var chineseConversionEngine: Int
@objc static var chineseConversionEngineName: String? { @objc static var chineseConversionEngineName: String? {
return ChineseConversionEngine(rawValue: chineseConversionEngine)?.name return ChineseConversionEngine(rawValue: chineseConversionEngine)?.name
} }
@UserDefault(key: kPhraseReplacementEnabledKey, defaultValue: false) @UserDefault(key: kPhraseReplacementEnabled, defaultValue: false)
@objc static var phraseReplacementEnabled: Bool @objc static var phraseReplacementEnabled: Bool
@objc static func togglePhraseReplacementEnabled() -> Bool { @objc static func togglePhraseReplacementEnabled() -> Bool {
phraseReplacementEnabled = !phraseReplacementEnabled phraseReplacementEnabled = !phraseReplacementEnabled
UserDefaults.standard.set(phraseReplacementEnabled, forKey: kPhraseReplacementEnabledKey) UserDefaults.standard.set(phraseReplacementEnabled, forKey: kPhraseReplacementEnabled)
return phraseReplacementEnabled return phraseReplacementEnabled
} }
} }

View File

@ -31,7 +31,6 @@
5BD0D19427940E9D0008F48E /* Fart.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19327940E9D0008F48E /* Fart.aif */; }; 5BD0D19427940E9D0008F48E /* Fart.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19327940E9D0008F48E /* Fart.aif */; };
5BD0D19A27943D390008F48E /* clsSFX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD0D19927943D390008F48E /* clsSFX.swift */; }; 5BD0D19A27943D390008F48E /* clsSFX.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD0D19927943D390008F48E /* clsSFX.swift */; };
5BD0D19F279454F60008F48E /* Beep.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19E279454F60008F48E /* Beep.aif */; }; 5BD0D19F279454F60008F48E /* Beep.aif in Resources */ = {isa = PBXBuildFile; fileRef = 5BD0D19E279454F60008F48E /* Beep.aif */; };
5BD0D1A4279463510008F48E /* clsOOBEDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */; };
5BD13F482794F0A6000E429F /* PhraseReplacementMap.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5B6797B42794822C004AC7CE /* PhraseReplacementMap.mm */; }; 5BD13F482794F0A6000E429F /* PhraseReplacementMap.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5B6797B42794822C004AC7CE /* PhraseReplacementMap.mm */; };
5BDD25F2279D65CC00AA18F8 /* UNICHARS.zip in Resources */ = {isa = PBXBuildFile; fileRef = 5BDD25F1279D65CB00AA18F8 /* UNICHARS.zip */; }; 5BDD25F2279D65CC00AA18F8 /* UNICHARS.zip in Resources */ = {isa = PBXBuildFile; fileRef = 5BDD25F1279D65CB00AA18F8 /* UNICHARS.zip */; };
5BDD25F4279D678600AA18F8 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BDD25F3279D677F00AA18F8 /* libz.tbd */; }; 5BDD25F4279D678600AA18F8 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BDD25F3279D677F00AA18F8 /* libz.tbd */; };
@ -146,7 +145,6 @@
5BD0D19327940E9D0008F48E /* Fart.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Fart.aif; sourceTree = "<group>"; }; 5BD0D19327940E9D0008F48E /* Fart.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Fart.aif; sourceTree = "<group>"; };
5BD0D19927943D390008F48E /* clsSFX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = clsSFX.swift; sourceTree = "<group>"; }; 5BD0D19927943D390008F48E /* clsSFX.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = clsSFX.swift; sourceTree = "<group>"; };
5BD0D19E279454F60008F48E /* Beep.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beep.aif; sourceTree = "<group>"; }; 5BD0D19E279454F60008F48E /* Beep.aif */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beep.aif; sourceTree = "<group>"; };
5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = clsOOBEDefaults.swift; sourceTree = "<group>"; };
5BDD25E2279D64FB00AA18F8 /* AWFileHash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AWFileHash.h; sourceTree = "<group>"; }; 5BDD25E2279D64FB00AA18F8 /* AWFileHash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AWFileHash.h; sourceTree = "<group>"; };
5BDD25E3279D64FB00AA18F8 /* AWFileHash.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWFileHash.m; sourceTree = "<group>"; }; 5BDD25E3279D64FB00AA18F8 /* AWFileHash.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AWFileHash.m; sourceTree = "<group>"; };
5BDD25E6279D64FB00AA18F8 /* unzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = unzip.m; sourceTree = "<group>"; }; 5BDD25E6279D64FB00AA18F8 /* unzip.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = unzip.m; sourceTree = "<group>"; };
@ -275,7 +273,6 @@
children = ( children = (
5BC2D2842793B434002C0BEC /* KeyValueBlobReader.h */, 5BC2D2842793B434002C0BEC /* KeyValueBlobReader.h */,
5BC2D2862793B434002C0BEC /* KeyValueBlobReader.cpp */, 5BC2D2862793B434002C0BEC /* KeyValueBlobReader.cpp */,
5BD0D1A3279463510008F48E /* clsOOBEDefaults.swift */,
); );
path = vChewing; path = vChewing;
sourceTree = "<group>"; sourceTree = "<group>";
@ -729,7 +726,6 @@
5BC3EE1B278FC48C00F5E44C /* VerticalCandidateController.swift in Sources */, 5BC3EE1B278FC48C00F5E44C /* VerticalCandidateController.swift in Sources */,
5B42B64027876FDC00BB9B9F /* UserOverrideModel.mm in Sources */, 5B42B64027876FDC00BB9B9F /* UserOverrideModel.mm in Sources */,
5BDD25F7279D6D1200AA18F8 /* unzip.m in Sources */, 5BDD25F7279D6D1200AA18F8 /* unzip.m in Sources */,
5BD0D1A4279463510008F48E /* clsOOBEDefaults.swift in Sources */,
D427A9C125ED28CC005D43E0 /* OpenCCBridge.swift in Sources */, D427A9C125ED28CC005D43E0 /* OpenCCBridge.swift in Sources */,
6A0D4F4515FC0EB100ABF4B3 /* Mandarin.mm in Sources */, 6A0D4F4515FC0EB100ABF4B3 /* Mandarin.mm in Sources */,
5B6797B52794822C004AC7CE /* PhraseReplacementMap.h in Sources */, 5B6797B52794822C004AC7CE /* PhraseReplacementMap.h in Sources */,