KMDisplayPreferences.swift 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. //
  2. // KMDisplayPreferences.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2023/11/6.
  6. //
  7. import Cocoa
  8. @objcMembers class KMDisplayPreferences: NSViewController {
  9. @IBOutlet var tableFontLabelField: NSTextField!
  10. @IBOutlet var tableFontComboBox: NSComboBox!
  11. @IBOutlet var greekingLabelField: NSTextField!
  12. @IBOutlet var greekingTextField: NSTextField!
  13. @IBOutlet var antiAliasCheckButton: NSButton!
  14. @IBOutlet weak var pagesLabel: NSTextField!
  15. @IBOutlet weak var snapshotLabel: NSTextField!
  16. var thumbnailSizeLabels: [NSTextField] = []
  17. @IBOutlet weak var pagesSlider: NSSlider!
  18. @IBOutlet weak var snapshotSlider: NSSlider!
  19. @IBOutlet weak var discreteSizeCheckbox: NSButton!
  20. var thumbnailSizeControls: [NSControl] = []
  21. @IBOutlet weak var normalColorLabel: NSTextField!
  22. @IBOutlet weak var readingbarColorLabel: NSTextField!
  23. var colorLabels: [NSTextField] = []
  24. @IBOutlet weak var colorControl1: NSColorWell!
  25. @IBOutlet weak var colorControl2: NSTextField!
  26. @IBOutlet weak var colorControl3: NSColorWell!
  27. @IBOutlet weak var colorControl4: NSColorWell!
  28. @IBOutlet weak var colorControl5: NSButton!
  29. var colorControls: [NSControl] = []
  30. /*
  31. - (NSUInteger)countOfSizes;
  32. - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex;
  33. */
  34. let SKDefaultFontSizes: [CGFloat] = [8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 16.0, 18.0, 20.0, 24.0, 28.0, 32.0, 48.0, 64.0]
  35. override var nibName: NSNib.Name? {
  36. return "DisplayPreferences"
  37. }
  38. override func loadView() {
  39. super.loadView()
  40. self.thumbnailSizeLabels = [self.pagesLabel, self.snapshotLabel]
  41. self.thumbnailSizeControls = [self.pagesSlider, self.snapshotSlider, self.discreteSizeCheckbox]
  42. _ = KMAutoSizeLabelFields(self.thumbnailSizeLabels, self.thumbnailSizeControls, false)
  43. self.discreteSizeCheckbox.sizeToFit()
  44. _ = KMAutoSizeLabelFields([self.tableFontLabelField], [self.tableFontComboBox], false)
  45. _ = KMAutoSizeLabelFields([self.greekingLabelField], [self.greekingTextField], false)
  46. self.antiAliasCheckButton.sizeToFit()
  47. self.colorLabels = [self.normalColorLabel, self.readingbarColorLabel]
  48. self.colorControls = [self.colorControl1, self.colorControl2, self.colorControl3, self.colorControl4, self.colorControl5]
  49. _ = KMAutoSizeLabelFields(self.colorLabels, self.colorControls, false)
  50. _ = KMAutoSizeLabelFields([self.colorControl2], [self.colorControl3], false);
  51. self.colorControl5.sizeToFit()
  52. var w = 0.0
  53. for view in self.view.subviews {
  54. if view.autoresizingMask.contains(.width) == false {
  55. var x = NSMaxX(view.frame)
  56. if view.isKind(of: NSSlider.self) || view.isKind(of: NSButton.self) {
  57. x -= 2.0
  58. } else if view.isKind(of: NSComboBox.self) {
  59. x -= 3.0
  60. }
  61. w = fmax(w, x)
  62. }
  63. }
  64. var size = self.view.frame.size
  65. size.width = w + 20.0
  66. self.view.setFrameSize(size)
  67. }
  68. override func viewDidLoad() {
  69. super.viewDidLoad()
  70. // Do view setup here.
  71. self.tableFontComboBox.addItems(withObjectValues: SKDefaultFontSizes)
  72. }
  73. override var title: String? {
  74. set {
  75. super.title = newValue
  76. }
  77. get {
  78. KMLocalizedString("Display", "Preference pane label")
  79. }
  80. }
  81. @IBAction func changeDiscreteThumbnailSizes(_ sender: AnyObject?) {
  82. let slider1 = self.pagesSlider
  83. let slider2 = self.snapshotSlider
  84. let button = sender as? NSButton
  85. if let data = button?.state, data == .on {
  86. slider1?.numberOfTickMarks = 8
  87. slider2?.numberOfTickMarks = 8
  88. slider1?.allowsTickMarkValuesOnly = true
  89. slider2?.allowsTickMarkValuesOnly = true
  90. } else {
  91. slider1?.superview?.setNeedsDisplay(slider1!.frame)
  92. slider2?.superview?.setNeedsDisplay(slider2!.frame)
  93. slider1?.numberOfTickMarks = 0
  94. slider2?.numberOfTickMarks = 0
  95. slider1?.allowsTickMarkValuesOnly = false
  96. slider2?.allowsTickMarkValuesOnly = false
  97. }
  98. slider1?.sizeToFit()
  99. slider2?.sizeToFit()
  100. }
  101. /*
  102. - (NSUInteger)countOfSizes {
  103. return sizeof(SKDefaultFontSizes) / sizeof(CGFloat);
  104. }
  105. - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex {
  106. return [NSNumber numberWithDouble:SKDefaultFontSizes[anIndex]];
  107. }
  108. */
  109. }
  110. extension KMDisplayPreferences: KMPreferencePane {
  111. func defaultsDidRevert() {
  112. }
  113. }