SessionCtl // Optimize the IME menu for macOS 10.9.
This commit is contained in:
parent
0e4651e70e
commit
791256cf31
|
@ -413,6 +413,12 @@ public extension NSMenuItem {
|
||||||
return self
|
return self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@discardableResult func alternated(sure sured: Bool = true) -> NSMenuItem {
|
||||||
|
isAlternate = sured
|
||||||
|
keyEquivalentModifierMask = .option
|
||||||
|
return self
|
||||||
|
}
|
||||||
|
|
||||||
@discardableResult func state(_ givenState: Bool) -> NSMenuItem {
|
@discardableResult func state(_ givenState: Bool) -> NSMenuItem {
|
||||||
state = givenState ? .on : .off
|
state = givenState ? .on : .off
|
||||||
return self
|
return self
|
||||||
|
|
|
@ -45,6 +45,11 @@ extension SessionCtl {
|
||||||
.act(#selector(toggleAssociatedPhrasesEnabled(_:)))
|
.act(#selector(toggleAssociatedPhrasesEnabled(_:)))
|
||||||
.state(PrefMgr.shared.associatedPhrasesEnabled)
|
.state(PrefMgr.shared.associatedPhrasesEnabled)
|
||||||
.hotkey(PrefMgr.shared.usingHotKeyAssociates ? "O" : "", mask: [.command, .control])
|
.hotkey(PrefMgr.shared.usingHotKeyAssociates ? "O" : "", mask: [.command, .control])
|
||||||
|
NSMenu.Item("Edit Associated Phrases…")?
|
||||||
|
.act(#selector(openAssociatedPhrases(_:)))
|
||||||
|
.alternated()
|
||||||
|
.hotkey(PrefMgr.shared.usingHotKeyAssociates ? "O" : "", mask: [.command, .option, .control])
|
||||||
|
.nulled(silentMode)
|
||||||
NSMenu.Item("CIN Cassette Mode")?
|
NSMenu.Item("CIN Cassette Mode")?
|
||||||
.act(#selector(toggleCassetteMode(_:)))
|
.act(#selector(toggleCassetteMode(_:)))
|
||||||
.state(PrefMgr.shared.cassetteEnabled)
|
.state(PrefMgr.shared.cassetteEnabled)
|
||||||
|
@ -74,47 +79,73 @@ extension SessionCtl {
|
||||||
NSMenu.Item("Use Phrase Replacement")?
|
NSMenu.Item("Use Phrase Replacement")?
|
||||||
.act(#selector(togglePhraseReplacement(_:)))
|
.act(#selector(togglePhraseReplacement(_:)))
|
||||||
.state(PrefMgr.shared.phraseReplacementEnabled)
|
.state(PrefMgr.shared.phraseReplacementEnabled)
|
||||||
.nulled(!optionKeyPressed && !PrefMgr.shared.phraseReplacementEnabled)
|
NSMenu.Item("Edit Phrase Replacement Table…")?
|
||||||
|
.act(#selector(openPhraseReplacement(_:)))
|
||||||
|
.alternated().nulled(silentMode)
|
||||||
NSMenu.Item("Symbol & Emoji Input")?
|
NSMenu.Item("Symbol & Emoji Input")?
|
||||||
.act(#selector(toggleSymbolEnabled(_:)))
|
.act(#selector(toggleSymbolEnabled(_:)))
|
||||||
.state(PrefMgr.shared.symbolInputEnabled)
|
.state(PrefMgr.shared.symbolInputEnabled)
|
||||||
.nulled(!optionKeyPressed)
|
NSMenu.Item("Edit User Symbol & Emoji Data…")?
|
||||||
|
.act(#selector(openUserSymbols(_:)))
|
||||||
|
.alternated().nulled(silentMode)
|
||||||
|
|
||||||
NSMenu.Item.separator() // ---------------------
|
NSMenu.Item.separator() // ---------------------
|
||||||
NSMenu.Item("Open User Dictionary Folder")?.act(#selector(openUserDataFolder(_:))).nulled(silentMode)
|
NSMenu.Item("Open User Dictionary Folder")?
|
||||||
NSMenu.Item("Edit vChewing User Phrases…")?.act(#selector(openUserPhrases(_:))).nulled(silentMode)
|
.act(#selector(openUserDataFolder(_:)))
|
||||||
NSMenu.Item("Edit Excluded Phrases…")?.act(#selector(openExcludedPhrases(_:))).nulled(silentMode)
|
.nulled(silentMode)
|
||||||
NSMenu.Item("Edit Associated Phrases…")?.act(#selector(openAssociatedPhrases(_:))).nulled(
|
NSMenu.Item("Open App Support Folder")?
|
||||||
!(!silentMode && (optionKeyPressed || PrefMgr.shared.associatedPhrasesEnabled))
|
.act(#selector(openAppSupportFolderFromContainer(_:)))
|
||||||
)
|
.alternated().nulled(silentMode)
|
||||||
NSMenu.Item("Edit Phrase Replacement Table…")?.act(#selector(openPhraseReplacement(_:))).nulled(silentMode || !optionKeyPressed)
|
NSMenu.Item("Edit vChewing User Phrases…")?
|
||||||
NSMenu.Item("Edit User Symbol & Emoji Data…")?.act(#selector(openUserSymbols(_:))).nulled(silentMode || !optionKeyPressed)
|
.act(#selector(openUserPhrases(_:)))
|
||||||
NSMenu.Item("Open App Support Folder")?.act(#selector(openAppSupportFolderFromContainer(_:))).nulled(silentMode || !optionKeyPressed)
|
.nulled(silentMode)
|
||||||
|
NSMenu.Item("Reload User Phrases")?
|
||||||
NSMenu.Item("Reload User Phrases")?.act(#selector(reloadUserPhrasesData(_:))).nulled(PrefMgr.shared.shouldAutoReloadUserDataFiles && !optionKeyPressed)
|
.act(#selector(reloadUserPhrasesData(_:)))
|
||||||
|
NSMenu.Item("Edit Excluded Phrases…")?
|
||||||
|
.act(#selector(openExcludedPhrases(_:)))
|
||||||
|
.alternated().nulled(silentMode)
|
||||||
NSMenu.Item(verbatim: "Reverse Lookup (Phonabets)".localized.withEllipsis)?
|
NSMenu.Item(verbatim: "Reverse Lookup (Phonabets)".localized.withEllipsis)?
|
||||||
.act(#selector(callReverseLookupWindow(_:))).hotkey(PrefMgr.shared.usingHotKeyRevLookup ? "/" : "", mask: [.command, .control])
|
.act(#selector(callReverseLookupWindow(_:)))
|
||||||
|
.hotkey(PrefMgr.shared.usingHotKeyRevLookup ? "/" : "", mask: [.command, .control])
|
||||||
NSMenu.Item("Optimize Memorized Phrases")?.act(#selector(removeUnigramsFromUOM(_:)))
|
NSMenu.Item("Optimize Memorized Phrases")?
|
||||||
NSMenu.Item("Clear Memorized Phrases")?.act(#selector(clearUOM(_:)))
|
.act(#selector(removeUnigramsFromUOM(_:)))
|
||||||
|
NSMenu.Item("Clear Memorized Phrases")?
|
||||||
|
.act(#selector(clearUOM(_:)))
|
||||||
|
.alternated()
|
||||||
|
|
||||||
NSMenu.Item.separator() // ---------------------
|
NSMenu.Item.separator() // ---------------------
|
||||||
if #unavailable(macOS 13) {
|
if #unavailable(macOS 13) {
|
||||||
NSMenu.Item("vChewing Preferences…")?.act(#selector(showPreferences(_:))).nulled(silentMode)
|
NSMenu.Item("vChewing Preferences…")?
|
||||||
|
.act(#selector(showPreferences(_:)))
|
||||||
|
.nulled(silentMode)
|
||||||
} else {
|
} else {
|
||||||
NSMenu.Item(
|
NSMenu.Item(verbatim: "vChewing Preferences…".localized + " (SwiftUI)")?
|
||||||
verbatim: "vChewing Preferences…".localized + " (SwiftUI)"
|
.act(#selector(showSettingsSwiftUI(_:)))
|
||||||
)?.act(#selector(showSettingsSwiftUI(_:))).nulled(silentMode)
|
.nulled(silentMode)
|
||||||
NSMenu.Item(
|
NSMenu.Item(verbatim: "vChewing Preferences…".localized + " (AppKit)")?
|
||||||
verbatim: "vChewing Preferences…".localized + " (AppKit)"
|
.act(#selector(showSettingsAppKit(_:)))
|
||||||
)?.act(#selector(showSettingsAppKit(_:))).nulled(silentMode)
|
.alternated().nulled(silentMode)
|
||||||
}
|
}
|
||||||
NSMenu.Item(verbatim: "Client Manager".localized.withEllipsis)?.act(#selector(showClientListMgr(_:))).nulled(silentMode)
|
NSMenu.Item("vChewing Preferences…")?
|
||||||
NSMenu.Item("Check for Updates…")?.act(#selector(checkForUpdate(_:))).nulled(silentMode)
|
.act(#selector(showPreferences(_:)))
|
||||||
NSMenu.Item("Reboot vChewing…")?.act(#selector(selfTerminate(_:)))
|
.nulled(silentMode)
|
||||||
NSMenu.Item("About vChewing…")?.act(#selector(showAbout(_:))).nulled(silentMode)
|
NSMenu.Item(verbatim: "Client Manager".localized.withEllipsis)?
|
||||||
NSMenu.Item("CheatSheet")?.act(#selector(showCheatSheet(_:))).nulled(silentMode)
|
.act(#selector(showClientListMgr(_:)))
|
||||||
NSMenu.Item("Uninstall vChewing…")?.act(#selector(selfUninstall(_:))).nulled(silentMode || !optionKeyPressed)
|
.nulled(silentMode)
|
||||||
|
NSMenu.Item("Check for Updates…")?
|
||||||
|
.act(#selector(checkForUpdate(_:)))
|
||||||
|
.nulled(silentMode)
|
||||||
|
NSMenu.Item("Reboot vChewing…")?
|
||||||
|
.act(#selector(selfTerminate(_:)))
|
||||||
|
NSMenu.Item("CheatSheet")?
|
||||||
|
.act(#selector(showCheatSheet(_:)))
|
||||||
|
.nulled(silentMode)
|
||||||
|
NSMenu.Item("About vChewing…")?
|
||||||
|
.act(#selector(showAbout(_:)))
|
||||||
|
.alternated()
|
||||||
|
NSMenu.Item("Uninstall vChewing…")?
|
||||||
|
.act(#selector(selfUninstall(_:)))
|
||||||
|
.nulled(silentMode || !optionKeyPressed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue