//
//  NSWindow+PopOver.swift
//  PDF Reader Pro
//
//  Created by kdanmobile on 2023/10/26.
//

import Foundation

//var KMWindowPopOverKey = "KMWindowPopOverKey"
//var KMWindowPopOverSourcesRectKey = "KMWindowPopOverSourcesRectKey"
//extension NSWindow {
//    var popover: NSPopover? {
//        get {
//            return objc_getAssociatedObject(self, &KMWindowPopOverKey) as? NSPopover
//        }
//        set {
//            objc_setAssociatedObject(self, &KMWindowPopOverKey, newValue, .OBJC_ASSOCIATION_RETAIN)
//        }
//    }
//    
//    var sourcesRect: CGRect? {
//        get {
//            guard let value = objc_getAssociatedObject(self, &KMWindowPopOverSourcesRectKey) as? NSValue else {
//                return nil
//            }
//            return value.rectValue
//        }
//        set {
//            if let newValue = newValue {
//                let value = NSValue(rect: newValue)
//                objc_setAssociatedObject(self, &KMWindowPopOverSourcesRectKey, value, .OBJC_ASSOCIATION_RETAIN)
//            } else {
//                objc_setAssociatedObject(self, &KMWindowPopOverSourcesRectKey, nil, .OBJC_ASSOCIATION_RETAIN)
//            }
//        }
//    }
//    
//    open override func mouseMoved(with event: NSEvent)  {
//        super.mouseMoved(with: event)
//        let point = event.locationInWindow
//        if NSStringFromClass(event.window!.classForCoder).elementsEqual("_NSPopoverWindow") == false {
//            if let data = sourcesRect?.contains(point), data == false {
//                if (self.popover != nil) {
//                    NotificationCenter.default.post(name: NSNotification.Name("KMPopOverClosedByWindowNotification"), object: self.popover)
//                    popover!.close()
//                    self.popover = nil
//                    self.sourcesRect = CGRect.null
//                }
//            }
//        }
//    }
//}