// // 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! /* @interface SKDisplayPreferences : NSViewController { NSArray *thumbnailSizeLabels; NSArray *thumbnailSizeControls; NSArray *colorLabels; NSArray *colorControls; } @property (nonatomic, retain) IBOutlet NSArray *thumbnailSizeLabels, *thumbnailSizeControls, *colorLabels, *colorControls; - (NSUInteger)countOfSizes; - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex; - (IBAction)changeDiscreteThumbnailSizes:(id)sender; */ override var nibName: NSNib.Name? { return "DisplayPreferences" } override func loadView() { super.loadView() // SKAutoSizeLabelFields(thumbnailSizeLabels, thumbnailSizeControls, NO); // [[thumbnailSizeControls lastObject] sizeToFit]; // SKAutoSizeLabelField(tableFontLabelField, tableFontComboBox, NO); // SKAutoSizeLabelField(greekingLabelField, greekingTextField, NO); antiAliasCheckButton.sizeToFit() // SKAutoSizeLabelFields(colorLabels, colorControls, NO); // SKAutoSizeLabelField([colorControls objectAtIndex:1], [colorControls objectAtIndex:2], NO); // [[colorControls lastObject] sizeToFit]; var w = 0.0 for view in self.view.subviews { if view.autoresizingMask.contains(.width) == false { // if (([view autoresizingMask] & NSViewWidthSizable) == 0) { var x = NSMaxX(view.frame) if view.isKind(of: NSSlider.self) || view.isKind(of: NSButton.self) { // if ([view isKindOfClass:[NSSlider class]] || [view isKindOfClass:[NSButton class]]) x -= 2.0 } else if view.isKind(of: NSComboBox.self) { // else if ([view isKindOfClass:[NSComboBox class]]) 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") } } /* 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}; @implementation SKDisplayPreferences @synthesize tableFontLabelField, tableFontComboBox, greekingLabelField, greekingTextField, antiAliasCheckButton, thumbnailSizeLabels, thumbnailSizeControls, colorLabels, colorControls; - (void)dealloc { // SKDESTROY(tableFontLabelField); // SKDESTROY(tableFontComboBox); // SKDESTROY(greekingLabelField); // SKDESTROY(greekingTextField); // SKDESTROY(antiAliasCheckButton); // SKDESTROY(thumbnailSizeLabels); // SKDESTROY(thumbnailSizeControls); // SKDESTROY(colorLabels); // SKDESTROY(colorControls); // [super dealloc]; } #pragma mark Accessors - (NSUInteger)countOfSizes { return sizeof(SKDefaultFontSizes) / sizeof(CGFloat); } - (NSNumber *)objectInSizesAtIndex:(NSUInteger)anIndex { return [NSNumber numberWithDouble:SKDefaultFontSizes[anIndex]]; } #pragma mark Actions - (IBAction)changeDiscreteThumbnailSizes:(id)sender { NSSlider *slider1 = [thumbnailSizeControls objectAtIndex:0]; NSSlider *slider2 = [thumbnailSizeControls objectAtIndex:1]; if ([(NSButton *)sender state] == NSOnState) { [slider1 setNumberOfTickMarks:8]; [slider2 setNumberOfTickMarks:8]; [slider1 setAllowsTickMarkValuesOnly:YES]; [slider2 setAllowsTickMarkValuesOnly:YES]; } else { [[slider1 superview] setNeedsDisplayInRect:[slider1 frame]]; [[slider2 superview] setNeedsDisplayInRect:[slider2 frame]]; [slider1 setNumberOfTickMarks:0]; [slider2 setNumberOfTickMarks:0]; [slider1 setAllowsTickMarkValuesOnly:NO]; [slider2 setAllowsTickMarkValuesOnly:NO]; } [slider1 sizeToFit]; [slider2 sizeToFit]; } */ }