//
//  KMThumbnail.swift
//  PDF Reader Pro
//
//  Created by tangchao on 2023/11/16.
//

import Cocoa

let thumbnailMethodKey = "KMThumbnailMethodKey"
let outlineMethodKey = "KMOutlineMethoddKey"
let bookMarkMethodKey = "KMBookMarkMethodKey"
let anntationMethodKey = "KMAnntationMethodKey"
let searchMethodKey = "KMSearchMethodKey"
let formMethodKey = "KMFormMethodKey"
let signatureMethodKey = "KMSignatureMethodKey"
let snapshotMethodKey = "KMSnapshotMethodKey"

@objc protocol KMThumbnailDelegate: NSObjectProtocol {
    @objc optional func generateImage(for thumbnail: KMThumbnail) -> Bool
}

class KMThumbnail: NSObject {
    weak var delegate: KMThumbnailDelegate?
    var dirty = false
    private var _image: NSImage?
    var image: NSImage? {
        get {
            if let data = self.delegate?.generateImage?(for: self), data && self.dirty {
                self.dirty = false
            }
            return self._image
        }
        set {
            self._image = newValue
        }
    }
    private var _label: String = ""
    var label: String {
        get {
            return self._label
        }
    }
    private var _pageIndex: Int = 0
    var pageIndex: Int {
        get {
            return self._pageIndex
        }
    }
    var size: NSSize {
        get {
            return self.image?.size ?? .zero
        }
    }
    var thumiii: NSImageView?
    
    convenience init(image: NSImage?, label: String, pageIndex: Int) {
        self.init()
        
        self.image = image
        self._label = label
        self._pageIndex = pageIndex
        self.dirty = false
    }
}