mirror of
https://github.com/leonboe1/QuickDrop.git
synced 2026-11-11 02:51:11 +00:00
51 lines
1.5 KiB
Swift
51 lines
1.5 KiB
Swift
//
|
|
// DeviceListCell.swift
|
|
// ShareExtension
|
|
//
|
|
// Created by Grishka on 20.09.2023.
|
|
//
|
|
|
|
import Cocoa
|
|
|
|
class DeviceListCell: NSCollectionViewItem {
|
|
public var clickHandler: (() -> Void)?
|
|
@IBOutlet private var peerMarkerView: NSImageView?
|
|
|
|
override func viewDidLoad() {
|
|
super.viewDidLoad()
|
|
let btn: NSButton = view as! NSButton
|
|
btn.isEnabled = true
|
|
btn.setButtonType(.momentaryPushIn)
|
|
btn.action = #selector(onClick)
|
|
btn.target = self
|
|
|
|
addClickRecognizer(to: view)
|
|
addClickRecognizer(to: textField)
|
|
addClickRecognizer(to: imageView)
|
|
addClickRecognizer(to: peerMarkerView)
|
|
|
|
peerMarkerView?.image = NSImage(named: "MenuBarIcon")
|
|
peerMarkerView?.image?.isTemplate = true
|
|
peerMarkerView?.contentTintColor = .white
|
|
}
|
|
|
|
@IBAction func onClick(_: Any?) {
|
|
guard let handler = clickHandler else { return }
|
|
handler()
|
|
}
|
|
|
|
func configure(deviceName: String, deviceImage: NSImage, showsQuickDropPeerMarker: Bool) {
|
|
textField?.stringValue = deviceName
|
|
imageView?.image = deviceImage
|
|
peerMarkerView?.isHidden = !showsQuickDropPeerMarker
|
|
}
|
|
|
|
private func addClickRecognizer(to targetView: NSView?) {
|
|
guard let targetView else { return }
|
|
|
|
let recognizer = NSClickGestureRecognizer(target: self, action: #selector(onClick(_:)))
|
|
recognizer.buttonMask = 0x1
|
|
targetView.addGestureRecognizer(recognizer)
|
|
}
|
|
}
|