Voltaire // Add Associated Phrases Support.
This commit is contained in:
parent
dc93336f4a
commit
0acffd2367
|
@ -496,9 +496,9 @@ extension ctlInputMethod {
|
||||||
|
|
||||||
let candidateKeys = Preferences.candidateKeys
|
let candidateKeys = Preferences.candidateKeys
|
||||||
let keyLabels = candidateKeys.count > 4 ? Array(candidateKeys) : Array(Preferences.defaultCandidateKeys)
|
let keyLabels = candidateKeys.count > 4 ? Array(candidateKeys) : Array(Preferences.defaultCandidateKeys)
|
||||||
let keyLabelPrefix = state is InputState.AssociatedPhrases ? "⇧ " : ""
|
let keyLabelSuffix = state is InputState.AssociatedPhrases ? "^" : ""
|
||||||
gCurrentCandidateController?.keyLabels = keyLabels.map {
|
gCurrentCandidateController?.keyLabels = keyLabels.map {
|
||||||
CandidateKeyLabel(key: String($0), displayedText: keyLabelPrefix + String($0))
|
CandidateKeyLabel(key: String($0), displayedText: String($0) + keyLabelSuffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
gCurrentCandidateController?.delegate = self
|
gCurrentCandidateController?.delegate = self
|
||||||
|
|
|
@ -73,7 +73,7 @@ public class CandidateController: NSWindowController {
|
||||||
@objc public var keyLabels: [CandidateKeyLabel] = ["1", "2", "3", "4", "5", "6", "7", "8", "9"].map {
|
@objc public var keyLabels: [CandidateKeyLabel] = ["1", "2", "3", "4", "5", "6", "7", "8", "9"].map {
|
||||||
CandidateKeyLabel(key: $0, displayedText: $0)
|
CandidateKeyLabel(key: $0, displayedText: $0)
|
||||||
}
|
}
|
||||||
@objc public var keyLabelFont: NSFont = NSFont.systemFont(ofSize: 14)
|
@objc public var keyLabelFont: NSFont = NSFont.monospacedDigitSystemFont(ofSize: 14, weight: .medium)
|
||||||
@objc public var candidateFont: NSFont = NSFont.systemFont(ofSize: 18)
|
@objc public var candidateFont: NSFont = NSFont.systemFont(ofSize: 18)
|
||||||
@objc public var tooltip: String = ""
|
@objc public var tooltip: String = ""
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,7 @@ fileprivate class HorizontalCandidateView: NSView {
|
||||||
|
|
||||||
keyLabelAttrDict = [.font: labelFont,
|
keyLabelAttrDict = [.font: labelFont,
|
||||||
.paragraphStyle: paraStyle,
|
.paragraphStyle: paraStyle,
|
||||||
|
.verticalGlyphForm: true as AnyObject,
|
||||||
.foregroundColor: NSColor.secondaryLabelColor] // Candidate phrase text color
|
.foregroundColor: NSColor.secondaryLabelColor] // Candidate phrase text color
|
||||||
candidateAttrDict = [.font: candidateFont,
|
candidateAttrDict = [.font: candidateFont,
|
||||||
.paragraphStyle: paraStyle,
|
.paragraphStyle: paraStyle,
|
||||||
|
@ -89,7 +90,7 @@ fileprivate class HorizontalCandidateView: NSView {
|
||||||
let candidateFontSize = candidateFont.pointSize
|
let candidateFontSize = candidateFont.pointSize
|
||||||
let biggestSize = max(labelFontSize, candidateFontSize)
|
let biggestSize = max(labelFontSize, candidateFontSize)
|
||||||
keyLabelWidth = ceil(labelFontSize)
|
keyLabelWidth = ceil(labelFontSize)
|
||||||
keyLabelHeight = ceil(labelFontSize * 1.20)
|
keyLabelHeight = ceil(labelFontSize * 2)
|
||||||
candidateTextHeight = ceil(candidateFontSize * 1.20)
|
candidateTextHeight = ceil(candidateFontSize * 1.20)
|
||||||
cellPadding = ceil(biggestSize / 2.0)
|
cellPadding = ceil(biggestSize / 2.0)
|
||||||
}
|
}
|
||||||
|
@ -118,7 +119,7 @@ fileprivate class HorizontalCandidateView: NSView {
|
||||||
for index in 0..<elementWidths.count {
|
for index in 0..<elementWidths.count {
|
||||||
let currentWidth = elementWidths[index]
|
let currentWidth = elementWidths[index]
|
||||||
let rctCandidateArea = NSRect(x: accuWidth, y: 0.0, width: currentWidth + 1.0, height: candidateTextHeight + cellPadding)
|
let rctCandidateArea = NSRect(x: accuWidth, y: 0.0, width: currentWidth + 1.0, height: candidateTextHeight + cellPadding)
|
||||||
let rctLabel = NSRect(x: accuWidth + cellPadding / 2 - 1, y: cellPadding / 2 , width: keyLabelWidth, height: candidateTextHeight)
|
let rctLabel = NSRect(x: accuWidth + cellPadding / 2 - 1, y: cellPadding / 2 , width: keyLabelWidth, height: keyLabelHeight * 2.0)
|
||||||
let rctCandidatePhrase = NSRect(x: accuWidth + keyLabelWidth - 1, y: cellPadding / 2 , width: currentWidth - keyLabelWidth, height: candidateTextHeight)
|
let rctCandidatePhrase = NSRect(x: accuWidth + keyLabelWidth - 1, y: cellPadding / 2 , width: currentWidth - keyLabelWidth, height: candidateTextHeight)
|
||||||
|
|
||||||
var activeCandidateIndexAttr = keyLabelAttrDict
|
var activeCandidateIndexAttr = keyLabelAttrDict
|
||||||
|
|
|
@ -91,6 +91,7 @@ fileprivate class VerticalCandidateView: NSView {
|
||||||
|
|
||||||
keyLabelAttrDict = [.font: labelFont,
|
keyLabelAttrDict = [.font: labelFont,
|
||||||
.paragraphStyle: paraStyle,
|
.paragraphStyle: paraStyle,
|
||||||
|
.verticalGlyphForm: true as AnyObject,
|
||||||
.foregroundColor: NSColor.secondaryLabelColor] // Candidate phrase text color
|
.foregroundColor: NSColor.secondaryLabelColor] // Candidate phrase text color
|
||||||
candidateAttrDict = [.font: candidateFont,
|
candidateAttrDict = [.font: candidateFont,
|
||||||
.paragraphStyle: paraStyle,
|
.paragraphStyle: paraStyle,
|
||||||
|
@ -99,7 +100,7 @@ fileprivate class VerticalCandidateView: NSView {
|
||||||
let candidateFontSize = candidateFont.pointSize
|
let candidateFontSize = candidateFont.pointSize
|
||||||
let biggestSize = max(labelFontSize, candidateFontSize)
|
let biggestSize = max(labelFontSize, candidateFontSize)
|
||||||
keyLabelWidth = ceil(labelFontSize)
|
keyLabelWidth = ceil(labelFontSize)
|
||||||
keyLabelHeight = ceil(labelFontSize * 1.20)
|
keyLabelHeight = ceil(labelFontSize * 2)
|
||||||
candidateTextHeight = ceil(candidateFontSize * 1.20)
|
candidateTextHeight = ceil(candidateFontSize * 1.20)
|
||||||
cellPadding = ceil(biggestSize / 2.0)
|
cellPadding = ceil(biggestSize / 2.0)
|
||||||
}
|
}
|
||||||
|
@ -128,7 +129,7 @@ fileprivate class VerticalCandidateView: NSView {
|
||||||
for index in 0..<elementHeights.count {
|
for index in 0..<elementHeights.count {
|
||||||
let currentHeight = elementHeights[index]
|
let currentHeight = elementHeights[index]
|
||||||
let rctCandidateArea = NSRect(x: 0.0, y: accuHeight, width: windowWidth, height: candidateTextHeight + cellPadding)
|
let rctCandidateArea = NSRect(x: 0.0, y: accuHeight, width: windowWidth, height: candidateTextHeight + cellPadding)
|
||||||
let rctLabel = NSRect(x: cellPadding / 2 - 1, y: accuHeight + cellPadding / 2, width: keyLabelWidth, height: candidateTextHeight)
|
let rctLabel = NSRect(x: cellPadding / 2 - 1, y: accuHeight + cellPadding / 2, width: keyLabelWidth, height: keyLabelHeight * 2.0)
|
||||||
let rctCandidatePhrase = NSRect(x: cellPadding / 2 - 1 + keyLabelWidth, y: accuHeight + cellPadding / 2 - 1, width: windowWidth - keyLabelWidth, height: candidateTextHeight)
|
let rctCandidatePhrase = NSRect(x: cellPadding / 2 - 1 + keyLabelWidth, y: accuHeight + cellPadding / 2 - 1, width: windowWidth - keyLabelWidth, height: candidateTextHeight)
|
||||||
|
|
||||||
var activeCandidateIndexAttr = keyLabelAttrDict
|
var activeCandidateIndexAttr = keyLabelAttrDict
|
||||||
|
|
Loading…
Reference in New Issue