// // KMDisplayPreferences.swift // PDF Master // // Created by tangchao on 2023/11/6. // import Cocoa @objcMembers class KMDisplayPreferences: NSViewController { @IBOutlet var tableFontLabelField: NSTextField! @IBOutlet var tableFontComboBox: NSComboBox! @IBOutlet var greekingLabelField: NSTextField! @IBOutlet var greekingTextField: NSTextField! @IBOutlet var antiAliasCheckButton: NSButton! @IBOutlet weak var pagesLabel: NSTextField! @IBOutlet weak var snapshotLabel: NSTextField! var thumbnailSizeLabels: [NSTextField] = [] @IBOutlet weak var pagesSlider: NSSlider! @IBOutlet weak var snapshotSlider: NSSlider! @IBOutlet weak var discreteSizeCheckbox: NSButton! var thumbnailSizeControls: [NSControl] = [] @IBOutlet weak var normalColorLabel: NSTextField! @IBOutlet weak var readingbarColorLabel: NSTextField! var colorLabels: [NSTextField] = [] @IBOutlet weak var colorControl1: NSColorWell! @IBOutlet weak var colorControl2: NSTextField! @IBOutlet weak var colorControl3: NSColorWell! @IBOutlet weak var colorControl4: NSColorWell! @IBOutlet weak var colorControl5: NSButton! var colorControls: [NSControl] = [] /* - (NSUInteger)countOfSizes; - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex; */ override var nibName: NSNib.Name? { return "DisplayPreferences" } override func loadView() { super.loadView() self.thumbnailSizeLabels = [self.pagesLabel, self.snapshotLabel] self.thumbnailSizeControls = [self.pagesSlider, self.snapshotSlider, self.discreteSizeCheckbox] _ = KMAutoSizeLabelFields(self.thumbnailSizeLabels, self.thumbnailSizeControls, false) self.discreteSizeCheckbox.sizeToFit() _ = KMAutoSizeLabelFields([self.tableFontLabelField], [self.tableFontComboBox], false) _ = KMAutoSizeLabelFields([self.greekingLabelField], [self.greekingTextField], false) self.antiAliasCheckButton.sizeToFit() self.colorLabels = [self.normalColorLabel, self.readingbarColorLabel] self.colorControls = [self.colorControl1, self.colorControl2, self.colorControl3, self.colorControl4, self.colorControl5] _ = KMAutoSizeLabelFields(self.colorLabels, self.colorControls, false) _ = KMAutoSizeLabelFields([self.colorControl2], [self.colorControl3], false); self.colorControl5.sizeToFit() var w = 0.0 for view in self.view.subviews { if view.autoresizingMask.contains(.width) == false { var x = NSMaxX(view.frame) if view.isKind(of: NSSlider.self) || view.isKind(of: NSButton.self) { x -= 2.0 } else if view.isKind(of: NSComboBox.self) { x -= 3.0 } w = fmax(w, x) } } var size = self.view.frame.size size.width = w + 20.0 self.view.setFrameSize(size) } override func viewDidLoad() { super.viewDidLoad() // Do view setup here. } override var title: String? { set { super.title = newValue } get { KMLocalizedString("Display", "Preference pane label") } } @IBAction func changeDiscreteThumbnailSizes(_ sender: AnyObject?) { let slider1 = self.pagesSlider let slider2 = self.snapshotSlider let button = sender as? NSButton if let data = button?.state, data == .on { slider1?.numberOfTickMarks = 8 slider2?.numberOfTickMarks = 8 slider1?.allowsTickMarkValuesOnly = true slider2?.allowsTickMarkValuesOnly = true } else { slider1?.superview?.setNeedsDisplay(slider1!.frame) slider2?.superview?.setNeedsDisplay(slider2!.frame) slider1?.numberOfTickMarks = 0 slider2?.numberOfTickMarks = 0 slider1?.allowsTickMarkValuesOnly = false slider2?.allowsTickMarkValuesOnly = false } slider1?.sizeToFit() slider2?.sizeToFit() } /* 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}; #pragma mark Accessors - (NSUInteger)countOfSizes { return sizeof(SKDefaultFontSizes) / sizeof(CGFloat); } - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex { return [NSNumber numberWithDouble:SKDefaultFontSizes[anIndex]]; } */ } extension KMDisplayPreferences: KMPreferencePane { }