Merge pull request #38 from ShikiSuen/dev/Taiyan-Extension

Keyboard // Refactored Taiyan Engine + Choice for Apple Zhuyin Bopomofo Layout.
This commit is contained in:
Shiki Suen 2022-02-02 17:42:48 +08:00 committed by GitHub
commit 01ab027d03
8 changed files with 1434 additions and 1295 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -33,7 +33,6 @@ 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 kChineseConversionEngine = "ChineseConversionEngine"
private let kPhraseReplacementEnabled = "PhraseReplacementEnabled" private let kPhraseReplacementEnabled = "PhraseReplacementEnabled"
private let kDefaultCandidateListTextSize: CGFloat = 18 private let kDefaultCandidateListTextSize: CGFloat = 18
@ -154,20 +153,6 @@ struct ComposingBufferSize {
} }
} }
@objc enum ChineseConversionEngine: Int {
case openCC
case vxHanConvert
var name: String {
switch (self) {
case .openCC:
return "OpenCC"
case .vxHanConvert:
return "VXHanConvert"
}
}
}
// MARK: - // MARK: -
@objc public class Preferences: NSObject { @objc public class Preferences: NSObject {
static func reset() { static func reset() {
@ -193,7 +178,6 @@ struct ComposingBufferSize {
defaults.removeObject(forKey: kCandidateKeyLabelFontName) defaults.removeObject(forKey: kCandidateKeyLabelFontName)
defaults.removeObject(forKey: kCandidateKeys) defaults.removeObject(forKey: kCandidateKeys)
defaults.removeObject(forKey: kPhraseReplacementEnabled) defaults.removeObject(forKey: kPhraseReplacementEnabled)
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)
@ -430,13 +414,6 @@ struct ComposingBufferSize {
} }
@UserDefault(key: kChineseConversionEngine, defaultValue: 0)
@objc static var chineseConversionEngine: Int
@objc static var chineseConversionEngineName: String? {
return ChineseConversionEngine(rawValue: chineseConversionEngine)?.name
}
@UserDefault(key: kPhraseReplacementEnabled, defaultValue: false) @UserDefault(key: kPhraseReplacementEnabled, defaultValue: false)
@objc static var phraseReplacementEnabled: Bool @objc static var phraseReplacementEnabled: Bool

View File

@ -63,6 +63,7 @@ extension RangeReplaceableCollection where Element: Hashable {
basisKeyboardLayoutButton.menu?.removeAllItems() basisKeyboardLayoutButton.menu?.removeAllItems()
let basisKeyboardLayoutID = Preferences.basisKeyboardLayout let basisKeyboardLayoutID = Preferences.basisKeyboardLayout
for source in list { for source in list {
func getString(_ key: CFString) -> String? { func getString(_ key: CFString) -> String? {
@ -112,20 +113,6 @@ extension RangeReplaceableCollection where Element: Hashable {
menuItem.title = localizedName menuItem.title = localizedName
menuItem.representedObject = sourceID menuItem.representedObject = sourceID
if let iconPtr = TISGetInputSourceProperty(source, kTISPropertyIconRef) {
let icon = IconRef(iconPtr)
let image = NSImage(iconRef: icon)
func resize( _ image: NSImage) -> NSImage {
let newImage = NSImage(size: NSSize(width: 16, height: 16))
newImage.lockFocus()
image.draw(in: NSRect(x: 0, y: 0, width: 16, height: 16))
newImage.unlockFocus()
return newImage
}
menuItem.image = resize(image)
}
if sourceID == "com.apple.keylayout.US" { if sourceID == "com.apple.keylayout.US" {
usKeyboardLayoutItem = menuItem usKeyboardLayoutItem = menuItem
} }
@ -135,6 +122,11 @@ extension RangeReplaceableCollection where Element: Hashable {
basisKeyboardLayoutButton.menu?.addItem(menuItem) basisKeyboardLayoutButton.menu?.addItem(menuItem)
} }
let menuItem = NSMenuItem()
menuItem.title = String(format: NSLocalizedString("Apple Zhuyin Bopomofo", comment: ""))
menuItem.representedObject = String("com.apple.keylayout.ZhuyinBopomofo")
basisKeyboardLayoutButton.menu?.addItem(menuItem)
basisKeyboardLayoutButton.select(chosenItem ?? usKeyboardLayoutItem) basisKeyboardLayoutButton.select(chosenItem ?? usKeyboardLayoutItem)
selectionKeyComboBox.usesDataSource = false selectionKeyComboBox.usesDataSource = false
selectionKeyComboBox.removeAllItems() selectionKeyComboBox.removeAllItems()

View File

@ -43,3 +43,4 @@
"zh-Hans" = "Simplified Chinese"; "zh-Hans" = "Simplified Chinese";
"zh-Hant" = "Traditional Chinese"; "zh-Hant" = "Traditional Chinese";
"ja" = "Japanese"; "ja" = "Japanese";
"Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo";

View File

@ -43,3 +43,4 @@
"zh-Hans" = "簡體中国語"; "zh-Hans" = "簡體中国語";
"zh-Hant" = "繁體中国語"; "zh-Hant" = "繁體中国語";
"ja" = "和語"; "ja" = "和語";
"Apple Zhuyin Bopomofo" = "Apple 注音ボポモフォ配列";

View File

@ -43,3 +43,4 @@
"zh-Hans" = "简体中文"; "zh-Hans" = "简体中文";
"zh-Hant" = "繁体中文"; "zh-Hant" = "繁体中文";
"ja" = "和文"; "ja" = "和文";
"Apple Zhuyin Bopomofo" = "Apple 注音键盘布局";

View File

@ -43,3 +43,5 @@
"zh-Hans" = "簡體中文"; "zh-Hans" = "簡體中文";
"zh-Hant" = "繁體中文"; "zh-Hant" = "繁體中文";
"ja" = "和文"; "ja" = "和文";
"Apple Zhuyin Bopomofo" = "Apple Zhuyin Bopomofo";
"Apple Zhuyin Bopomofo" = "Apple 注音鍵盤佈局";