// // KMAIIconGuideView.swift // PDF Reader Pro Edition // // Created by Niehaoyu on 2024/3/1. // import Cocoa class KMAIIconGuideView: NSView, NibLoadable { @IBOutlet weak var contendView: NSView! @IBOutlet weak var shadowView: NSView! @IBOutlet weak var infoContendView: NSView! @IBOutlet weak var titleLabel: NSTextField! @IBOutlet weak var subTitleLabel: NSTextField! @IBOutlet weak var finishBox: KMBox! @IBOutlet weak var finishBoxLabel: NSTextField! @IBOutlet weak var finishBoxBtn: KMButton! var clickHandle: ((_ view: KMAIIconGuideView, _ actionType: KMGuideActionType)->Void)? override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) // Drawing code here. } deinit { DistributedNotificationCenter.default.removeObserver(self) } override func awakeFromNib() { super.awakeFromNib() self.infoContendView.wantsLayer = true self.infoContendView.layer?.borderWidth = 2 self.infoContendView.layer?.cornerRadius = 8 self.infoContendView.layer?.masksToBounds = true self.titleLabel.stringValue = NSLocalizedString("Show/Hide AI robot icon", comment: "") self.subTitleLabel.stringValue = NSLocalizedString("Right-click to hide AI robot icon. Show the icon again from the top right corner “My AI Credit”. ", comment: "") self.finishBoxLabel.stringValue = NSLocalizedString("Got it", comment: "") self.finishBox.wantsLayer = true self.finishBox.borderWidth = 1 self.finishBox.cornerRadius = 2 self.finishBoxBtn.mouseMoveCallback = {[weak self] mouseEntered in if KMAppearance.isDarkMode() { if mouseEntered { self?.finishBox.fillColor = NSColor(red: 23/255, green: 85/255, blue: 178/255, alpha: 1) } else { self?.finishBox.fillColor = KMAppearance.KMColor_Interactive_A0() } } else { if mouseEntered { self?.finishBox.fillColor = NSColor(red: 39/255, green: 60/255, blue: 98/255, alpha: 1) } else { self?.finishBox.fillColor = NSColor(red: 56/255, green: 100/255, blue: 176/255, alpha: 1) } } } self.shadowView.wantsLayer = true self.shadowView.layer?.borderWidth = 0 self.shadowView.layer?.shadowColor = NSColor.black.withAlphaComponent(0.55).cgColor self.shadowView.layer?.shadowOpacity = 0.1 self.shadowView.layer?.shadowRadius = 3.0 let shadowPath = NSBezierPath(rect: self.shadowView.bounds) if #available(macOS 14.0, *) { self.shadowView.layer?.shadowPath = shadowPath.PDFListViewCGPath() } DistributedNotificationCenter.default().addObserver(self, selector: #selector(themeChange), name: NSNotification.Name(rawValue: "AppleInterfaceThemeChangedNotification"), object: nil) self.updateViewColor() } func updateViewColor() { if KMAppearance.isDarkMode() { self.infoContendView.layer?.borderColor = NSColor(red: 34/255, green: 122/255, blue: 255/255, alpha: 1).cgColor self.infoContendView.layer?.backgroundColor = NSColor.black.cgColor self.titleLabel.textColor = KMAppearance.KMColor_Layout_W0() self.subTitleLabel.textColor = KMAppearance.KMColor_Layout_H1() self.finishBoxLabel.textColor = NSColor.white self.finishBox.borderColor = NSColor.clear self.finishBox.fillColor = NSColor(red: 73/255, green: 130/255, blue: 230/255, alpha: 1) } else { self.infoContendView.layer?.borderColor = NSColor(red: 73/255, green: 130/255, blue: 230/255, alpha: 1).cgColor self.infoContendView.layer?.backgroundColor = NSColor.white.cgColor self.titleLabel.textColor = KMAppearance.KMColor_Layout_M() self.subTitleLabel.textColor = KMAppearance.KMColor_Layout_H0() self.finishBox.borderColor = NSColor.clear self.finishBox.fillColor = NSColor(red: 73/255, green: 130/255, blue: 230/255, alpha: 1) self.finishBoxLabel.textColor = NSColor.white } } //MARK: IBAction @IBAction func finishBtnAction(_ sender: KMButton) { guard let callBack = self.clickHandle else { return } callBack(self, .getIt) } @objc func themeChange() { DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3) { self.updateViewColor() } } }