Browse Source

【UI替换】主页 - 快捷工具点击事件串接

lizhe 1 year ago
parent
commit
6ce38712fd

+ 12 - 0
PDF Office/PDF Master/Class/Home/View/HomeContentView/KMHomeContentView.swift

@@ -9,6 +9,8 @@ import Cocoa
 
 typealias KMHomeContentViewHistoryDidSelect = (_ view: KMHomeContentView, _ url: URL) -> Void
 typealias KMHomeContentViewQucikToolsDidSelect = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
+typealias KMHomeContentViewQucikToolsAddAction = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
+typealias KMHomeContentViewQucikToolsRemoveAction = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
 
 class KMHomeContentView: KMBaseXibView {
     @IBOutlet weak var qucikToolsLabel: NSTextField!
@@ -27,6 +29,8 @@ class KMHomeContentView: KMBaseXibView {
     
     var historyDidSelect: KMHomeContentViewHistoryDidSelect?
     var qucikToolsDidSelect: KMHomeContentViewQucikToolsDidSelect?
+    var qucikToolsAddAction: KMHomeContentViewQucikToolsAddAction?
+    var qucikToolsRemoveAction: KMHomeContentViewQucikToolsRemoveAction?
     
     override func draw(_ dirtyRect: NSRect) {
         super.draw(dirtyRect)
@@ -47,6 +51,14 @@ class KMHomeContentView: KMBaseXibView {
             self.updatePageLabel()
         }
         
+        self.qucikToolsView.addAction = { [unowned self] view, item in
+            self.qucikToolsAddAction?(self, item)
+        }
+        
+        self.qucikToolsView.removeAction = { [unowned self] view, item in
+            self.qucikToolsRemoveAction?(self, item)
+        }
+        
         self.historyListView.didSelect = { [unowned self] view, url in
             guard let callBack = historyDidSelect else { return }
             

+ 11 - 0
PDF Office/PDF Master/Class/Home/View/HomeContentView/QucikTools/KMQucikToolsView.swift

@@ -13,6 +13,8 @@ typealias KMQucikToolsViewPageChange = (_ view: KMQucikToolsView) -> Void
 class KMQucikToolsView: KMBaseXibView {
     @IBOutlet weak var collectionView: NSCollectionView!
     
+    var addAction: KMQucikToolCollectionViewItemAddAction?
+    var removeAction: KMQucikToolCollectionViewItemRemoveAction?
     
     var didSelect: KMQucikToolsViewDidSelect?
     var pageChange: KMQucikToolsViewPageChange?
@@ -107,6 +109,15 @@ extension KMQucikToolsView: NSCollectionViewDataSource {
         if self.data.count > indexPath.item {
             view.model = self.data[indexPath.item]
         }
+        
+        view.addAction = { [unowned self] view, item in
+            self.addAction?(view, item)
+        }
+        
+        view.removeAction = { [unowned self] view, item in
+            self.removeAction?(view, item)
+        }
+        
         return view
     }
 }

+ 9 - 0
PDF Office/PDF Master/Class/Home/View/HomeContentView/QucikTools/Model/KMQucikToolsModel.swift

@@ -48,6 +48,14 @@ class KMQucikToolsModel: NSObject {
         UserDefaults.standard.synchronize()
     }
     
+    func canAdd() -> Bool {
+        let array: [DataNavigationViewButtonActionType] = [.Background, .BatesCode, .Watermark, .HeaderAndFooter, .Security]
+        return array.contains(self.type!)
+    }
+}
+
+//Data
+extension KMQucikToolsModel {
     func titleString() -> String {
         var string = ""
         
@@ -167,6 +175,7 @@ class KMQucikToolsModel: NSObject {
             
         return NSImage(named: string) ?? NSImage()
     }
+
 }
 
 

+ 19 - 1
PDF Office/PDF Master/Class/Home/View/HomeContentView/QucikTools/View/KMQucikToolCollectionViewItem.swift

@@ -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
     }
     
 }

+ 8 - 0
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController.swift

@@ -199,6 +199,14 @@ import Cocoa
         self.homeContentView.qucikToolsDidSelect = { [unowned self] view, item in
             self.fastToolItemAction(item.type!)
         }
+        
+        self.homeContentView.qucikToolsAddAction = { [unowned self] view, item in
+            self.fastToolItemAction(item.type!)
+        }
+        
+        self.homeContentView.qucikToolsRemoveAction = { [unowned self] view, item in
+            self.fastToolItemAction(item.type!)
+        }
     }
     
     // MARK: Init