// // KMEditImageController.swift // PDF Reader Pro // // Created by Niehaoyu on 2024/11/14. // import Cocoa import KMComponentLibrary class KMEditImageController: NSViewController { @IBOutlet var scrollView: NSScrollView! @IBOutlet var contendView: NSView! @IBOutlet var sizeBGView: NSView! @IBOutlet var sizeLabel: NSTextField! @IBOutlet var sizeSyncButton: ComponentButton! @IBOutlet var rotateBGView: NSView! @IBOutlet var rotateLabel: NSTextField! @IBOutlet var rotateSelect: ComponentSelect! @IBOutlet var rotateLeftButton: ComponentButton! @IBOutlet var rotateRightButton: ComponentButton! @IBOutlet var flipVerticalButton: ComponentButton! @IBOutlet var flipHorizontalButton: ComponentButton! @IBOutlet var opacityBGView: NSView! @IBOutlet var opacityLabel: NSTextField! @IBOutlet var opacitySlider: ComponentSlider! @IBOutlet var opacitySelect: ComponentSelect! @IBOutlet var cropButton: ComponentButton! @IBOutlet var replaceButton: ComponentButton! @IBOutlet var ExtrackButton: ComponentButton! var pdfView: CPDFListView? { didSet { reloadData() } } var currentArea: CPDFEditTextArea? //MARK: - func override func viewDidAppear() { super.viewDidAppear() opacitySlider.reloadData() } override func viewDidLoad() { super.viewDidLoad() setupProperty() } func setupProperty() { //Font sizeLabel.stringValue = KMLocalizedString("Size") sizeLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2") sizeLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium") //Rotate rotateLabel.stringValue = KMLocalizedString("Rotate & Flip") rotateLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2") rotateLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium") rotateSelect.properties = ComponentSelectProperties(size: .s, state: .normal, creatable: true, text: "100%", regexString: "0123456789%") if true { var opacityItems: [ComponentMenuitemProperty] = [] for string in ["25%", "50%", "75%", "100%"] { let item = ComponentMenuitemProperty(type: .normal, text: string) opacityItems.append(item) } rotateSelect.updateMenuItemsArr(opacityItems) } rotateSelect.delegate = self rotateLeftButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateLeft"), keepPressState: false) rotateLeftButton.setTarget(self, action: #selector(buttonClicked(_:))) rotateRightButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateRight"), keepPressState: false) rotateRightButton.setTarget(self, action: #selector(buttonClicked(_:))) flipVerticalButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "flipVertical"), keepPressState: false) flipVerticalButton.setTarget(self, action: #selector(buttonClicked(_:))) flipHorizontalButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "flipHorizontal"), keepPressState: false) flipHorizontalButton.setTarget(self, action: #selector(buttonClicked(_:))) //Opacity opacityLabel.stringValue = KMLocalizedString("Opacity") opacityLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2") opacityLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium") opacitySlider.properties = ComponentSliderProperty(size: .m, percent: 1) opacitySelect.properties = ComponentSelectProperties(size: .s, state: .normal, creatable: true, text: "100%", regexString: "0123456789%") if true { var opacityItems: [ComponentMenuitemProperty] = [] for string in ["25%", "50%", "75%", "100%"] { let item = ComponentMenuitemProperty(type: .normal, text: string) opacityItems.append(item) } opacitySelect.updateMenuItemsArr(opacityItems) } opacitySelect.delegate = self cropButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Crop"), keepPressState: false) replaceButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Replace"), keepPressState: false) ExtrackButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Extract"), keepPressState: false) } func reloadData() { let areas = pdfView?.km_editingTextAreas() ?? [] if areas.count == 0 { currentArea = nil } else if areas.count == 1 { currentArea = areas.first } else if areas.count == 2 { currentArea = nil } if let area = currentArea { let fontName = pdfView?.km_editTextAreasFontNames([area]) let fontStyle = pdfView?.km_editTextAreasFontStyles([area]) let fontSize = pdfView?.km_editTextAreasFontSizes([area]) let bold = pdfView?.km_editTextAreasFontBolds([area]) let itality = pdfView?.km_editTextAreasFontItalics([area]) let alignment = pdfView?.km_editTextAreasTextAlignments([area]) let colors = pdfView?.km_editTextAreasFontColors([area]) let opacity = pdfView?.km_editAreasOpacitys([area]) print("1") } } //MARK: - Action @objc func buttonClicked(_ sender: ComponentButton) { } } extension KMEditImageController: ComponentSelectDelegate { } extension KMEditImageController: ComponentCColorDelegate { }