//
//  KMPropertiesViewPopController.swift
//  PDF Reader Pro
//
//  Created by lizhe on 2023/10/12.
//

import Cocoa

@objcMembers class KMPropertiesViewPopController: NSViewController {
    @IBOutlet var titleLabel: NSTextField!
    @IBOutlet var titlesubLabel: NSTextField!
    @IBOutlet var closeBtn: NSButton!

    var guideInfoWindowController: KMGuideInfoWindowController?
    
    var popOver: NSPopover?
    var block: (() -> Void)?

//    class func defaultManager() -> KMPropertiesViewPopController {
//        let singleton = KMPropertiesViewPopController()
//        return singleton
//    }
    static let defaultManager = KMPropertiesViewPopController()

    class func showChangeColorDetails() -> Bool {
//        let isOpenConvertDetails = UserDefaults.standard.bool(forKey: "KMPropertiesHaveChangeColorDetails")
//        if !isOpenConvertDetails {
            return true
//        }
//        return false
    }

    func showChangeColorDetailsView(_ view: NSView) {
        DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
            if KMGuideInfoWindowController.availableShow(.customColor) {
                self.guideInfoWindowController = KMGuideInfoWindowController.currentWC()
                guard let guideWC = self.guideInfoWindowController else { return }
                
                guideWC.type = .customColor
                guideWC.digitalBoxRect = view.superview?.convert(view.frame, to: view.window?.contentView) ?? .zero
                var beh = view.window?.collectionBehavior ?? []
                beh.insert(.canJoinAllSpaces)
                guideWC.window?.collectionBehavior = beh
                
                var rect = view.window?.frame ?? .zero
                rect.size.height -= 20
                guideWC.window?.setFrame(rect, display: false)
                guideWC.window?.minSize = rect.size
                guideWC.window?.maxSize = rect.size
                view.window?.addChildWindow(guideWC.window!, ordered: .above)
                guideWC.show()
            }
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        view.wantsLayer = true
        view.layer?.backgroundColor = NSColor.gray.cgColor

        titleLabel.stringValue = NSLocalizedString("Customize colors", comment: "")
        titlesubLabel.stringValue = NSLocalizedString("Right click a color and select \"Change Color...\".", comment: "")
        closeBtn.title = NSLocalizedString("Close", comment: "")
        closeBtn.wantsLayer = true
        closeBtn.layer?.cornerRadius = 1.0
        closeBtn.layer?.backgroundColor = NSColor.gray.cgColor
        closeBtn.contentTintColor = NSColor.white
    }

    @IBAction func buttonItemClick_Close(_ sender: Any) {
        block?()
        block = nil
    }
}