CtlCandidateTDK // Auto-update tooltips when expanded.

This commit is contained in:
ShikiSuen 2023-08-29 00:39:48 +08:00
parent 2c132a4f92
commit 4224509dae
4 changed files with 15 additions and 14 deletions

View File

@ -111,6 +111,7 @@ public class CtlCandidateTDK: CtlCandidate, NSWindowDelegate {
if let currentCandidateText = Self.thePool.currentSelectedCandidateText { if let currentCandidateText = Self.thePool.currentSelectedCandidateText {
reverseLookupResult = delegate?.reverseLookup(for: currentCandidateText) ?? [] reverseLookupResult = delegate?.reverseLookup(for: currentCandidateText) ?? []
Self.thePool.reverseLookupResult = reverseLookupResult Self.thePool.reverseLookupResult = reverseLookupResult
Self.thePool.tooltip = delegate?.candidateToolTip(shortened: !Self.thePool.isMatrix) ?? ""
} }
delegate?.candidatePairHighlightChanged(at: highlightedIndex) delegate?.candidatePairHighlightChanged(at: highlightedIndex)
DispatchQueue.main.async { [self] in DispatchQueue.main.async { [self] in

View File

@ -92,6 +92,19 @@ extension SessionCtl: CtlCandidateDelegate {
public var showReverseLookupResult: Bool { PrefMgr.shared.showReverseLookupInCandidateUI } public var showReverseLookupResult: Bool { PrefMgr.shared.showReverseLookupInCandidateUI }
public func candidateToolTip(shortened: Bool) -> String {
if state.type == .ofAssociates {
return shortened ? "" : NSLocalizedString("Hold ⇧ to choose associates.", comment: "")
} else if state.type == .ofInputting, state.isCandidateContainer {
let useShift = LMMgr.currentLM.areCassetteCandidateKeysShiftHeld
let theEmoji = useShift ? "⬆️" : "⚡️"
return shortened ? theEmoji : "\(theEmoji) " + NSLocalizedString("Quick Candidates", comment: "")
} else if PrefMgr.shared.cassetteEnabled {
return shortened ? "📼" : "📼 " + NSLocalizedString("CIN Cassette Mode", comment: "")
}
return ""
}
@discardableResult public func reverseLookup(for value: String) -> [String] { @discardableResult public func reverseLookup(for value: String) -> [String] {
let blankResult: [String] = [] let blankResult: [String] = []
// //

View File

@ -96,19 +96,6 @@ public extension SessionCtl {
name: PrefMgr.shared.candidateTextFontName, size: PrefMgr.shared.candidateListTextSize name: PrefMgr.shared.candidateTextFontName, size: PrefMgr.shared.candidateListTextSize
) )
if state.type == .ofAssociates {
candidateUI?.tooltip =
singleLine ? "" : NSLocalizedString("Hold ⇧ to choose associates.", comment: "")
} else if state.type == .ofInputting, state.isCandidateContainer {
let useShift = LMMgr.currentLM.areCassetteCandidateKeysShiftHeld
let theEmoji = useShift ? "⬆️" : "⚡️"
candidateUI?.tooltip =
singleLine ? theEmoji : "\(theEmoji) " + NSLocalizedString("Quick Candidates", comment: "")
} else if PrefMgr.shared.cassetteEnabled {
candidateUI?.tooltip =
singleLine ? "📼" : "📼 " + NSLocalizedString("CIN Cassette Mode", comment: "")
}
candidateUI?.locale = { candidateUI?.locale = {
switch inputMode { switch inputMode {
case .imeModeCHS: return "zh-Hans" case .imeModeCHS: return "zh-Hans"

View File

@ -13,7 +13,7 @@ public protocol CtlCandidateDelegate {
func candidatePairSelectionConfirmed(at index: Int) func candidatePairSelectionConfirmed(at index: Int)
func candidatePairHighlightChanged(at index: Int) func candidatePairHighlightChanged(at index: Int)
func candidatePairRightClicked(at index: Int, action: CandidateContextMenuAction) func candidatePairRightClicked(at index: Int, action: CandidateContextMenuAction)
func candidates(_ sender: Any!) -> [Any]! func candidateToolTip(shortened: Bool) -> String
func resetCandidateWindowOrigin() func resetCandidateWindowOrigin()
@discardableResult func reverseLookup(for value: String) -> [String] @discardableResult func reverseLookup(for value: String) -> [String]
var selectionKeys: String { get } var selectionKeys: String { get }