12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- //
- // KMAdvertisementCollectionViewItem.swift
- // KMAdvertisement
- //
- // Created by lizhe on 2022/11/28.
- //
- import Cocoa
- class KMAdvertisementCollectionViewItem: NSCollectionViewItem {
- @IBOutlet weak var iconImageView: NSImageView!
- @IBOutlet weak var titleLabel: NSTextField!
-
- @IBOutlet weak var contentView: NSView!
- var model: KMAdvertisementModelItem! {
- didSet {
- self.reloadData()
- }
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
- self.view.addTrackingRect(self.view.bounds, owner: self, userData: nil, assumeInside: false)
- self.contentView.wantsLayer = true
- self.contentView.layer?.masksToBounds = true
- }
-
- func reloadData() {
- self.titleLabel.stringValue = KMAdvertisementModelTransition.transitionLanguage(langeuage: model?.title?.language)
- self.titleLabel.font = NSFont.init(name: model?.title?.font?.name ?? "AppleSystemUIFont", size: CGFloat(model?.title?.font?.size ?? 13))
- self.contentView.toolTip = KMAdvertisementModelTransition.transitionLanguage(langeuage: model?.tips)
- self.contentView.layer?.cornerRadius = model.title?.background?.layer?.cornerRadius ?? 0
- self.updateColor(false)
- }
-
- func updateColor(_ highlight: Bool) {
-
- if model.title?.color != nil {
- self.titleLabel.textColor = KMAdvertisementModelTransition.transitionColor(color: (model.title?.color), highlight: highlight)
- }
-
- if model.title?.background?.color != nil {
- self.contentView.layer?.backgroundColor = KMAdvertisementModelTransition.transitionColor(color: (model.title?.background?.color)!, highlight: highlight).cgColor
- }
-
- if model.imageURL != nil {
- weak var weakSelf = self
- let url = URL(string: KMAdvertisementModelTransition.transitionImagePath(image: model.imageURL!, highlight: highlight))
- self.iconImageView.image = KMAdvertisementImage.imageWithURL(url: url, completion: { image in
- if weakSelf != nil {
- weakSelf!.iconImageView.image = image
- }
- })
- }
- }
-
- override func mouseEntered(with event: NSEvent) {
- self.updateColor(true)
- }
- override func mouseExited(with event: NSEvent) {
- self.updateColor(false)
- }
- }
|