// // KMBatchRemoveView.swift // PDF Master // // Created by lizhe on 2023/1/16. // import Cocoa class KMBatchRemoveView: KMBatchSettingItemView { @IBOutlet weak var titleLabel: NSTextField! @IBOutlet weak var securityButton: KMImageTitleButton! @IBOutlet weak var watermarkButton: KMImageTitleButton! @IBOutlet weak var backgroundButton: KMImageTitleButton! @IBOutlet weak var headerAndFoolterButton: KMImageTitleButton! @IBOutlet weak var batesNumberButton: KMImageTitleButton! @IBOutlet weak var removeButton: NSButton! var data = KMBatchRemoveViewModel() override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) // Drawing code here. } override func setup() { super.setup() self.securityButton.title = NSLocalizedString(KMBatchRemoveOptions.language(options: .security), comment: "") self.securityButton.imageName = "btn_checkbox_unsel_on" self.securityButton.action = { [unowned self] (view, button) in if self.data.options.contains(.security) { self.data.options.remove(.security) } else { self.data.options.insert(.security) } self.reloadData() } self.watermarkButton.title = NSLocalizedString(KMBatchRemoveOptions.language(options: .watermark), comment: "") self.watermarkButton.imageName = "btn_checkbox_unsel_on" self.watermarkButton.action = { [unowned self] (view, button) in if self.data.options.contains(.watermark) { self.data.options.remove(.watermark) } else { self.data.options.insert(.watermark) } self.reloadData() } self.backgroundButton.title = NSLocalizedString(KMBatchRemoveOptions.language(options: .background), comment: "") self.backgroundButton.imageName = "btn_checkbox_unsel_on" self.backgroundButton.action = { [unowned self] (view, button) in if self.data.options.contains(.background) { self.data.options.remove(.background) } else { self.data.options.insert(.background) } self.reloadData() } self.headerAndFoolterButton.title = NSLocalizedString(KMBatchRemoveOptions.language(options: .headerAndFooter), comment: "") self.headerAndFoolterButton.imageName = "btn_checkbox_unsel_on" self.headerAndFoolterButton.action = { [unowned self] (view, button) in if self.data.options.contains(.headerAndFooter) { self.data.options.remove(.headerAndFooter) } else { self.data.options.insert(.headerAndFooter) } self.reloadData() } self.batesNumberButton.title = NSLocalizedString(KMBatchRemoveOptions.language(options: .batesNumber), comment: "") self.batesNumberButton.imageName = "btn_checkbox_unsel_on" self.batesNumberButton.action = { [unowned self] (view, button) in if self.data.options.contains(.batesNumber) { self.data.options.remove(.batesNumber) } else { self.data.options.insert(.batesNumber) } self.reloadData() } self.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.titleLabel.stringValue = NSLocalizedString("Settings", comment: "") self.titleLabel.font = NSFont.SFProTextRegularFont(16.0) self.removeButton.wantsLayer = true self.removeButton.layer?.cornerRadius = 4 self.removeButton.contentTintColor = NSColor.km_init(hex: "#FFFFFF") self.removeButton.stringValue = NSLocalizedString("Compress", comment: "") self.removeButton.font = NSFont.SFProTextRegularFont(14.0) self.removeButton.layer?.backgroundColor = NSColor.km_init(hex: "#BDDFFD").cgColor self.securityButton.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.securityButton.titleLabel.font = NSFont.SFProTextRegularFont(14.0) self.watermarkButton.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.watermarkButton.titleLabel.font = NSFont.SFProTextRegularFont(14.0) self.backgroundButton.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.backgroundButton.titleLabel.font = NSFont.SFProTextRegularFont(14.0) self.headerAndFoolterButton.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.headerAndFoolterButton.titleLabel.font = NSFont.SFProTextRegularFont(14.0) self.batesNumberButton.titleLabel.textColor = NSColor.km_init(hex: "#252629") self.batesNumberButton.titleLabel.font = NSFont.SFProTextRegularFont(14.0) } override func reloadData() { if data.options.contains(.security) { self.securityButton.imageName = "btn_checkbox_sel_on" } else { self.securityButton.imageName = "btn_checkbox_unsel_on" } if data.options.contains(.watermark) { self.watermarkButton.imageName = "btn_checkbox_sel_on" } else { self.watermarkButton.imageName = "btn_checkbox_unsel_on" } if data.options.contains(.background) { self.backgroundButton.imageName = "btn_checkbox_sel_on" } else { self.backgroundButton.imageName = "btn_checkbox_unsel_on" } if data.options.contains(.batesNumber) { self.batesNumberButton.imageName = "btn_checkbox_sel_on" } else { self.batesNumberButton.imageName = "btn_checkbox_unsel_on" } if data.options.contains(.headerAndFooter) { self.headerAndFoolterButton.imageName = "btn_checkbox_sel_on" } else { self.headerAndFoolterButton.imageName = "btn_checkbox_unsel_on" } if (self.filesData.count != 0 && self.data.options != .none) { self.removeButton.layer?.backgroundColor = NSColor.km_init(hex: "#1770F4").cgColor self.removeButton.isEnabled = true } else { self.removeButton.layer?.backgroundColor = NSColor.km_init(hex: "#BDDFFD").cgColor self.removeButton.isEnabled = false } } } protocol KMBatchRemoveViewAction: KMBatchRemoveView {} extension KMBatchRemoveView: KMBatchRemoveViewAction { @IBAction func removeButtonAction(_ sender: NSButton) { guard self.data != nil else { return } if self.export != nil { self.export!(self, self.data) } } }