SettingsCocoa // Lock dimensions for descriptions and titles.

This commit is contained in:
ShikiSuen 2024-02-13 17:58:43 +08:00
parent 820ee5b0f6
commit 903faae51f
8 changed files with 38 additions and 28 deletions

View File

@ -55,7 +55,7 @@ public extension SettingsPanesCocoa {
} }
UserDef.kAlwaysShowTooltipTextsHorizontally.render(fixWidth: contentWidth) UserDef.kAlwaysShowTooltipTextsHorizontally.render(fixWidth: contentWidth)
if Date.isTodayTheDate(from: 0401) { if Date.isTodayTheDate(from: 0401) {
UserDef.kShouldNotFartInLieuOfBeep.render { renderable in UserDef.kShouldNotFartInLieuOfBeep.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.onFartControlChange(_:)) renderable.currentControl?.action = #selector(self.onFartControlChange(_:))
} }
@ -69,14 +69,16 @@ public extension SettingsPanesCocoa {
UserDef.kShareAlphanumericalModeStatusAcrossClients.render(fixWidth: contentWidth) UserDef.kShareAlphanumericalModeStatusAcrossClients.render(fixWidth: contentWidth)
if #available(macOS 10.15, *) { if #available(macOS 10.15, *) {
NSStackView.build(.vertical) { NSStackView.build(.vertical) {
UserDef.kTogglingAlphanumericalModeWithLShift.render { renderable in UserDef.kTogglingAlphanumericalModeWithLShift
renderable.currentControl?.target = self .render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.action = #selector(self.syncShiftKeyUpChecker(_:)) renderable.currentControl?.target = self
} renderable.currentControl?.action = #selector(self.syncShiftKeyUpChecker(_:))
UserDef.kTogglingAlphanumericalModeWithRShift.render { renderable in }
renderable.currentControl?.target = self UserDef.kTogglingAlphanumericalModeWithRShift
renderable.currentControl?.action = #selector(self.syncShiftKeyUpChecker(_:)) .render(fixWidth: contentWidth) { renderable in
} renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.syncShiftKeyUpChecker(_:))
}
var strOSReq = "" var strOSReq = ""
strOSReq += String( strOSReq += String(
format: "This feature requires macOS %@ and above.".localized, arguments: ["10.15"] format: "This feature requires macOS %@ and above.".localized, arguments: ["10.15"]

View File

@ -29,7 +29,7 @@ public extension SettingsPanesCocoa {
NSTabView.TabPage(title: "") { NSTabView.TabPage(title: "") {
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kUseHorizontalCandidateList.render(fixWidth: contentWidth) UserDef.kUseHorizontalCandidateList.render(fixWidth: contentWidth)
UserDef.kCandidateListTextSize.render { renderable in UserDef.kCandidateListTextSize.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.candidateFontSizeDidSet(_:)) renderable.currentControl?.action = #selector(self.candidateFontSizeDidSet(_:))
} }
@ -41,7 +41,7 @@ public extension SettingsPanesCocoa {
} }
NSTabView.TabPage(title: "") { NSTabView.TabPage(title: "") {
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kCandidateKeys.render { renderable in UserDef.kCandidateKeys.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.candidateKeysDidSet(_:)) renderable.currentControl?.action = #selector(self.candidateKeysDidSet(_:))
renderable.currentControl?.alignment = .right renderable.currentControl?.alignment = .right

View File

@ -27,11 +27,11 @@ public extension SettingsPanesCocoa {
var body: NSView? { var body: NSView? {
NSStackView.build(.vertical, insets: .new(all: 14)) { NSStackView.build(.vertical, insets: .new(all: 14)) {
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kCassettePath.render { renderable in UserDef.kCassettePath.render(fixWidth: contentWidth) { renderable in
renderable.currentControl = self.pctCassetteFilePath renderable.currentControl = self.pctCassetteFilePath
renderable.mainViewOverride = self.pathControlMainView renderable.mainViewOverride = self.pathControlMainView
} }
UserDef.kCassetteEnabled.render { renderable in UserDef.kCassetteEnabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.cassetteEnabledToggled(_:)) renderable.currentControl?.action = #selector(self.cassetteEnabledToggled(_:))
} }

View File

@ -27,12 +27,12 @@ public extension SettingsPanesCocoa {
var body: NSView? { var body: NSView? {
NSStackView.build(.vertical, insets: .new(all: 14)) { NSStackView.build(.vertical, insets: .new(all: 14)) {
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kUserDataFolderSpecified.render { renderable in UserDef.kUserDataFolderSpecified.render(fixWidth: contentWidth) { renderable in
renderable.currentControl = self.pctUserDictionaryFolder renderable.currentControl = self.pctUserDictionaryFolder
renderable.mainViewOverride = self.pathControlMainView renderable.mainViewOverride = self.pathControlMainView
} }
NSStackView.build(.vertical) { NSStackView.build(.vertical) {
UserDef.kShouldAutoReloadUserDataFiles.render { renderable in UserDef.kShouldAutoReloadUserDataFiles.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.lmmgrInitUserLMsWhenShould(_:)) renderable.currentControl?.action = #selector(self.lmmgrInitUserLMsWhenShould(_:))
} }
@ -40,20 +40,20 @@ public extension SettingsPanesCocoa {
} }
}?.boxed() }?.boxed()
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kUseExternalFactoryDict.render { renderable in UserDef.kUseExternalFactoryDict.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.lmmgrConnectCoreDB(_:)) renderable.currentControl?.action = #selector(self.lmmgrConnectCoreDB(_:))
} }
UserDef.kFetchSuggestionsFromUserOverrideModel.render(fixWidth: contentWidth) UserDef.kFetchSuggestionsFromUserOverrideModel.render(fixWidth: contentWidth)
UserDef.kCNS11643Enabled.render { renderable in UserDef.kCNS11643Enabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefs(_:)) renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefs(_:))
} }
UserDef.kSymbolInputEnabled.render { renderable in UserDef.kSymbolInputEnabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefs(_:)) renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefs(_:))
} }
UserDef.kPhraseReplacementEnabled.render { renderable in UserDef.kPhraseReplacementEnabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefsWithReplacementTable(_:)) renderable.currentControl?.action = #selector(self.lmmgrSyncLMPrefsWithReplacementTable(_:))
} }

View File

@ -34,7 +34,7 @@ public extension SettingsPanesCocoa {
strNotice += "\n\u{2022} " strNotice += "\n\u{2022} "
strNotice += "Note: The “Delete ⌫” key on Mac keyboard is named as “BackSpace ⌫” here in order to distinguish the real “Delete ⌦” key from full-sized desktop keyboards. If you want to use the real “Delete ⌦” key on a Mac keyboard with no numpad equipped, you have to press “Fn+⌫” instead.".localized strNotice += "Note: The “Delete ⌫” key on Mac keyboard is named as “BackSpace ⌫” here in order to distinguish the real “Delete ⌦” key from full-sized desktop keyboards. If you want to use the real “Delete ⌦” key on a Mac keyboard with no numpad equipped, you have to press “Fn+⌫” instead.".localized
strNotice.makeNSLabel(descriptive: true, fixWidth: contentWidth) strNotice.makeNSLabel(descriptive: true, fixWidth: contentWidth)
UserDef.kAppleLanguages.render { renderable in UserDef.kAppleLanguages.render(fixWidth: contentWidth) { renderable in
renderable.currentControl = self.btnLangSelector renderable.currentControl = self.btnLangSelector
} }
}?.boxed() }?.boxed()

View File

@ -24,11 +24,11 @@ public extension SettingsPanesCocoa {
var body: NSView? { var body: NSView? {
NSStackView.build(.vertical, insets: .new(all: 14)) { NSStackView.build(.vertical, insets: .new(all: 14)) {
NSStackView.buildSection(width: contentWidth) { NSStackView.buildSection(width: contentWidth) {
UserDef.kChineseConversionEnabled.render { renderable in UserDef.kChineseConversionEnabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.sanityCheckKangXi(_:)) renderable.currentControl?.action = #selector(self.sanityCheckKangXi(_:))
} }
UserDef.kShiftJISShinjitaiOutputEnabled.render { renderable in UserDef.kShiftJISShinjitaiOutputEnabled.render(fixWidth: contentWidth) { renderable in
renderable.currentControl?.target = self renderable.currentControl?.target = self
renderable.currentControl?.action = #selector(self.sanityCheckJIS(_:)) renderable.currentControl?.action = #selector(self.sanityCheckJIS(_:))
} }

View File

@ -81,9 +81,10 @@ public extension SettingsPanesCocoa {
txtPEField3.makeSimpleConstraint(.width, relation: .greaterThanOrEqual, value: 90) txtPEField3.makeSimpleConstraint(.width, relation: .greaterThanOrEqual, value: 90)
btnPEAdd btnPEAdd
} }
UserDef.kPhraseEditorAutoReloadExternalModifications.render { renderable in UserDef.kPhraseEditorAutoReloadExternalModifications
renderable.tinySize = true .render(fixWidth: contentWidth) { renderable in
} renderable.tinySize = true
}
} }
}?.boxed() }?.boxed()
NSView().makeSimpleConstraint(.height, relation: .equal, value: NSFont.systemFontSize) NSView().makeSimpleConstraint(.height, relation: .equal, value: NSFont.systemFontSize)

View File

@ -108,6 +108,11 @@ public extension UserDefRenderableCocoa {
textField.font = NSFont.systemFont(ofSize: NSFont.smallSystemFontSize) textField.font = NSFont.systemFont(ofSize: NSFont.smallSystemFontSize)
} }
textField.preferredMaxLayoutWidth = fixedWidth ?? 0 textField.preferredMaxLayoutWidth = fixedWidth ?? 0
if let fixedWidth = fixedWidth {
textField.makeSimpleConstraint(.width, relation: .lessThanOrEqual, value: fixedWidth)
textField.sizeToFit()
textField.makeSimpleConstraint(.height, relation: .lessThanOrEqual, value: textField.fittingSize.height)
}
return textField return textField
} }
@ -130,10 +135,12 @@ public extension UserDefRenderableCocoa {
} }
control control
} }
if let fixedWidth = fixedWidth { if let fixedWidth = fixedWidth, let textLabel = textLabel {
let specifiedWidth = fixedWidth - controlWidth - NSFont.systemFontSize let specifiedWidth = fixedWidth - controlWidth - NSFont.systemFontSize
textLabel?.preferredMaxLayoutWidth = specifiedWidth textLabel.preferredMaxLayoutWidth = specifiedWidth
textLabel?.makeSimpleConstraint(.width, relation: .lessThanOrEqual, value: specifiedWidth) textLabel.makeSimpleConstraint(.width, relation: .lessThanOrEqual, value: specifiedWidth)
textLabel.sizeToFit()
textLabel.makeSimpleConstraint(.height, relation: .lessThanOrEqual, value: textLabel.fittingSize.height)
} }
textLabel?.sizeToFit() textLabel?.sizeToFit()
return result return result