//
//  KMFunctionGuideNameItemView.swift
//  PDF Reader Pro Edition
//
//  Created by Niehaoyu on 2023/12/8.
//

import Cocoa

class KMFunctionGuideNameItemView: NSView, NibLoadable {
    
    @IBOutlet weak var contendView: NSView!
    @IBOutlet weak var iconImg: NSImageView!
    @IBOutlet weak var nameLabel: NSTextField!
    
    var _infoDict = NSDictionary()
    var _isSelected = false
    
    var clickHandle: ((_ view: KMFunctionGuideNameItemView)->Void)?
    
    override func draw(_ dirtyRect: NSRect) {
        super.draw(dirtyRect)

        // Drawing code here.
    }
    
    override func awakeFromNib() {
        super.awakeFromNib()
     
        self.setUp()
    }
    
    func setUp() {
        self.contendView.wantsLayer = true
        self.contendView.layer?.cornerRadius = 4
        self.contendView.layer?.masksToBounds = true
        
        self.nameLabel.font = NSFont.SFProTextSemiboldFont(14)
        self.updateViewColor()
    }
    
    func updateViewColor() {
        if KMAppearance.isDarkMode() {
            self.nameLabel.textColor = NSColor(red: 200/255, green: 201/255, blue: 204/255, alpha: 1)
            self.contendView.layer?.backgroundColor = NSColor.clear.cgColor
            self.iconImg.image = NSImage(named: "whatNewItemNormal")
        } else {
            self.nameLabel.textColor = NSColor(red: 66/255, green: 70/255, blue: 77/255, alpha: 1)
            self.contendView.layer?.backgroundColor =  NSColor.clear.cgColor
            self.iconImg.image = NSImage(named: "whatNewItemNormal")
        }
    }
    
    
    //MARK: Setter
    var infoDict: NSDictionary {
        set {
            _infoDict = newValue
            
            self.nameLabel.stringValue = NSLocalizedString(self.infoDict["name"] as! String, comment: "")
        }
        get {
            return _infoDict
        }
    }
    
    var isSelected: Bool {
        set {
            _isSelected = newValue
            
            self.updateViewColor()
        }
        get {
            return _isSelected
        }
    }
    
    //MARK: IBAction
    @IBAction func clickAction(_ sender: Any) {
        guard let callBack = self.clickHandle else {
            return
        }
        callBack(self)
    }
    
}