|
@@ -7,6 +7,9 @@
|
|
|
|
|
|
import Cocoa
|
|
|
|
|
|
+typealias KMQucikToolCollectionViewItemAddAction = (_ view: KMQucikToolCollectionViewItem, _ item: KMQucikToolsModel) -> Void
|
|
|
+typealias KMQucikToolCollectionViewItemRemoveAction = (_ view: KMQucikToolCollectionViewItem, _ item: KMQucikToolsModel) -> Void
|
|
|
+
|
|
|
class KMQucikToolCollectionViewItem: NSCollectionViewItem {
|
|
|
@IBOutlet weak var contentBox: KMBox!
|
|
|
@IBOutlet weak var iconImageView: NSImageView!
|
|
@@ -23,6 +26,9 @@ class KMQucikToolCollectionViewItem: NSCollectionViewItem {
|
|
|
@IBOutlet weak var tagLabel: NSTextField!
|
|
|
|
|
|
|
|
|
+ var addAction: KMQucikToolCollectionViewItemAddAction?
|
|
|
+ var removeAction: KMQucikToolCollectionViewItemRemoveAction?
|
|
|
+
|
|
|
var model: KMQucikToolsModel? {
|
|
|
didSet {
|
|
|
self.reloadData()
|
|
@@ -41,7 +47,9 @@ class KMQucikToolCollectionViewItem: NSCollectionViewItem {
|
|
|
func setup() {
|
|
|
self.tagView.isHidden = true
|
|
|
|
|
|
+ self.handleView.backgroundColor(KMAppearance.Interactive.a0Color())
|
|
|
self.handleView.isHidden = true
|
|
|
+
|
|
|
self.addBox.borderColor = KMAppearance.Layout.w70Color()
|
|
|
self.addBox.borderWidth = 1.0
|
|
|
|
|
@@ -101,14 +109,18 @@ class KMQucikToolCollectionViewItem: NSCollectionViewItem {
|
|
|
self.titleLabel.stringValue = model.titleString()
|
|
|
self.subTitleLabel.stringValue = model.subTitleString()
|
|
|
self.iconImageView.image = model.iconImage()
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@IBAction func removeButtonAction(_ sender: Any) {
|
|
|
+ guard let callBack = removeAction else { return }
|
|
|
|
|
|
+ callBack(self, model!)
|
|
|
}
|
|
|
+
|
|
|
@IBAction func addButtonAction(_ sender: Any) {
|
|
|
+ guard let callBack = addAction else { return }
|
|
|
|
|
|
+ callBack(self, model!)
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -116,10 +128,16 @@ class KMQucikToolCollectionViewItem: NSCollectionViewItem {
|
|
|
extension KMQucikToolCollectionViewItem {
|
|
|
override func mouseEntered(with event: NSEvent) {
|
|
|
self.view.backgroundColor(NSColor.green)
|
|
|
+
|
|
|
+
|
|
|
+ guard let model = self.model else { return }
|
|
|
+ self.handleView.isHidden = !model.canAdd()
|
|
|
}
|
|
|
|
|
|
override func mouseExited(with event: NSEvent) {
|
|
|
self.view.backgroundColor(NSColor.red)
|
|
|
+
|
|
|
+ self.handleView.isHidden = true
|
|
|
}
|
|
|
|
|
|
}
|