// // KMComparativeTableView.swift // PDF Reader Pro // // Created by lizhe on 2023/2/24. // import Cocoa typealias KMComparativeTableViewCloseAction = (_ view: KMComparativeTableView) -> Void typealias KMComparativeTableViewLoginAction = (_ view: KMComparativeTableView) -> Void typealias KMComparativeTableViewSignUpAction = (_ view: KMComparativeTableView) -> Void typealias KMComparativeTableViewSubscriptionAction = (_ view: KMComparativeTableView) -> Void typealias KMComparativeTableViewRestoreAction = (_ view: KMComparativeTableView) -> Void class KMComparativeTableView: KMBaseXibView { @IBOutlet weak var closeBox: KMBox! @IBOutlet weak var closeButton: NSButton! @IBOutlet weak var signUpButton: NSButton! @IBOutlet weak var loginButton: NSButton! @IBOutlet weak var outlineView: KMComparativeOutlineView! @IBOutlet weak var restoreButton: NSButton! @IBOutlet weak var waterMarkButton: NSButton! var closeAction: KMComparativeTableViewCloseAction? var loginAction: KMComparativeTableViewLoginAction? var signUpAction: KMComparativeTableViewSignUpAction? var subscriptionAction: KMComparativeTableViewSubscriptionAction? var restoreAction: KMComparativeTableViewRestoreAction? override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) // Drawing code here. } override func setup() { super.setup() self.closeBox.moveCallback = { [weak self] (mouseEntered, mouseBox) in if mouseEntered { self?.closeButton.image = NSImage(named: "control_btn_icon_close_hov") } else { self?.closeButton.image = NSImage(named: "control_btn_icon_close") } } } override func updateUI() { super.updateUI() #if VERSION_FREE self.restoreButton.isHidden = false #endif if KMPurchaseManager.manager.state == .subscription { self.waterMarkButton.isHidden = true } self.backgroundColor(NSColor.km_init(hex: "#F2F9FF")) self.loginButton.backgroundColor(NSColor.km_init(hex: "#1770F4")) self.loginButton.border(NSColor.km_init(hex: "#1770F4"), 1, 4) self.loginButton.contentTintColor = NSColor.km_init(hex: "FFFFFF") self.signUpButton.contentTintColor = NSColor.km_init(hex: "#1770F4") } override func reloadData() { super.reloadData() } override func updateLanguage() { super.updateLanguage() self.signUpButton.title = NSLocalizedString("Sign Up", comment: "") self.loginButton.title = NSLocalizedString("Log In", comment: "") } } protocol KMComparativeTableViewAction {} extension KMComparativeTableView: KMComparativeTableViewAction { @IBAction func closeButtonAction(_ sender: Any) { guard let callBack = closeAction else { return } callBack(self) } @IBAction func signUpButtonAction(_ sender: Any) { guard let callBack = signUpAction else { return } callBack(self) } @IBAction func loginButtonAction(_ sender: Any) { guard let callBack = loginAction else { return } callBack(self) } @IBAction func subscriptionButtonAction(_ sender: Any) { guard let callBack = subscriptionAction else { return } callBack(self) } @IBAction func restoreButtonAction(_ sender: Any) { guard let callBack = restoreAction else { return } callBack(self) } @IBAction func waterMarkButtonAction(_ sender: Any) { KMSubscribeWaterMarkWindowController.show(window: self.window ?? NSWindow()) { isSubscribeSuccess, isWaterMark, isClose in } } }