diff --git a/KeyboardExtension/Base.lproj/ShareViewController.xib b/KeyboardExtension/Base.lproj/ShareViewController.xib new file mode 100644 index 00000000..bc80e0d6 --- /dev/null +++ b/KeyboardExtension/Base.lproj/ShareViewController.xib @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KeyboardExtension/Info.plist b/KeyboardExtension/Info.plist new file mode 100644 index 00000000..f275862c --- /dev/null +++ b/KeyboardExtension/Info.plist @@ -0,0 +1,23 @@ + + + + + CFBundleIconFile + icon + NSExtension + + NSExtensionAttributes + + NSExtensionActivationRule + + NSExtensionActivationSupportsText + + + + NSExtensionPointIdentifier + com.apple.share-services + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).ShareViewController + + + diff --git a/KeyboardExtension/KeyboardExtension.entitlements b/KeyboardExtension/KeyboardExtension.entitlements new file mode 100644 index 00000000..33ede3bb --- /dev/null +++ b/KeyboardExtension/KeyboardExtension.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.temporary-exception.mach-register.global-name + org_atelierInmu_inputmethod_vChewing + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/KeyboardExtension/ShareViewController.swift b/KeyboardExtension/ShareViewController.swift new file mode 100644 index 00000000..75910d4c --- /dev/null +++ b/KeyboardExtension/ShareViewController.swift @@ -0,0 +1,41 @@ +// +// ShareViewController.swift +// KeyboardExtension +// +// Created by ShikiSuen on 2022/2/20. +// + +import Cocoa + +class ShareViewController: NSViewController { + + override var nibName: NSNib.Name? { + return NSNib.Name("ShareViewController") + } + + override func loadView() { + super.loadView() + + // Insert code here to customize the view + let item = self.extensionContext!.inputItems[0] as! NSExtensionItem + if let attachments = item.attachments { + NSLog("Attachments = %@", attachments as NSArray) + } else { + NSLog("No Attachments") + } + } + + @IBAction func send(_ sender: AnyObject?) { + let outputItem = NSExtensionItem() + // Complete implementation by setting the appropriate value on the output item + + let outputItems = [outputItem] + self.extensionContext!.completeRequest(returningItems: outputItems, completionHandler: nil) +} + + @IBAction func cancel(_ sender: AnyObject?) { + let cancelError = NSError(domain: NSCocoaErrorDomain, code: NSUserCancelledError, userInfo: nil) + self.extensionContext!.cancelRequest(withError: cancelError) + } + +} diff --git a/KeyboardExtension/icon.icns b/KeyboardExtension/icon.icns new file mode 100644 index 00000000..84ae85cd Binary files /dev/null and b/KeyboardExtension/icon.icns differ diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Info.plist b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist similarity index 67% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Info.plist rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist index 52159851..594e7ab6 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Info.plist +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Info.plist @@ -8,48 +8,48 @@ vChewingKeyLayout CFBundleVersion 1.0 - KLInfo_Zhuyin Dachen + KLInfo_vChewingDachen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyindachen + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin ETen + KLInfo_vChewingETen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyineten + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingETen TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin IBM + KLInfo_vChewingIBM TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinibm + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingIBM TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin MiTAC + KLInfo_vChewingMiTAC TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinmitac + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingMiTAC TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin Seigyou + KLInfo_vChewingSeigyou TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinseigyou + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingSeigyou TISIntendedLanguage zh-Hanb diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout index bf901502..19c784b8 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout index 98ba181c..918c7780 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout index e0b3d15c..66ea8e1b 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout index 2a670716..c459b76a 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout index bc6032ad..d153ef26 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout @@ -1,7 +1,7 @@ - + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings new file mode 100644 index 00000000..128b7a66 Binary files /dev/null and b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings differ diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/version.plist b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/version.plist similarity index 100% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/version.plist rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/version.plist diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings deleted file mode 100644 index 08c98689..00000000 Binary files a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings and /dev/null differ diff --git a/Source/WindowControllers/ctlPrefWindow.swift b/Source/WindowControllers/ctlPrefWindow.swift index ebdd9695..b2b11896 100644 --- a/Source/WindowControllers/ctlPrefWindow.swift +++ b/Source/WindowControllers/ctlPrefWindow.swift @@ -86,7 +86,7 @@ extension RangeReplaceableCollection where Element: Hashable { let menuItem_vChewingDachen = NSMenuItem() menuItem_vChewingDachen.title = String(format: NSLocalizedString("vChewing Dachen (Not Finished Yet)", comment: "")) - menuItem_vChewingDachen.representedObject = String("org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyindachen") + menuItem_vChewingDachen.representedObject = String("org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen") basisKeyboardLayoutButton.menu?.addItem(menuItem_vChewingDachen) let basisKeyboardLayoutID = Preferences.basisKeyboardLayout diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 578eea6b..dd59d3d6 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ 5B11328927B94CFB00E58451 /* AppleKeyboardConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B11328827B94CFB00E58451 /* AppleKeyboardConverter.swift */; }; 5B2DB16F27AF6891006D874E /* data-chs.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5B2DB16D27AF6891006D874E /* data-chs.txt */; }; 5B2DB17027AF6891006D874E /* data-cht.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5B2DB16E27AF6891006D874E /* data-cht.txt */; }; - 5B30F11327BA568800484E24 /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5B62A31727AE73A700A19448 /* unzip.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30927AE73A700A19448 /* unzip.m */; }; 5B62A31827AE73A700A19448 /* zip.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30A27AE73A700A19448 /* zip.m */; }; 5B62A31927AE73A700A19448 /* ioapi.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30B27AE73A700A19448 /* ioapi.m */; }; @@ -51,6 +50,11 @@ 5BD05C6927B2BBEF004C4F1D /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */; }; 5BD05C6A27B2BBEF004C4F1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */; }; 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */; }; + 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */; }; + 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */; }; + 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */; }; + 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5BDCBB2E27B4E67A00D0CC59 /* vChewingPhraseEditor.app in Resources */ = {isa = PBXBuildFile; fileRef = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; }; 5BE78BD927B3775B005EA1BE /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BE78BD827B37750005EA1BE /* ctlAboutWindow.swift */; }; 5BE78BDD27B3776D005EA1BE /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */; }; @@ -97,6 +101,13 @@ remoteGlobalIDString = 5BD05BB727B2A429004C4F1D; remoteInfo = vChewingPhraseEditor; }; + 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5BDC5CAF27C28E8B00E1CCE2; + remoteInfo = KeyboardExtension; + }; 6A38BC2515FC131100A8A51F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; @@ -113,6 +124,20 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + 5BDC5CBE27C28E8B00E1CCE2 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 5B04305327B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 5B04305427B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; @@ -197,6 +222,12 @@ 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Grid.mm; sourceTree = ""; }; + 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = KeyboardExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; + 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; + 5BDC5CB727C28E8B00E1CCE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ShareViewController.xib; sourceTree = ""; }; + 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = KeyboardExtension.entitlements; sourceTree = ""; }; 5BDCBB4227B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/MainMenu.strings"; sourceTree = ""; }; 5BDCBB4327B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/frmAboutWindow.strings"; sourceTree = ""; }; 5BDCBB4527B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings"; sourceTree = ""; }; @@ -282,6 +313,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -299,14 +337,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5B30F10727BA501900484E24 /* KeyLayouts */ = { - isa = PBXGroup; - children = ( - 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */, - ); - path = KeyLayouts; - sourceTree = ""; - }; 5B62A30127AE732800A19448 /* 3rdParty */ = { isa = PBXGroup; children = ( @@ -461,7 +491,6 @@ 5B62A33027AE78E500A19448 /* Resources */ = { isa = PBXGroup; children = ( - 5B30F10727BA501900484E24 /* KeyLayouts */, 6A0D4EEE15FC0DA600ABF4B3 /* Images */, 5BBBB76E27AED70B0023B93A /* MenuIcons */, 5BBBB75C27AED54C0023B93A /* SoundFiles */, @@ -598,6 +627,19 @@ path = Resources; sourceTree = ""; }; + 5BDC5CB127C28E8B00E1CCE2 /* KeyboardExtension */ = { + isa = PBXGroup; + children = ( + 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */, + 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */, + 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */, + 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */, + 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */, + 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */, + ); + path = KeyboardExtension; + sourceTree = ""; + }; 6A0D4E9215FC0CFA00ABF4B3 = { isa = PBXGroup; children = ( @@ -605,6 +647,7 @@ 6ACA41E715FC1D9000935EF6 /* Installer */, 6A0D4EC215FC0D3C00ABF4B3 /* Source */, 5BD05BB927B2A429004C4F1D /* UserPhraseEditor */, + 5BDC5CB127C28E8B00E1CCE2 /* KeyboardExtension */, 6A0D4EA315FC0D2D00ABF4B3 /* Products */, D47D73C127A7200500255A50 /* Frameworks */, ); @@ -616,6 +659,7 @@ 6A0D4EA215FC0D2D00ABF4B3 /* vChewing.app */, 6ACA41CB15FC1D7500935EF6 /* vChewingInstaller.app */, 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */, + 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */, ); name = Products; sourceTree = ""; @@ -737,6 +781,23 @@ productReference = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; productType = "com.apple.product-type.application"; }; + 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */; + buildPhases = ( + 5BDC5CAC27C28E8B00E1CCE2 /* Sources */, + 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */, + 5BDC5CAE27C28E8B00E1CCE2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = KeyboardExtension; + productName = KeyboardExtension; + productReference = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */ = { isa = PBXNativeTarget; buildConfigurationList = 6A0D4EC015FC0D2E00ABF4B3 /* Build configuration list for PBXNativeTarget "vChewing" */; @@ -744,12 +805,14 @@ 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */, 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */, 6A0D4EA015FC0D2D00ABF4B3 /* Resources */, + 5BDC5CBE27C28E8B00E1CCE2 /* Embed App Extensions */, ); buildRules = ( ); dependencies = ( 5B0AF8B327B2C4E20096FE54 /* PBXTargetDependency */, 6A38BC2615FC131100A8A51F /* PBXTargetDependency */, + 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */, ); name = vChewing; packageProductDependencies = ( @@ -793,6 +856,10 @@ LastSwiftMigration = 1320; ProvisioningStyle = Automatic; }; + 5BDC5CAF27C28E8B00E1CCE2 = { + CreatedOnToolsVersion = 13.2; + ProvisioningStyle = Automatic; + }; 6A0D4EA115FC0D2D00ABF4B3 = { LastSwiftMigration = 1240; ProvisioningStyle = Automatic; @@ -824,6 +891,7 @@ 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */, 6ACA41CA15FC1D7500935EF6 /* vChewingInstaller */, 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */, + 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */, 6A38BC2115FC12FD00A8A51F /* Data */, ); }; @@ -841,6 +909,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAE27C28E8B00E1CCE2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */, + 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */, + 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4EA015FC0D2D00ABF4B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -861,7 +939,6 @@ 5BBBB77627AED70B0023B93A /* MenuIcon-TCVIM.png in Resources */, 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */, 5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */, - 5B30F11327BA568800484E24 /* vChewingKeyLayout.bundle in Resources */, 5B2DB16F27AF6891006D874E /* data-chs.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -916,6 +993,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAC27C28E8B00E1CCE2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -983,6 +1068,11 @@ target = 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */; targetProxy = 5B0AF8B227B2C4E20096FE54 /* PBXContainerItemProxy */; }; + 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */; + targetProxy = 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */; + }; 6A38BC2615FC131100A8A51F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 6A38BC2115FC12FD00A8A51F /* Data */; @@ -1050,6 +1140,14 @@ name = Main.storyboard; sourceTree = ""; }; + 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + 5BDC5CB727C28E8B00E1CCE2 /* Base */, + ); + name = ShareViewController.xib; + sourceTree = ""; + }; 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */ = { isa = PBXVariantGroup; children = ( @@ -1229,6 +1327,102 @@ }; name = Release; }; + 5BDC5CBF27C28E8B00E1CCE2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1923; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = KeyboardExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MARKETING_VERSION = 1.3.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 5BDC5CC027C28E8B00E1CCE2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1923; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; + DEVELOPMENT_TEAM = ""; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = KeyboardExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MARKETING_VERSION = 1.3.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; 6A0D4E9915FC0CFA00ABF4B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1315,6 +1509,7 @@ 6A0D4EBE15FC0D2E00ABF4B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; @@ -1332,7 +1527,7 @@ COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1922; - DEVELOPMENT_ASSET_PATHS = Source/Resources/KeyLayouts/vChewingKeyLayout.bundle; + DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -1379,6 +1574,7 @@ 6A0D4EBF15FC0D2E00ABF4B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; @@ -1397,7 +1593,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1922; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_ASSET_PATHS = Source/Resources/KeyLayouts/vChewingKeyLayout.bundle; + DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -1593,6 +1789,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BDC5CBF27C28E8B00E1CCE2 /* Debug */, + 5BDC5CC027C28E8B00E1CCE2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 6A0D4E9715FC0CFA00ABF4B3 /* Build configuration list for PBXProject "vChewing" */ = { isa = XCConfigurationList; buildConfigurations = (