123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- //
- // KMEditPDFTextPropertyViewController.swift
- // PDF Reader Pro
- //
- // Created by lxy on 2022/12/27.
- //
- import Cocoa
- import KMComponentLibrary
-
- class KMEditPDFTextPropertyViewController: NSViewController {
- @IBOutlet weak var contentView: NSClipView!
- @IBOutlet weak var backgroundView: NSView!
-
- @IBOutlet var fontBGView: NSView!
- @IBOutlet var fontLabel: NSTextField!
- @IBOutlet var fontTitleSelect: ComponentSelect!
- @IBOutlet var fontTitleButton: ComponentButton!
- @IBOutlet var fontNameSelect: ComponentSelect!
- @IBOutlet var fontStyleSelect: ComponentSelect!
- @IBOutlet var fontSizeSelect: ComponentSelect!
- @IBOutlet var fontStyleGroup: ComponentCSelectorGroup!
- @IBOutlet var fontAlignmentGroup: ComponentCSelectorGroup!
-
- @IBOutlet var colorBGView: NSView!
- @IBOutlet var colorLabel: NSTextField!
- @IBOutlet var colorGroup: ComponentCColorGroup!
- @IBOutlet var colorSlider: ComponentSlider!
- @IBOutlet var colorOpacitySelect: ComponentSelect!
-
- private var familyNames = CPDFFont.familyNames
-
- var pdfView: CPDFListView? {
- didSet {
- reloadData()
- }
- }
-
- var currentArea: CPDFEditTextArea?
-
-
- override func viewDidAppear() {
- super.viewDidAppear()
-
- colorSlider.reloadData()
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- setupProperty()
- }
-
- func setupProperty() {
-
- //Font
- fontLabel.stringValue = KMLocalizedString("Font")
- fontLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
- fontLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
-
- fontTitleSelect.properties = ComponentSelectProperties(size: .s,
- state: .normal,
- text: "")
- if true {
- var menuItemArr: [ComponentMenuitemProperty] = []
- for string in KMEditPDFTextFontTypeWrapper.allValues() {
- let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
- menuItemArr.append(item)
- }
- fontTitleSelect.updateMenuItemsArr(menuItemArr)
- }
- fontTitleButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "toolbar_more"))
- fontTitleButton.setTarget(self, action: #selector(buttonClicked(_:)))
-
- fontNameSelect.properties = ComponentSelectProperties(size: .s,
- state: .normal,
- text: "")
- if true {
- var menuItemArr: [ComponentMenuitemProperty] = []
- for string in familyNames {
- let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
- menuItemArr.append(item)
- }
- fontNameSelect.updateMenuItemsArr(menuItemArr)
- }
- fontNameSelect.delegate = self
-
- fontStyleSelect.properties = ComponentSelectProperties(size: .s,
- state: .normal,
- text: "")
- fontStyleSelect.delegate = self
-
- fontSizeSelect.properties = ComponentSelectProperties(size: .s,
- state: .normal,
- creatable: true,
- text: "12 pt",
- regexString: "0123456789 pt")
- if true {
- var sizeItemArr: [ComponentMenuitemProperty] = []
- for string in KMHeaderFooterManager.getFontSize() {
- let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
- sizeItemArr.append(item)
- }
- fontSizeSelect.updateMenuItemsArr(sizeItemArr)
- }
- fontSizeSelect.delegate = self
-
-
- if true {
- var itemArr: [ComponentCSelectorProperty] = []
- for string in ["fontAlign_left", "fontAlign_center", "fontAlign_right", "fontAlign_justify"] {
- let propertyItem: ComponentCSelectorProperty = ComponentCSelectorProperty.init(size: .m, state: .normal, iconImage: NSImage(named: string))
- itemArr.append(propertyItem)
- }
- fontAlignmentGroup.updateItemProperty(itemArr)
- }
-
- //Color
- colorLabel.stringValue = KMLocalizedString("Font")
- colorLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
- colorLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
-
- let colorAProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[0])
- let colorBProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[1])
- let colorCProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[2])
- let colorDProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[3])
- let colorEProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: true, color: KMPDFWatermarkData.watermarkDefaultColors()[4])
- colorGroup.setUpWithColorPropertys([colorAProperty, colorBProperty, colorCProperty, colorDProperty], customItemProperty: colorEProperty)
- colorGroup.delegate = self
-
- colorSlider.properties = ComponentSliderProperty(size: .m, percent: 1)
-
- colorOpacitySelect.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)
- }
- colorOpacitySelect.updateMenuItemsArr(opacityItems)
- }
- colorOpacitySelect.delegate = self
- }
-
- 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 KMEditPDFTextPropertyViewController: ComponentSelectDelegate {
-
- }
- extension KMEditPDFTextPropertyViewController: ComponentCColorDelegate {
-
- }
|