12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- //
- // KMBGTemplateItem.swift
- // PDF Reader Pro
- //
- // Created by Niehaoyu on 2024/11/7.
- //
- import Cocoa
- import KMComponentLibrary
- @objc protocol KMBGTemplateItemDelegate: AnyObject {
-
- @objc optional func kmNBGTemplateItemDidEdit(_ view: KMBGTemplateItem)
-
- @objc optional func kmNBGTemplateItemDidDelete(_ view: KMBGTemplateItem)
-
- @objc optional func kmNBGTemplateItemDidUpdateSelectedState(_ view: KMBGTemplateItem)
-
- }
- class KMBGTemplateItem: NSCollectionViewItem {
-
- @IBOutlet var watermarkItem: ComponentCardWatermark!
-
- @IBOutlet var iconImage: NSImageView!
- @IBOutlet var iconImageWidthConst: NSLayoutConstraint!
- @IBOutlet var iconImageHeightConst: NSLayoutConstraint!
-
- var backgroundModel: KMBackgroundModel?
-
- var itemSelected: Bool = false
-
- weak open var delegate: KMBGTemplateItemDelegate?
- var watermarkProperty: ComponentCardWMProperty = ComponentCardWMProperty(state: .normal, icon: nil, text: "Sample Text", editIcon: NSImage(named: "watermark_edit"), deleteIcon: NSImage(named: "pageEdit_delete"))
-
- override func viewDidLoad() {
- super.viewDidLoad()
- // Do view setup here.
-
- watermarkItem.properties = watermarkProperty
- watermarkItem.delegate = self
- // watermarkItem.setTarget(self, action: #selector(itemClicked(_:)))
- }
-
- //Setter
- override var isSelected: Bool {
- get{
- return super.isSelected
- }
- set{
- super.isSelected = newValue
- reloadData()
- }
- }
-
- func reloadData() {
- watermarkItem.properties.icon = backgroundModel?.modelPreviewImage()
- watermarkItem.properties.state = isSelected ? .pressed : .normal
- watermarkItem.properties.text = backgroundModel?.name
- watermarkItem.reloadData()
-
- }
-
- @objc func itemClicked(_ item: ComponentCardWatermark) {
- itemSelected = !itemSelected
-
- reloadData()
-
- delegate?.kmNBGTemplateItemDidUpdateSelectedState?(self)
- }
- }
- //MARK: - ComponentCardWatermarkDelegate
- extension KMBGTemplateItem: ComponentCardWatermarkDelegate {
- func componentSliderDidEdit(_ view: ComponentCardWatermark) {
- delegate?.kmNBGTemplateItemDidEdit?(self)
- }
-
- func componentSliderDidDelete(_ view: ComponentCardWatermark) {
- delegate?.kmNBGTemplateItemDidDelete?(self)
- }
- }
|