Repo // "ctlInputMethod" -> "SessionCtl".

This commit is contained in:
ShikiSuen 2022-09-24 20:27:54 +08:00
parent 5815a49359
commit 216fe6e1ba
18 changed files with 84 additions and 84 deletions

View File

@ -13,7 +13,7 @@ Megrez Engine is a module made for processing lingual data of an input method. T
### §1. 初期化 ### §1. 初期化
在你的 ctlInputMethod (InputMethodController) 或者 KeyHandler 內初期化一份 Megrez.Compositor 組字器副本(這裡將該副本命名為「`compositor`」)。由於 Megrez.Compositor 的型別是 Struct 型別(為了讓 Compositor 可以 deep copy所以其副本可以用 var 來宣告。 在你的 IMKInputController 或者 KeyHandler 內初期化一份 Megrez.Compositor 組字器副本(這裡將該副本命名為「`compositor`」)。由於 Megrez.Compositor 的型別是 Struct 型別(為了讓 Compositor 可以 deep copy所以其副本可以用 var 來宣告。
以 KeyHandler 為例: 以 KeyHandler 為例:
```swift ```swift
@ -24,17 +24,17 @@ class KeyHandler {
} }
``` ```
ctlInputMethod 為例: IMKInputController 為例:
```swift ```swift
@objc(ctlInputMethod) // 根據 info.plist 內的情況來確定型別的命名 @objc(IMKMyInputController) // 根據 info.plist 內的情況來確定型別的命名
class ctlInputMethod: IMKInputController { class IMKMyInputController: IMKInputController {
// 先設定好變數 // 先設定好變數
var compositor: Megrez.Compositor = .init() var compositor: Megrez.Compositor = .init()
... ...
} }
``` ```
由於 Swift 會在某個大副本KeyHandler 或者 ctlInputMethod 副本)被銷毀的時候自動銷毀其中的全部副本,所以 Megrez.Compositor 的副本初期化沒必要寫在 init() 當中。但你很可能會想在 init() 時指定 Tekkon.Composer 所對接的語言模組型別、以及其可以允許的最大詞長。 由於 Swift 會在某個大副本KeyHandler 或者 IMKInputController 副本)被銷毀的時候自動銷毀其中的全部副本,所以 Megrez.Compositor 的副本初期化沒必要寫在 init() 當中。但你很可能會想在 init() 時指定 Tekkon.Composer 所對接的語言模組型別、以及其可以允許的最大詞長。
這裡就需要在 init() 時使用參數: 這裡就需要在 init() 時使用參數:
```swift ```swift

View File

@ -23,7 +23,7 @@ Regarding pinyin input support, we only support: Hanyu Pinyin, Secondary Pinyin,
### §1. 初期化 ### §1. 初期化
在你的 ctlInputMethod (InputMethodController) 或者 KeyHandler 內初期化一份 Tekkon.Composer 注拼槽副本(這裡將該副本命名為「`_composer`」)。由於 Tekkon.Composer 的型別是 Struct 型別所以其副本必須為變數var否則無法自我 mutate。 在你的 IMKInputController (InputMethodController) 或者 KeyHandler 內初期化一份 Tekkon.Composer 注拼槽副本(這裡將該副本命名為「`_composer`」)。由於 Tekkon.Composer 的型別是 Struct 型別所以其副本必須為變數var否則無法自我 mutate。
以 KeyHandler 為例: 以 KeyHandler 為例:
```swift ```swift
@ -34,10 +34,10 @@ class KeyHandler: NSObject {
} }
``` ```
ctlInputMethod 為例: IMKInputController 為例:
```swift ```swift
@objc(ctlInputMethod) // 根據 info.plist 內的情況來確定型別的命名 @objc(IMKMyInputController) // 根據 info.plist 內的情況來確定型別的命名
class ctlInputMethod: IMKInputController { class IMKMyInputController: IMKInputController {
// 先設定好變數 // 先設定好變數
var _composer: Tekkon.Composer = .init() var _composer: Tekkon.Composer = .init()
... ...
@ -45,7 +45,7 @@ class ctlInputMethod: IMKInputController {
``` ```
由於 Swift 會在某個大副本KeyHandler 或者 ctlInputMethod 副本)被銷毀的時候自動銷毀其中的全部副本,所以 Tekkon.Composer 的副本初期化沒必要寫在 init() 當中。但你很可能會想在 init() 時指定 Tekkon.Composer 所使用的注音排列(是大千?還是倚天傳統?還是神通?等)。 由於 Swift 會在某個大副本KeyHandler 或者 IMKInputController 副本)被銷毀的時候自動銷毀其中的全部副本,所以 Tekkon.Composer 的副本初期化沒必要寫在 init() 當中。但你很可能會想在 init() 時指定 Tekkon.Composer 所使用的注音排列(是大千?還是倚天傳統?還是神通?等)。
這裡就需要在 _composer 這個副本所在的型別當中額外寫一個過程函式。 這裡就需要在 _composer 這個副本所在的型別當中額外寫一個過程函式。
@ -159,9 +159,9 @@ final class TekkonTests: XCTestCase {
#### // 2. 訊號處理 #### // 2. 訊號處理
無論是 KeyHandler 還是 ctlInputMethod 都得要處理被傳入的 NSEvent 當中的 charCode 訊號。 無論是 KeyHandler 還是 IMKInputController 都得要處理被傳入的 NSEvent 當中的 charCode 訊號。
比如 ctlInputMethod 內: 比如 IMKInputController 內:
```swift ```swift
func handleInputText(_ inputText: String?, key keyCode: Int, modifiers flags: Int, client: Any?) -> Bool { func handleInputText(_ inputText: String?, key keyCode: Int, modifiers flags: Int, client: Any?) -> Bool {
... ...

View File

@ -9,7 +9,7 @@
import LangModelAssembly import LangModelAssembly
import Shared import Shared
/// ctlInputMethod /// SessionCtl
/// ///
/// Finite State Machine/ /// Finite State Machine/
/// 使 /// 使
@ -49,7 +49,7 @@ public struct IMEState: IMEStateProtocol {
init(_ data: StateDataProtocol = StateData() as StateDataProtocol, type: StateType = .ofEmpty) { init(_ data: StateDataProtocol = StateData() as StateDataProtocol, type: StateType = .ofEmpty) {
self.data = data self.data = data
self.type = type self.type = type
isVerticalTyping = ctlInputMethod.isVerticalTyping isVerticalTyping = SessionCtl.isVerticalTyping
} }
init(_ data: StateDataProtocol = StateData() as StateDataProtocol, type: StateType = .ofEmpty, node: CandidateNode) { init(_ data: StateDataProtocol = StateData() as StateDataProtocol, type: StateType = .ofEmpty, node: CandidateNode) {
@ -83,10 +83,10 @@ extension IMEState {
var result = IMEState(type: .ofNotEmpty) var result = IMEState(type: .ofNotEmpty)
// displayTextSegments // displayTextSegments
result.data.displayTextSegments = displayTextSegments.map { result.data.displayTextSegments = displayTextSegments.map {
if !ctlInputMethod.isVerticalTyping { return $0 } if !SessionCtl.isVerticalTyping { return $0 }
guard PrefMgr.shared.hardenVerticalPunctuations else { return $0 } guard PrefMgr.shared.hardenVerticalPunctuations else { return $0 }
var neta = $0 var neta = $0
ChineseConverter.hardenVerticalPunctuations(target: &neta, convert: ctlInputMethod.isVerticalTyping) ChineseConverter.hardenVerticalPunctuations(target: &neta, convert: SessionCtl.isVerticalTyping)
return neta return neta
} }

View File

@ -202,14 +202,14 @@ extension StateData {
public var userPhraseDumped: String { public var userPhraseDumped: String {
let pair = userPhraseKVPair let pair = userPhraseKVPair
let nerfedScore = ctlInputMethod.areWeNerfing && markedTargetExists ? " -114.514" : "" let nerfedScore = SessionCtl.areWeNerfing && markedTargetExists ? " -114.514" : ""
return "\(pair.1) \(pair.0)\(nerfedScore)" return "\(pair.1) \(pair.0)\(nerfedScore)"
} }
public var userPhraseDumpedConverted: String { public var userPhraseDumpedConverted: String {
let pair = userPhraseKVPair let pair = userPhraseKVPair
let text = ChineseConverter.crossConvert(pair.1) let text = ChineseConverter.crossConvert(pair.1)
let nerfedScore = ctlInputMethod.areWeNerfing && markedTargetExists ? " -114.514" : "" let nerfedScore = SessionCtl.areWeNerfing && markedTargetExists ? " -114.514" : ""
let convertedMark = "#𝙃𝙪𝙢𝙖𝙣𝘾𝙝𝙚𝙘𝙠𝙍𝙚𝙦𝙪𝙞𝙧𝙚𝙙" let convertedMark = "#𝙃𝙪𝙢𝙖𝙣𝘾𝙝𝙚𝙘𝙠𝙍𝙚𝙦𝙪𝙞𝙧𝙚𝙙"
return "\(text) \(pair.0)\(nerfedScore)\t\(convertedMark)" return "\(text) \(pair.0)\(nerfedScore)\t\(convertedMark)"
} }

View File

@ -30,7 +30,7 @@ public protocol KeyHandlerDelegate {
/// KeyHandler 調 /// KeyHandler 調
public class KeyHandler { public class KeyHandler {
/// (ctlInputMethod)便 /// (SessionCtl)便
public var delegate: KeyHandlerDelegate? public var delegate: KeyHandlerDelegate?
public var prefs: PrefMgrProtocol public var prefs: PrefMgrProtocol

View File

@ -145,7 +145,7 @@ extension KeyHandler {
stateCallback(candidateState) stateCallback(candidateState)
} }
} }
// ctlInputMethod IMK // SessionCtl IMK
return true return true
} }

View File

@ -400,7 +400,7 @@ extension KeyHandler {
// MARK: - (Still Nothing) // MARK: - (Still Nothing)
/// ctlInputMethod /// SessionCtl
/// ///
/// F1-F12 /// F1-F12
/// 便 /// 便

View File

@ -126,7 +126,7 @@ extension KeyHandler {
/// - input: /// - input:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleMarkingState( func handleMarkingState(
_ state: IMEStateProtocol, _ state: IMEStateProtocol,
input: InputSignalProtocol, input: InputSignalProtocol,
@ -235,7 +235,7 @@ extension KeyHandler {
/// - isTypingVertical: /// - isTypingVertical:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handlePunctuation( func handlePunctuation(
_ customPunctuation: String, _ customPunctuation: String,
state: IMEStateProtocol, state: IMEStateProtocol,
@ -285,7 +285,7 @@ extension KeyHandler {
/// - Parameters: /// - Parameters:
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleEnter( func handleEnter(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void stateCallback: @escaping (IMEStateProtocol) -> Void
@ -303,7 +303,7 @@ extension KeyHandler {
/// - Parameters: /// - Parameters:
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleCtrlCommandEnter( func handleCtrlCommandEnter(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void stateCallback: @escaping (IMEStateProtocol) -> Void
@ -331,7 +331,7 @@ extension KeyHandler {
/// - Parameters: /// - Parameters:
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleCtrlOptionCommandEnter( func handleCtrlOptionCommandEnter(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void stateCallback: @escaping (IMEStateProtocol) -> Void
@ -369,7 +369,7 @@ extension KeyHandler {
/// - input: /// - input:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleBackSpace( func handleBackSpace(
state: IMEStateProtocol, state: IMEStateProtocol,
input: InputSignalProtocol, input: InputSignalProtocol,
@ -431,7 +431,7 @@ extension KeyHandler {
/// - input: /// - input:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleDelete( func handleDelete(
state: IMEStateProtocol, state: IMEStateProtocol,
input: InputSignalProtocol, input: InputSignalProtocol,
@ -475,7 +475,7 @@ extension KeyHandler {
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleClockKey( func handleClockKey(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void, stateCallback: @escaping (IMEStateProtocol) -> Void,
@ -496,7 +496,7 @@ extension KeyHandler {
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleHome( func handleHome(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void, stateCallback: @escaping (IMEStateProtocol) -> Void,
@ -528,7 +528,7 @@ extension KeyHandler {
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleEnd( func handleEnd(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void, stateCallback: @escaping (IMEStateProtocol) -> Void,
@ -559,7 +559,7 @@ extension KeyHandler {
/// - Parameters: /// - Parameters:
/// - state: /// - state:
/// - stateCallback: /// - stateCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleEsc( func handleEsc(
state: IMEStateProtocol, state: IMEStateProtocol,
stateCallback: @escaping (IMEStateProtocol) -> Void stateCallback: @escaping (IMEStateProtocol) -> Void
@ -591,7 +591,7 @@ extension KeyHandler {
/// - input: /// - input:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleForward( func handleForward(
state: IMEStateProtocol, state: IMEStateProtocol,
input: InputSignalProtocol, input: InputSignalProtocol,
@ -660,7 +660,7 @@ extension KeyHandler {
/// - input: /// - input:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleBackward( func handleBackward(
state: IMEStateProtocol, state: IMEStateProtocol,
input: InputSignalProtocol, input: InputSignalProtocol,
@ -729,7 +729,7 @@ extension KeyHandler {
/// - reverseModifier: /// - reverseModifier:
/// - stateCallback: /// - stateCallback:
/// - errorCallback: /// - errorCallback:
/// - Returns: ctlInputMethod IMK /// - Returns: SessionCtl IMK
func handleInlineCandidateRotation( func handleInlineCandidateRotation(
state: IMEStateProtocol, state: IMEStateProtocol,
reverseModifier: Bool, reverseModifier: Bool,

View File

@ -8,7 +8,7 @@
import Shared import Shared
// MARK: Auto parameter fix procedures, executed everytime on ctlInputMethod.activateServer(). // MARK: Auto parameter fix procedures, executed everytime on SessionCtl.activateServer().
extension PrefMgr { extension PrefMgr {
public func fixOddPreferences() { public func fixOddPreferences() {

View File

@ -23,8 +23,8 @@ import Voltaire
/// 調 /// 調
/// - Remark: IMKServer /// - Remark: IMKServer
/// IMKInputController /// IMKInputController
@objc(ctlInputMethod) // ObjC IMK ObjC @objc(SessionCtl) // ObjC IMK ObjC
class ctlInputMethod: IMKInputController { class SessionCtl: IMKInputController {
/// ///
static var areWeNerfing = false static var areWeNerfing = false
@ -40,7 +40,7 @@ class ctlInputMethod: IMKInputController {
// MARK: - // MARK: -
/// ctlInputMethod /// SessionCtl
var isASCIIMode = false { var isASCIIMode = false {
didSet { didSet {
resetKeyHandler() resetKeyHandler()
@ -116,7 +116,7 @@ class ctlInputMethod: IMKInputController {
// MARK: - // MARK: -
extension ctlInputMethod { extension SessionCtl {
/// ///
func setKeyLayout() { func setKeyLayout() {
guard let client = client() else { return } guard let client = client() else { return }
@ -145,7 +145,7 @@ extension ctlInputMethod {
// MARK: - IMKStateSetting // MARK: - IMKStateSetting
extension ctlInputMethod { extension SessionCtl {
/// ///
/// - Parameter sender: 使 /// - Parameter sender: 使
override func activateServer(_ sender: Any!) { override func activateServer(_ sender: Any!) {
@ -227,9 +227,9 @@ extension ctlInputMethod {
// MARK: - IMKServerInput // MARK: - IMKServerInput
// handle(_ event:) ctlInputMethod_HandleEvent.swift // handle(_ event:) SessionCtl_HandleEvent.swift
extension ctlInputMethod { extension SessionCtl {
/// ///
/// ///
/// ///

View File

@ -12,7 +12,7 @@ import Shared
// MARK: - KeyHandler Delegate // MARK: - KeyHandler Delegate
extension ctlInputMethod: KeyHandlerDelegate { extension SessionCtl: KeyHandlerDelegate {
var clientBundleIdentifier: String { var clientBundleIdentifier: String {
guard let client = client() else { return "" } guard let client = client() else { return "" }
return client.bundleIdentifier() ?? "" return client.bundleIdentifier() ?? ""
@ -49,7 +49,7 @@ extension ctlInputMethod: KeyHandlerDelegate {
// MARK: - Candidate Controller Delegate // MARK: - Candidate Controller Delegate
extension ctlInputMethod: CtlCandidateDelegate { extension SessionCtl: CtlCandidateDelegate {
func buzz() { func buzz() {
IMEApp.buzz() IMEApp.buzz()
} }

View File

@ -14,7 +14,7 @@ import Voltaire
// MARK: - Tooltip Display and Candidate Display Methods // MARK: - Tooltip Display and Candidate Display Methods
extension ctlInputMethod { extension SessionCtl {
// App 使 // App 使
// App App // App App
// 使 20 // 使 20

View File

@ -14,7 +14,7 @@ import Shared
// MARK: - Facade // MARK: - Facade
extension ctlInputMethod { extension SessionCtl {
/// NSEvent /// NSEvent
/// - Parameters: /// - Parameters:
/// - event: nil /// - event: nil
@ -112,7 +112,7 @@ extension ctlInputMethod {
// MARK: - Private functions // MARK: - Private functions
extension ctlInputMethod { extension SessionCtl {
/// handle() IMK /// handle() IMK
/// handle() /// handle()
/// - Parameter event: IMK /// - Parameter event: IMK
@ -142,7 +142,7 @@ extension ctlInputMethod {
// IMK IMK // IMK IMK
// interpretKeyEvents() // interpretKeyEvents()
// - imkCandidates.interpretKeyEvents() // - imkCandidates.interpretKeyEvents()
// - delegate ctlInputMethod KeyHandler // - delegate SessionCtl KeyHandler
if let imkCandidates = Self.ctlCandidateCurrent as? CtlCandidateIMK, imkCandidates.visible { if let imkCandidates = Self.ctlCandidateCurrent as? CtlCandidateIMK, imkCandidates.visible {
let event: NSEvent = CtlCandidateIMK.replaceNumPadKeyCodes(target: eventToDeal) ?? eventToDeal let event: NSEvent = CtlCandidateIMK.replaceNumPadKeyCodes(target: eventToDeal) ?? eventToDeal

View File

@ -13,7 +13,7 @@ import Shared
// MARK: - 調 (State Handling) // MARK: - 調 (State Handling)
extension ctlInputMethod { extension SessionCtl {
/// 調 /// 調
/// ///
/// ///

View File

@ -11,7 +11,7 @@ import Tekkon
// MARK: - IMKCandidates // MARK: - IMKCandidates
extension ctlInputMethod { extension SessionCtl {
/// IMK /// IMK
/// - Parameter sender: 使 /// - Parameter sender: 使
/// - Returns: IMK /// - Returns: IMK

View File

@ -21,7 +21,7 @@ extension Bool {
// //
extension ctlInputMethod { extension SessionCtl {
override func menu() -> NSMenu! { override func menu() -> NSMenu! {
let optionKeyPressed = NSEvent.modifierFlags.contains(.option) let optionKeyPressed = NSEvent.modifierFlags.contains(.option)
@ -192,7 +192,7 @@ extension ctlInputMethod {
// MARK: - IME Menu Items // MARK: - IME Menu Items
extension ctlInputMethod { extension SessionCtl {
@objc override func showPreferences(_: Any?) { @objc override func showPreferences(_: Any?) {
if #unavailable(macOS 10.15) { if #unavailable(macOS 10.15) {
showLegacyPreferences() showLegacyPreferences()

View File

@ -92,13 +92,13 @@
<key>InputMethodConnectionName</key> <key>InputMethodConnectionName</key>
<string>org_atelierInmu_inputmethod_vChewing_Connection</string> <string>org_atelierInmu_inputmethod_vChewing_Connection</string>
<key>InputMethodServerControllerClass</key> <key>InputMethodServerControllerClass</key>
<string>ctlInputMethod</string> <string>SessionCtl</string>
<key>InputMethodServerDelegateClass</key> <key>InputMethodServerDelegateClass</key>
<string>ctlInputMethod</string> <string>SessionCtl</string>
<key>InputMethodServerPreferencesWindowControllerClass</key> <key>InputMethodServerPreferencesWindowControllerClass</key>
<string>ctlPrefWindow</string> <string>ctlPrefWindow</string>
<key>InputMethodSessionController</key> <key>InputMethodSessionController</key>
<string>ctlInputMethod</string> <string>SessionCtl</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string> <string>public.app-category.utilities</string>
<key>LSHasLocalizedDisplayName</key> <key>LSHasLocalizedDisplayName</key>

View File

@ -7,19 +7,19 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
5B00FA0C28DEC17200F6D436 /* ctlInputMethod_IMKCandidatesData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B00FA0B28DEC17200F6D436 /* ctlInputMethod_IMKCandidatesData.swift */; }; 5B00FA0C28DEC17200F6D436 /* SessionCtl_IMKCandidatesData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B00FA0B28DEC17200F6D436 /* SessionCtl_IMKCandidatesData.swift */; };
5B09307628B6FC3B0021F8C5 /* shortcuts.html in Resources */ = {isa = PBXBuildFile; fileRef = 5B09307828B6FC3B0021F8C5 /* shortcuts.html */; }; 5B09307628B6FC3B0021F8C5 /* shortcuts.html in Resources */ = {isa = PBXBuildFile; fileRef = 5B09307828B6FC3B0021F8C5 /* shortcuts.html */; };
5B0AF8B527B2C8290096FE54 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0AF8B427B2C8290096FE54 /* StringExtension.swift */; }; 5B0AF8B527B2C8290096FE54 /* StringExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0AF8B427B2C8290096FE54 /* StringExtension.swift */; };
5B0EF55D28CDBF7100F8F7CE /* frmClientListMgr.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0EF55C28CDBF7100F8F7CE /* frmClientListMgr.xib */; }; 5B0EF55D28CDBF7100F8F7CE /* frmClientListMgr.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5B0EF55C28CDBF7100F8F7CE /* frmClientListMgr.xib */; };
5B0EF55F28CDBF8E00F8F7CE /* ctlClientListMgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0EF55E28CDBF8E00F8F7CE /* ctlClientListMgr.swift */; }; 5B0EF55F28CDBF8E00F8F7CE /* ctlClientListMgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B0EF55E28CDBF8E00F8F7CE /* ctlClientListMgr.swift */; };
5B21176C287539BB000443A9 /* ctlInputMethod_HandleStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176B287539BB000443A9 /* ctlInputMethod_HandleStates.swift */; }; 5B21176C287539BB000443A9 /* SessionCtl_HandleStates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176B287539BB000443A9 /* SessionCtl_HandleStates.swift */; };
5B21176E28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176D28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift */; }; 5B21176E28753B35000443A9 /* SessionCtl_HandleDisplay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176D28753B35000443A9 /* SessionCtl_HandleDisplay.swift */; };
5B21177028753B9D000443A9 /* ctlInputMethod_Delegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176F28753B9D000443A9 /* ctlInputMethod_Delegates.swift */; }; 5B21177028753B9D000443A9 /* SessionCtl_Delegates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B21176F28753B9D000443A9 /* SessionCtl_Delegates.swift */; };
5B3133BF280B229700A4A505 /* KeyHandler_States.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3133BE280B229700A4A505 /* KeyHandler_States.swift */; }; 5B3133BF280B229700A4A505 /* KeyHandler_States.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B3133BE280B229700A4A505 /* KeyHandler_States.swift */; };
5B40113928D7050D00A9D4CB /* Shared in Frameworks */ = {isa = PBXBuildFile; productRef = 5B40113828D7050D00A9D4CB /* Shared */; }; 5B40113928D7050D00A9D4CB /* Shared in Frameworks */ = {isa = PBXBuildFile; productRef = 5B40113828D7050D00A9D4CB /* Shared */; };
5B40113C28D71C0100A9D4CB /* Uninstaller in Frameworks */ = {isa = PBXBuildFile; productRef = 5B40113B28D71C0100A9D4CB /* Uninstaller */; }; 5B40113C28D71C0100A9D4CB /* Uninstaller in Frameworks */ = {isa = PBXBuildFile; productRef = 5B40113B28D71C0100A9D4CB /* Uninstaller */; };
5B62A33D27AE7CC100A19448 /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A33C27AE7CC100A19448 /* ctlAboutWindow.swift */; }; 5B62A33D27AE7CC100A19448 /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A33C27AE7CC100A19448 /* ctlAboutWindow.swift */; };
5B6C141228A9D4B30098ADF8 /* ctlInputMethod_HandleEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6C141128A9D4B30098ADF8 /* ctlInputMethod_HandleEvent.swift */; }; 5B6C141228A9D4B30098ADF8 /* SessionCtl_HandleEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B6C141128A9D4B30098ADF8 /* SessionCtl_HandleEvent.swift */; };
5B73FB5E27B2BE1300E9BF49 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5B73FB6027B2BE1300E9BF49 /* InfoPlist.strings */; }; 5B73FB5E27B2BE1300E9BF49 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5B73FB6027B2BE1300E9BF49 /* InfoPlist.strings */; };
5B782EC4280C243C007276DE /* KeyHandler_HandleCandidate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B782EC3280C243C007276DE /* KeyHandler_HandleCandidate.swift */; }; 5B782EC4280C243C007276DE /* KeyHandler_HandleCandidate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B782EC3280C243C007276DE /* KeyHandler_HandleCandidate.swift */; };
5B78EE0D28A562B4009456C1 /* suiPrefPaneDevZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B78EE0C28A562B4009456C1 /* suiPrefPaneDevZone.swift */; }; 5B78EE0D28A562B4009456C1 /* suiPrefPaneDevZone.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B78EE0C28A562B4009456C1 /* suiPrefPaneDevZone.swift */; };
@ -41,7 +41,7 @@
5BA9FD1327FEDB6B002DE248 /* suiPrefPaneDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BA9FD0E27FEDB6B002DE248 /* suiPrefPaneDictionary.swift */; }; 5BA9FD1327FEDB6B002DE248 /* suiPrefPaneDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BA9FD0E27FEDB6B002DE248 /* suiPrefPaneDictionary.swift */; };
5BAD0CD527D701F6003D127F /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5BAD0CD527D701F6003D127F /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; };
5BAEFAD028012565001F42C9 /* LMMgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BAEFACF28012565001F42C9 /* LMMgr.swift */; }; 5BAEFAD028012565001F42C9 /* LMMgr.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BAEFACF28012565001F42C9 /* LMMgr.swift */; };
5BB802DA27FABA8300CF1C19 /* ctlInputMethod_Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB802D927FABA8300CF1C19 /* ctlInputMethod_Menu.swift */; }; 5BB802DA27FABA8300CF1C19 /* SessionCtl_Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB802D927FABA8300CF1C19 /* SessionCtl_Menu.swift */; };
5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75D27AED54C0023B93A /* Beep.m4a */; }; 5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75D27AED54C0023B93A /* Beep.m4a */; };
5BBBB76027AED54C0023B93A /* Fart.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75E27AED54C0023B93A /* Fart.m4a */; }; 5BBBB76027AED54C0023B93A /* Fart.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB75E27AED54C0023B93A /* Fart.m4a */; };
5BBBB76D27AED5DB0023B93A /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB76927AED5DB0023B93A /* frmAboutWindow.xib */; }; 5BBBB76D27AED5DB0023B93A /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BBBB76927AED5DB0023B93A /* frmAboutWindow.xib */; };
@ -110,7 +110,7 @@
D427F76C278CA2B0004A2160 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D427F76B278CA1BA004A2160 /* AppDelegate.swift */; }; D427F76C278CA2B0004A2160 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D427F76B278CA1BA004A2160 /* AppDelegate.swift */; };
D47B92C027972AD100458394 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47B92BF27972AC800458394 /* main.swift */; }; D47B92C027972AD100458394 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47B92BF27972AC800458394 /* main.swift */; };
D47F7DCE278BFB57002F9DD7 /* ctlPrefWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47F7DCD278BFB57002F9DD7 /* ctlPrefWindow.swift */; }; D47F7DCE278BFB57002F9DD7 /* ctlPrefWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = D47F7DCD278BFB57002F9DD7 /* ctlPrefWindow.swift */; };
D4A13D5A27A59F0B003BE359 /* ctlInputMethod_Core.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4A13D5927A59D5C003BE359 /* ctlInputMethod_Core.swift */; }; D4A13D5A27A59F0B003BE359 /* SessionCtl_Core.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4A13D5927A59D5C003BE359 /* SessionCtl_Core.swift */; };
D4E33D8A27A838CF006DB1CF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D4E33D8827A838CF006DB1CF /* Localizable.strings */; }; D4E33D8A27A838CF006DB1CF /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D4E33D8827A838CF006DB1CF /* Localizable.strings */; };
D4E33D8F27A838F0006DB1CF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D4E33D8D27A838F0006DB1CF /* InfoPlist.strings */; }; D4E33D8F27A838F0006DB1CF /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D4E33D8D27A838F0006DB1CF /* InfoPlist.strings */; };
D4F0BBDF279AF1AF0071253C /* ArchiveUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4F0BBDE279AF1AF0071253C /* ArchiveUtil.swift */; }; D4F0BBDF279AF1AF0071253C /* ArchiveUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D4F0BBDE279AF1AF0071253C /* ArchiveUtil.swift */; };
@ -155,7 +155,7 @@
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
5B00FA0B28DEC17200F6D436 /* ctlInputMethod_IMKCandidatesData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_IMKCandidatesData.swift; sourceTree = "<group>"; }; 5B00FA0B28DEC17200F6D436 /* SessionCtl_IMKCandidatesData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCtl_IMKCandidatesData.swift; sourceTree = "<group>"; };
5B04305327B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; }; 5B04305327B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
5B04305427B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; }; 5B04305427B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
5B04305527B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = "<group>"; }; 5B04305527B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/MainMenu.strings"; sourceTree = "<group>"; };
@ -195,9 +195,9 @@
5B18BA7427C7BD8C0056EB19 /* LICENSE-CHT.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "LICENSE-CHT.txt"; sourceTree = "<group>"; }; 5B18BA7427C7BD8C0056EB19 /* LICENSE-CHT.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "LICENSE-CHT.txt"; sourceTree = "<group>"; };
5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewing.entitlements; sourceTree = "<group>"; }; 5B20430B28BEFC0C00BFC6FD /* vChewing.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewing.entitlements; sourceTree = "<group>"; };
5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewingPhraseEditor.entitlements; sourceTree = "<group>"; }; 5B20430C28BEFC1200BFC6FD /* vChewingPhraseEditor.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = vChewingPhraseEditor.entitlements; sourceTree = "<group>"; };
5B21176B287539BB000443A9 /* ctlInputMethod_HandleStates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleStates.swift; sourceTree = "<group>"; }; 5B21176B287539BB000443A9 /* SessionCtl_HandleStates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCtl_HandleStates.swift; sourceTree = "<group>"; };
5B21176D28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleDisplay.swift; sourceTree = "<group>"; }; 5B21176D28753B35000443A9 /* SessionCtl_HandleDisplay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCtl_HandleDisplay.swift; sourceTree = "<group>"; };
5B21176F28753B9D000443A9 /* ctlInputMethod_Delegates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_Delegates.swift; sourceTree = "<group>"; }; 5B21176F28753B9D000443A9 /* SessionCtl_Delegates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCtl_Delegates.swift; sourceTree = "<group>"; };
5B2DB17127AF8771006D874E /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = Data/Makefile; sourceTree = "<group>"; }; 5B2DB17127AF8771006D874E /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; name = Makefile; path = Data/Makefile; sourceTree = "<group>"; };
5B2F2BB3286216A500B8557B /* vChewingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = vChewingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 5B2F2BB3286216A500B8557B /* vChewingTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = vChewingTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = vChewingKeyLayout.bundle; sourceTree = "<group>"; }; 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = vChewingKeyLayout.bundle; sourceTree = "<group>"; };
@ -206,7 +206,7 @@
5B40113A28D71B8700A9D4CB /* vChewing_Uninstaller */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = vChewing_Uninstaller; path = Packages/vChewing_Uninstaller; sourceTree = "<group>"; }; 5B40113A28D71B8700A9D4CB /* vChewing_Uninstaller */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = vChewing_Uninstaller; path = Packages/vChewing_Uninstaller; sourceTree = "<group>"; };
5B62A33C27AE7CC100A19448 /* ctlAboutWindow.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlAboutWindow.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5B62A33C27AE7CC100A19448 /* ctlAboutWindow.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlAboutWindow.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
5B65B919284D0185007C558B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; }; 5B65B919284D0185007C558B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
5B6C141128A9D4B30098ADF8 /* ctlInputMethod_HandleEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ctlInputMethod_HandleEvent.swift; sourceTree = "<group>"; }; 5B6C141128A9D4B30098ADF8 /* SessionCtl_HandleEvent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionCtl_HandleEvent.swift; sourceTree = "<group>"; };
5B73FB5427B2BD6900E9BF49 /* PhraseEditor-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "PhraseEditor-Info.plist"; path = "UserPhraseEditor/PhraseEditor-Info.plist"; sourceTree = SOURCE_ROOT; }; 5B73FB5427B2BD6900E9BF49 /* PhraseEditor-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "PhraseEditor-Info.plist"; path = "UserPhraseEditor/PhraseEditor-Info.plist"; sourceTree = SOURCE_ROOT; };
5B73FB5F27B2BE1300E9BF49 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 5B73FB5F27B2BE1300E9BF49 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
5B782EC3280C243C007276DE /* KeyHandler_HandleCandidate.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = KeyHandler_HandleCandidate.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5B782EC3280C243C007276DE /* KeyHandler_HandleCandidate.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = KeyHandler_HandleCandidate.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
@ -230,7 +230,7 @@
5BA9FD0D27FEDB6B002DE248 /* suiPrefPaneExperience.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = suiPrefPaneExperience.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5BA9FD0D27FEDB6B002DE248 /* suiPrefPaneExperience.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = suiPrefPaneExperience.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
5BA9FD0E27FEDB6B002DE248 /* suiPrefPaneDictionary.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = suiPrefPaneDictionary.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5BA9FD0E27FEDB6B002DE248 /* suiPrefPaneDictionary.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = suiPrefPaneDictionary.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
5BAEFACF28012565001F42C9 /* LMMgr.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = LMMgr.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5BAEFACF28012565001F42C9 /* LMMgr.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = LMMgr.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
5BB802D927FABA8300CF1C19 /* ctlInputMethod_Menu.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlInputMethod_Menu.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; 5BB802D927FABA8300CF1C19 /* SessionCtl_Menu.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = SessionCtl_Menu.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
5BBBB75D27AED54C0023B93A /* Beep.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beep.m4a; sourceTree = "<group>"; }; 5BBBB75D27AED54C0023B93A /* Beep.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = Beep.m4a; sourceTree = "<group>"; };
5BBBB75E27AED54C0023B93A /* Fart.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = Fart.m4a; sourceTree = "<group>"; }; 5BBBB75E27AED54C0023B93A /* Fart.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = Fart.m4a; sourceTree = "<group>"; };
5BBBB76A27AED5DB0023B93A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/frmAboutWindow.xib; sourceTree = "<group>"; }; 5BBBB76A27AED5DB0023B93A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/frmAboutWindow.xib; sourceTree = "<group>"; };
@ -313,7 +313,7 @@
D427F76B278CA1BA004A2160 /* AppDelegate.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = AppDelegate.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; D427F76B278CA1BA004A2160 /* AppDelegate.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = AppDelegate.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
D47B92BF27972AC800458394 /* main.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = main.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; D47B92BF27972AC800458394 /* main.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = main.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
D47F7DCD278BFB57002F9DD7 /* ctlPrefWindow.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlPrefWindow.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; D47F7DCD278BFB57002F9DD7 /* ctlPrefWindow.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlPrefWindow.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
D4A13D5927A59D5C003BE359 /* ctlInputMethod_Core.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ctlInputMethod_Core.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; D4A13D5927A59D5C003BE359 /* SessionCtl_Core.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = SessionCtl_Core.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
D4E33D8927A838CF006DB1CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; }; D4E33D8927A838CF006DB1CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
D4E33D8E27A838F0006DB1CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = "<group>"; }; D4E33D8E27A838F0006DB1CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = "<group>"; };
D4F0BBDE279AF1AF0071253C /* ArchiveUtil.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ArchiveUtil.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; }; D4F0BBDE279AF1AF0071253C /* ArchiveUtil.swift */ = {isa = PBXFileReference; explicitFileType = sourcecode.swift; fileEncoding = 4; indentWidth = 2; lineEnding = 0; path = ArchiveUtil.swift; sourceTree = "<group>"; tabWidth = 2; usesTabs = 0; };
@ -662,13 +662,6 @@
5B62A33A27AE7C7500A19448 /* WindowControllers */, 5B62A33A27AE7C7500A19448 /* WindowControllers */,
D427F76B278CA1BA004A2160 /* AppDelegate.swift */, D427F76B278CA1BA004A2160 /* AppDelegate.swift */,
5B8457A02871ADBE00C93B01 /* ChineseConverterBridge.swift */, 5B8457A02871ADBE00C93B01 /* ChineseConverterBridge.swift */,
D4A13D5927A59D5C003BE359 /* ctlInputMethod_Core.swift */,
5B21176F28753B9D000443A9 /* ctlInputMethod_Delegates.swift */,
5B21176D28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift */,
5B6C141128A9D4B30098ADF8 /* ctlInputMethod_HandleEvent.swift */,
5B21176B287539BB000443A9 /* ctlInputMethod_HandleStates.swift */,
5B00FA0B28DEC17200F6D436 /* ctlInputMethod_IMKCandidatesData.swift */,
5BB802D927FABA8300CF1C19 /* ctlInputMethod_Menu.swift */,
5BF56F9728C39A2700DD6839 /* IMEState.swift */, 5BF56F9728C39A2700DD6839 /* IMEState.swift */,
5BF56F9928C39D1800DD6839 /* IMEStateData.swift */, 5BF56F9928C39D1800DD6839 /* IMEStateData.swift */,
5BD0113C2818543900609769 /* KeyHandler_Core.swift */, 5BD0113C2818543900609769 /* KeyHandler_Core.swift */,
@ -680,6 +673,13 @@
D47B92BF27972AC800458394 /* main.swift */, D47B92BF27972AC800458394 /* main.swift */,
5B963CA728D5DB1400DCEE88 /* PrefMgr_Core.swift */, 5B963CA728D5DB1400DCEE88 /* PrefMgr_Core.swift */,
5BCCAFF728DB19A300AB1B27 /* PrefMgr_Extension.swift */, 5BCCAFF728DB19A300AB1B27 /* PrefMgr_Extension.swift */,
D4A13D5927A59D5C003BE359 /* SessionCtl_Core.swift */,
5B21176F28753B9D000443A9 /* SessionCtl_Delegates.swift */,
5B21176D28753B35000443A9 /* SessionCtl_HandleDisplay.swift */,
5B6C141128A9D4B30098ADF8 /* SessionCtl_HandleEvent.swift */,
5B21176B287539BB000443A9 /* SessionCtl_HandleStates.swift */,
5B00FA0B28DEC17200F6D436 /* SessionCtl_IMKCandidatesData.swift */,
5BB802D927FABA8300CF1C19 /* SessionCtl_Menu.swift */,
); );
path = Modules; path = Modules;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1056,18 +1056,18 @@
5BF56F9828C39A2700DD6839 /* IMEState.swift in Sources */, 5BF56F9828C39A2700DD6839 /* IMEState.swift in Sources */,
5B62A33D27AE7CC100A19448 /* ctlAboutWindow.swift in Sources */, 5B62A33D27AE7CC100A19448 /* ctlAboutWindow.swift in Sources */,
D47B92C027972AD100458394 /* main.swift in Sources */, D47B92C027972AD100458394 /* main.swift in Sources */,
D4A13D5A27A59F0B003BE359 /* ctlInputMethod_Core.swift in Sources */, D4A13D5A27A59F0B003BE359 /* SessionCtl_Core.swift in Sources */,
5B0EF55F28CDBF8E00F8F7CE /* ctlClientListMgr.swift in Sources */, 5B0EF55F28CDBF8E00F8F7CE /* ctlClientListMgr.swift in Sources */,
5B21177028753B9D000443A9 /* ctlInputMethod_Delegates.swift in Sources */, 5B21177028753B9D000443A9 /* SessionCtl_Delegates.swift in Sources */,
5B21176E28753B35000443A9 /* ctlInputMethod_HandleDisplay.swift in Sources */, 5B21176E28753B35000443A9 /* SessionCtl_HandleDisplay.swift in Sources */,
5BA9FD1027FEDB6B002DE248 /* suiPrefPaneKeyboard.swift in Sources */, 5BA9FD1027FEDB6B002DE248 /* suiPrefPaneKeyboard.swift in Sources */,
5B3133BF280B229700A4A505 /* KeyHandler_States.swift in Sources */, 5B3133BF280B229700A4A505 /* KeyHandler_States.swift in Sources */,
5B78EE0D28A562B4009456C1 /* suiPrefPaneDevZone.swift in Sources */, 5B78EE0D28A562B4009456C1 /* suiPrefPaneDevZone.swift in Sources */,
5B6C141228A9D4B30098ADF8 /* ctlInputMethod_HandleEvent.swift in Sources */, 5B6C141228A9D4B30098ADF8 /* SessionCtl_HandleEvent.swift in Sources */,
D47F7DCE278BFB57002F9DD7 /* ctlPrefWindow.swift in Sources */, D47F7DCE278BFB57002F9DD7 /* ctlPrefWindow.swift in Sources */,
5BD0113D2818543900609769 /* KeyHandler_Core.swift in Sources */, 5BD0113D2818543900609769 /* KeyHandler_Core.swift in Sources */,
5BF56F9A28C39D1800DD6839 /* IMEStateData.swift in Sources */, 5BF56F9A28C39D1800DD6839 /* IMEStateData.swift in Sources */,
5B21176C287539BB000443A9 /* ctlInputMethod_HandleStates.swift in Sources */, 5B21176C287539BB000443A9 /* SessionCtl_HandleStates.swift in Sources */,
5BAEFAD028012565001F42C9 /* LMMgr.swift in Sources */, 5BAEFAD028012565001F42C9 /* LMMgr.swift in Sources */,
5B782EC4280C243C007276DE /* KeyHandler_HandleCandidate.swift in Sources */, 5B782EC4280C243C007276DE /* KeyHandler_HandleCandidate.swift in Sources */,
5BA9FD0F27FEDB6B002DE248 /* suiPrefPaneGeneral.swift in Sources */, 5BA9FD0F27FEDB6B002DE248 /* suiPrefPaneGeneral.swift in Sources */,
@ -1076,9 +1076,9 @@
5B8457A12871ADBE00C93B01 /* ChineseConverterBridge.swift in Sources */, 5B8457A12871ADBE00C93B01 /* ChineseConverterBridge.swift in Sources */,
5BA9FD1327FEDB6B002DE248 /* suiPrefPaneDictionary.swift in Sources */, 5BA9FD1327FEDB6B002DE248 /* suiPrefPaneDictionary.swift in Sources */,
5BFDF011289635C100417BBC /* IMKCandidatesImpl.swift in Sources */, 5BFDF011289635C100417BBC /* IMKCandidatesImpl.swift in Sources */,
5BB802DA27FABA8300CF1C19 /* ctlInputMethod_Menu.swift in Sources */, 5BB802DA27FABA8300CF1C19 /* SessionCtl_Menu.swift in Sources */,
5BE377A0288FED8D0037365B /* KeyHandler_HandleComposition.swift in Sources */, 5BE377A0288FED8D0037365B /* KeyHandler_HandleComposition.swift in Sources */,
5B00FA0C28DEC17200F6D436 /* ctlInputMethod_IMKCandidatesData.swift in Sources */, 5B00FA0C28DEC17200F6D436 /* SessionCtl_IMKCandidatesData.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };