KMEditImageController.swift 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. //
  2. // KMEditImageController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by Niehaoyu on 2024/11/14.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMEditImageController: NSViewController {
  10. @IBOutlet var scrollView: NSScrollView!
  11. @IBOutlet var contendView: NSView!
  12. @IBOutlet var sizeBGView: NSView!
  13. @IBOutlet var sizeLabel: NSTextField!
  14. @IBOutlet var sizeSyncButton: ComponentButton!
  15. @IBOutlet var rotateBGView: NSView!
  16. @IBOutlet var rotateLabel: NSTextField!
  17. @IBOutlet var rotateSelect: ComponentSelect!
  18. @IBOutlet var rotateLeftButton: ComponentButton!
  19. @IBOutlet var rotateRightButton: ComponentButton!
  20. @IBOutlet var flipVerticalButton: ComponentButton!
  21. @IBOutlet var flipHorizontalButton: ComponentButton!
  22. @IBOutlet var opacityBGView: NSView!
  23. @IBOutlet var opacityLabel: NSTextField!
  24. @IBOutlet var opacitySlider: ComponentSlider!
  25. @IBOutlet var opacitySelect: ComponentSelect!
  26. @IBOutlet var cropButton: ComponentButton!
  27. @IBOutlet var replaceButton: ComponentButton!
  28. @IBOutlet var ExtrackButton: ComponentButton!
  29. var pdfView: CPDFListView? {
  30. didSet {
  31. reloadData()
  32. }
  33. }
  34. var currentArea: CPDFEditTextArea?
  35. //MARK: - func
  36. override func viewDidAppear() {
  37. super.viewDidAppear()
  38. opacitySlider.reloadData()
  39. }
  40. override func viewDidLoad() {
  41. super.viewDidLoad()
  42. setupProperty()
  43. }
  44. func setupProperty() {
  45. //Font
  46. sizeLabel.stringValue = KMLocalizedString("Size")
  47. sizeLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  48. sizeLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
  49. //Rotate
  50. rotateLabel.stringValue = KMLocalizedString("Rotate & Flip")
  51. rotateLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  52. rotateLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
  53. rotateSelect.properties = ComponentSelectProperties(size: .s,
  54. state: .normal,
  55. creatable: true,
  56. text: "100%",
  57. regexString: "0123456789%")
  58. if true {
  59. var opacityItems: [ComponentMenuitemProperty] = []
  60. for string in ["25%", "50%", "75%", "100%"] {
  61. let item = ComponentMenuitemProperty(type: .normal, text: string)
  62. opacityItems.append(item)
  63. }
  64. rotateSelect.updateMenuItemsArr(opacityItems)
  65. }
  66. rotateSelect.delegate = self
  67. rotateLeftButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateLeft"), keepPressState: false)
  68. rotateLeftButton.setTarget(self, action: #selector(buttonClicked(_:)))
  69. rotateRightButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateRight"), keepPressState: false)
  70. rotateRightButton.setTarget(self, action: #selector(buttonClicked(_:)))
  71. flipVerticalButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "flipVertical"), keepPressState: false)
  72. flipVerticalButton.setTarget(self, action: #selector(buttonClicked(_:)))
  73. flipHorizontalButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "flipHorizontal"), keepPressState: false)
  74. flipHorizontalButton.setTarget(self, action: #selector(buttonClicked(_:)))
  75. //Opacity
  76. opacityLabel.stringValue = KMLocalizedString("Opacity")
  77. opacityLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  78. opacityLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
  79. opacitySlider.properties = ComponentSliderProperty(size: .m, percent: 1)
  80. opacitySelect.properties = ComponentSelectProperties(size: .s,
  81. state: .normal,
  82. creatable: true,
  83. text: "100%",
  84. regexString: "0123456789%")
  85. if true {
  86. var opacityItems: [ComponentMenuitemProperty] = []
  87. for string in ["25%", "50%", "75%", "100%"] {
  88. let item = ComponentMenuitemProperty(type: .normal, text: string)
  89. opacityItems.append(item)
  90. }
  91. opacitySelect.updateMenuItemsArr(opacityItems)
  92. }
  93. opacitySelect.delegate = self
  94. cropButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Crop"), keepPressState: false)
  95. replaceButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Replace"), keepPressState: false)
  96. ExtrackButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .s, buttonText: KMLocalizedString("Extract"), keepPressState: false)
  97. }
  98. func reloadData() {
  99. let areas = pdfView?.km_editingTextAreas() ?? []
  100. if areas.count == 0 {
  101. currentArea = nil
  102. } else if areas.count == 1 {
  103. currentArea = areas.first
  104. } else if areas.count == 2 {
  105. currentArea = nil
  106. }
  107. if let area = currentArea {
  108. let fontName = pdfView?.km_editTextAreasFontNames([area])
  109. let fontStyle = pdfView?.km_editTextAreasFontStyles([area])
  110. let fontSize = pdfView?.km_editTextAreasFontSizes([area])
  111. let bold = pdfView?.km_editTextAreasFontBolds([area])
  112. let itality = pdfView?.km_editTextAreasFontItalics([area])
  113. let alignment = pdfView?.km_editTextAreasTextAlignments([area])
  114. let colors = pdfView?.km_editTextAreasFontColors([area])
  115. let opacity = pdfView?.km_editAreasOpacitys([area])
  116. print("1")
  117. }
  118. }
  119. //MARK: - Action
  120. @objc func buttonClicked(_ sender: ComponentButton) {
  121. }
  122. }
  123. extension KMEditImageController: ComponentSelectDelegate {
  124. }
  125. extension KMEditImageController: ComponentCColorDelegate {
  126. }