1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //
- // KMUserListItemCellView.swift
- // PDF Reader Pro Edition
- //
- // Created by tangchao on 2024/7/12.
- //
- import Cocoa
- class KMUserListItemCellView: NSTableCellView, NibLoadable {
- @IBOutlet weak var box: NSBox!
- @IBOutlet weak var button: KMCoverButton!
- @IBOutlet weak var fileNameLabel: NSTextField!
- @IBOutlet weak var fileSizeLabel: NSTextField!
-
- var itemClick: ((_ idx: Int)->Void)?
-
- private var area_: NSTrackingArea?
-
- deinit {
- Swift.debugPrint("KMUserListItemCellView deinit.")
-
- if let data = self.area_ {
- self.removeTrackingArea(data)
- }
- }
-
- override func awakeFromNib() {
- super.awakeFromNib()
-
- self.box.borderWidth = 0
-
- self.button.imagePosition = .imageOnly
- self.button.image = NSImage(named: "KMImageNameUserFbDeleteIcon")
-
- self.button.target = self
- self.button.action = #selector(_buttonClick)
- self.button.coverAction = { button, action in
- if action.rawValue == 0 {
- button.image = NSImage(named: "KMImageNameUserFbDeleteHoverIcon")
- } else if action.rawValue == 2 {
- button.image = NSImage(named: "KMImageNameUserFbDeleteIcon")
- }
- }
- }
-
- @objc private func _buttonClick() {
- self.itemClick?(1)
- }
-
- override func updateTrackingAreas() {
- super.updateTrackingAreas()
-
- if let _area = self.area_, _area.rect.isEmpty == false {
- if (_area.rect.equalTo(self.bounds)) {
- return
- }
- }
-
- if let data = self.area_ {
- self.removeTrackingArea(data)
- }
- self.area_ = NSTrackingArea(rect: self.bounds, options: [.mouseEnteredAndExited, .mouseMoved, .activeAlways], owner: self)
- self.addTrackingArea(self.area_!)
- }
-
- override func mouseEntered(with event: NSEvent) {
- self.box.fillColor = NSColor(white: 0, alpha: 0.05)
- }
-
- override func mouseExited(with event: NSEvent) {
- self.box.fillColor = .clear
- }
- }
|