KMDisplayPreferences.swift 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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. override var nibName: NSNib.Name? {
  35. return "DisplayPreferences"
  36. }
  37. override func loadView() {
  38. super.loadView()
  39. self.thumbnailSizeLabels = [self.pagesLabel, self.snapshotLabel]
  40. self.thumbnailSizeControls = [self.pagesSlider, self.snapshotSlider, self.discreteSizeCheckbox]
  41. _ = KMAutoSizeLabelFields(self.thumbnailSizeLabels, self.thumbnailSizeControls, false)
  42. self.discreteSizeCheckbox.sizeToFit()
  43. _ = KMAutoSizeLabelFields([self.tableFontLabelField], [self.tableFontComboBox], false)
  44. _ = KMAutoSizeLabelFields([self.greekingLabelField], [self.greekingTextField], false)
  45. self.antiAliasCheckButton.sizeToFit()
  46. self.colorLabels = [self.normalColorLabel, self.readingbarColorLabel]
  47. self.colorControls = [self.colorControl1, self.colorControl2, self.colorControl3, self.colorControl4, self.colorControl5]
  48. _ = KMAutoSizeLabelFields(self.colorLabels, self.colorControls, false)
  49. _ = KMAutoSizeLabelFields([self.colorControl2], [self.colorControl3], false);
  50. self.colorControl5.sizeToFit()
  51. var w = 0.0
  52. for view in self.view.subviews {
  53. if view.autoresizingMask.contains(.width) == false {
  54. var x = NSMaxX(view.frame)
  55. if view.isKind(of: NSSlider.self) || view.isKind(of: NSButton.self) {
  56. x -= 2.0
  57. } else if view.isKind(of: NSComboBox.self) {
  58. x -= 3.0
  59. }
  60. w = fmax(w, x)
  61. }
  62. }
  63. var size = self.view.frame.size
  64. size.width = w + 20.0
  65. self.view.setFrameSize(size)
  66. }
  67. override func viewDidLoad() {
  68. super.viewDidLoad()
  69. // Do view setup here.
  70. }
  71. override var title: String? {
  72. set {
  73. super.title = newValue
  74. }
  75. get {
  76. KMLocalizedString("Display", "Preference pane label")
  77. }
  78. }
  79. @IBAction func changeDiscreteThumbnailSizes(_ sender: AnyObject?) {
  80. let slider1 = self.pagesSlider
  81. let slider2 = self.snapshotSlider
  82. let button = sender as? NSButton
  83. if let data = button?.state, data == .on {
  84. slider1?.numberOfTickMarks = 8
  85. slider2?.numberOfTickMarks = 8
  86. slider1?.allowsTickMarkValuesOnly = true
  87. slider2?.allowsTickMarkValuesOnly = true
  88. } else {
  89. slider1?.superview?.setNeedsDisplay(slider1!.frame)
  90. slider2?.superview?.setNeedsDisplay(slider2!.frame)
  91. slider1?.numberOfTickMarks = 0
  92. slider2?.numberOfTickMarks = 0
  93. slider1?.allowsTickMarkValuesOnly = false
  94. slider2?.allowsTickMarkValuesOnly = false
  95. }
  96. slider1?.sizeToFit()
  97. slider2?.sizeToFit()
  98. }
  99. /*
  100. static CGFloat SKDefaultFontSizes[] = {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};
  101. #pragma mark Accessors
  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. }