//
//  CDSignatureDrawViewController.swift
//  PDF Reader Pro Edition
//
//  Created by Niehaoyu on 2023/10/16.
//

import Cocoa

class CDSignatureDrawViewController: NSViewController, CDSDrawViewDelegate {

    
    @IBOutlet weak var drawView: CDSDrawView!
    @IBOutlet weak var cancelButton: NSButton!
    @IBOutlet weak var applyButton: NSButton!
    @IBOutlet weak var clearButton: NSButton!
    
    var drawImage: NSImage!
    
    var actionBlock: ((_ drawVC: CDSignatureDrawViewController, _ drawImage: NSImage)->Void)?
    
    override func viewDidAppear() {
        super.viewDidAppear()
        
        self.view.window?.title = ""
        self.view.window?.styleMask = [self.view.window!.styleMask, .fullSizeContentView]
        self.view.window?.titlebarAppearsTransparent = true
        self.view.window?.backgroundColor = NSColor(red: 252.0/255.0, green: 253.0/255.0, blue: 255.0/255.0, alpha: 1.0)
        
        self.view.window?.standardWindowButton(.closeButton)?.isHidden = true
        self.view.window?.standardWindowButton(.miniaturizeButton)?.isHidden = true
        self.view.window?.standardWindowButton(.zoomButton)?.isHidden = true
        
        self.drawView.clearImage()
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do view setup here.
        
        self.cancelButton.title = NSLocalizedString("Cancel", comment: "")
        self.applyButton.title = NSLocalizedString("Apply", comment: "")
        self.clearButton.title = NSLocalizedString("Clear", comment: "")
        
        
        self.drawView?.wantsLayer = true
        self.drawView?.layer?.borderWidth = 1.0
        self.drawView?.layer?.cornerRadius = 8.0
        self.drawView?.layer?.borderColor = NSColor(red: 165.0/255.0, green: 167.0/255.0, blue: 179.0/255.0, alpha: 1.0).cgColor
        self.drawView?.layer?.backgroundColor = NSColor(red: 1, green: 1, blue: 1, alpha: 1.0).cgColor
        
        self.drawView.delegate = self;
        self.drawView.drawColor = NSColor.black
        self.drawView.strokeRadius = 2.0;
        
        self.drawView.drawImage = self.drawImage
        
        
    }
    
    //MARK: IBAction
    @IBAction func closeAction(_ sender: NSButton) {
        self.dismiss(self)
    }
    
    @IBAction func clearAction(_ sender: NSButton) {
        self.drawView.clearImage()
    }
    
    @IBAction func cancelAction(_ sender: NSButton) {
        self.dismiss(self)
    }
    
    @IBAction func applyAction(_ sender: NSButton) {
        var image = NSImage(size: .zero)
        if self.drawView.signatureImage() != nil {
            image = self.drawView.signatureImage()
        }
        
        guard let callBack = self.actionBlock else {
            return
        }
        callBack(self, image)
        
        self.cancelAction(self.cancelButton)
    }
    
}