Repo // Reenable tooltip color sync.

This commit is contained in:
ShikiSuen 2022-09-19 15:16:00 +08:00
parent d06d81829d
commit 1c249d7818
2 changed files with 10 additions and 5 deletions

View File

@ -86,6 +86,8 @@ public struct StateData {
mgrPrefs.allowedMarkLengthRange.contains(markedRange.count) mgrPrefs.allowedMarkLengthRange.contains(markedRange.count)
} }
var tooltipColorState: ctlTooltip.ColorStates = .normal
var attributedStringNormal: NSAttributedString { var attributedStringNormal: NSAttributedString {
/// ///
/// JIS /// JIS
@ -197,7 +199,7 @@ extension StateData {
public static func updateParameters(_ data: inout StateData) { public static func updateParameters(_ data: inout StateData) {
var tooltipGenerated: String { var tooltipGenerated: String {
if mgrPrefs.phraseReplacementEnabled { if mgrPrefs.phraseReplacementEnabled {
ctlInputMethod.tooltipInstance.setColor(state: .warning) data.tooltipColorState = .warning
return NSLocalizedString( return NSLocalizedString(
"⚠︎ Phrase replacement mode enabled, interfering user phrase entry.", comment: "" "⚠︎ Phrase replacement mode enabled, interfering user phrase entry.", comment: ""
) )
@ -208,14 +210,14 @@ extension StateData {
let text = data.displayedText.charComponents[data.markedRange].joined() let text = data.displayedText.charComponents[data.markedRange].joined()
if data.markedRange.count < mgrPrefs.allowedMarkLengthRange.lowerBound { if data.markedRange.count < mgrPrefs.allowedMarkLengthRange.lowerBound {
ctlInputMethod.tooltipInstance.setColor(state: .denialInsufficiency) data.tooltipColorState = .denialInsufficiency
return String( return String(
format: NSLocalizedString( format: NSLocalizedString(
"\"%@\" length must ≥ 2 for a user phrase.", comment: "" "\"%@\" length must ≥ 2 for a user phrase.", comment: ""
) + "\n" + generateReadingThread(data), text ) + "\n" + generateReadingThread(data), text
) )
} else if data.markedRange.count > mgrPrefs.allowedMarkLengthRange.upperBound { } else if data.markedRange.count > mgrPrefs.allowedMarkLengthRange.upperBound {
ctlInputMethod.tooltipInstance.setColor(state: .denialOverflow) data.tooltipColorState = .denialOverflow
return String( return String(
format: NSLocalizedString( format: NSLocalizedString(
"\"%@\" length should ≤ %d for a user phrase.", comment: "" "\"%@\" length should ≤ %d for a user phrase.", comment: ""
@ -229,7 +231,7 @@ extension StateData {
) )
if exist { if exist {
data.markedTargetExists = exist data.markedTargetExists = exist
ctlInputMethod.tooltipInstance.setColor(state: .prompt) data.tooltipColorState = .prompt
return String( return String(
format: NSLocalizedString( format: NSLocalizedString(
"\"%@\" already exists:\n ENTER to boost, SHIFT+COMMAND+ENTER to nerf, \n BackSpace or Delete key to exclude.", "\"%@\" already exists:\n ENTER to boost, SHIFT+COMMAND+ENTER to nerf, \n BackSpace or Delete key to exclude.",
@ -237,7 +239,7 @@ extension StateData {
) + "\n" + generateReadingThread(data), text ) + "\n" + generateReadingThread(data), text
) )
} }
ctlInputMethod.tooltipInstance.resetColor() data.tooltipColorState = .normal
return String( return String(
format: NSLocalizedString("\"%@\" selected. ENTER to add user phrase.", comment: "") + "\n" format: NSLocalizedString("\"%@\" selected. ENTER to add user phrase.", comment: "") + "\n"
+ generateReadingThread(data), + generateReadingThread(data),

View File

@ -62,6 +62,9 @@ extension ctlInputMethod {
do { do {
ctlInputMethod.tooltipInstance.hide() ctlInputMethod.tooltipInstance.hide()
ctlInputMethod.tooltipInstance = .init() ctlInputMethod.tooltipInstance = .init()
if state.type == .ofMarking {
ctlInputMethod.tooltipInstance.setColor(state: state.data.tooltipColorState)
}
} }
// //
ctlInputMethod.tooltipInstance.show( ctlInputMethod.tooltipInstance.show(