//
//  KMPDFAnnotationTextWidgetSub.swift
//  PDF Reader Pro
//
//  Created by wanjun on 2024/1/31.
//

import Cocoa

class KMPDFAnnotationTextWidgetSub: CPDFTextWidgetAnnotation {
    func transformContext(for page: PDFPage, displayBox box: PDFDisplayBox) {
        var transform = NSAffineTransform()

        // Identity.
        transform = NSAffineTransform()

        // Bounds for page.
        let boxRect = page.bounds(for: box)

        // Handle rotation.
        let rotation = page.rotation
        switch rotation {
        case 90:
            transform.rotate(byDegrees: -90)
            transform.translateX(by: -boxRect.size.width, yBy: 0.0)
        case 180:
            transform.rotate(byDegrees: 180)
            transform.translateX(by: -boxRect.size.width, yBy: -boxRect.size.height)
        case 270:
            transform.rotate(byDegrees: 90)
            transform.translateX(by: 0.0, yBy: -boxRect.size.height)
        default:
            break
        }

        // Origin.
        transform.translateX(by: -boxRect.origin.x, yBy: -boxRect.origin.y)

        // Concatenate.
        transform.concat()
    }

    func keysForValuesToObserveForUndo() -> Set<String> {
        return []
    }
}