From d11daacbd22dfe28b123ce2521ebb70f8aaedb67 Mon Sep 17 00:00:00 2001 From: zonble Date: Fri, 14 Jan 2022 19:47:53 +0800 Subject: [PATCH] Refactors the keyboard layout enum. --- Source/InputMethodController.mm | 17 ++++++------ Source/Preferences.swift | 48 ++++++++++++++++++++------------- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/Source/InputMethodController.mm b/Source/InputMethodController.mm index 44fa5275..f12f487f 100644 --- a/Source/InputMethodController.mm +++ b/Source/InputMethodController.mm @@ -228,29 +228,28 @@ static double FindHighestScore(const vector& nodes, double epsilon) [_composingBuffer setString:@""]; // checks and populates the default settings - NSInteger keyboardLayout = Preferences.keyboardLayout; - switch (keyboardLayout) { - case 0: + switch (Preferences.keyboardLayout) { + case KeyboardLayoutStandard: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::StandardLayout()); break; - case 1: + case KeyboardLayoutEten: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETenLayout()); break; - case 2: + case KeyboardLayoutHsu: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HsuLayout()); break; - case 3: + case KeyboardLayoutEten26: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETen26Layout()); break; - case 4: + case KeyboardLayoutHanyuPinyin: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HanyuPinyinLayout()); break; - case 5: + case KeyboardLayoutIBM: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::IBMLayout()); break; default: _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::StandardLayout()); - Preferences.keyboardLayout = 0; + Preferences.keyboardLayout = KeyboardLayoutStandard; } [(AppDelegate *)[NSApp delegate] checkForUpdate]; diff --git a/Source/Preferences.swift b/Source/Preferences.swift index eab3d635..14afc3c0 100644 --- a/Source/Preferences.swift +++ b/Source/Preferences.swift @@ -173,30 +173,42 @@ struct ComposingKeys { } } +// MARK: - + +@objc enum KeyboardLayout: Int { + case standard + case eten + case eten26 + case hsu + case hanyuPinyin + case IBM + + var name: String { + switch (self) { + case .standard: + return "Standard" + case .eten: + return "ETen" + case .eten26: + return "ETen26" + case .hsu: + return "Hsu" + case .hanyuPinyin: + return "HanyuPinyin" + case .IBM: + return "IBM" + } + } +} // MARK: - class Preferences: NSObject { - @UserDefault(key: kKeyboardLayoutPreferenceKey, defaultValue: 0) - @objc static var keyboardLayout: Int + @UserDefault(key: kKeyboardLayoutPreferenceKey, defaultValue: KeyboardLayout.standard) + @objc static var keyboardLayout: KeyboardLayout @objc static var keyboardLayoutName: String { - switch self.keyboardLayout { - case 0: - return "Standard" - case 1: - return "ETen" - case 2: - return "ETen26" - case 3: - return "Hsu" - case 4: - return "HanyuPinyin" - case 5: - return "IBM" - default: - return "Standard" - } + self.keyboardLayout.name } @UserDefault(key: kBasisKeyboardLayoutPreferenceKey, defaultValue: "com.apple.keylayout.US")