KMEditPDFTextPropertyViewController.swift 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. //
  2. // KMEditPDFTextPropertyViewController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by lxy on 2022/12/27.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMEditPDFTextPropertyViewController: NSViewController {
  10. @IBOutlet weak var contentView: NSClipView!
  11. @IBOutlet weak var backgroundView: NSView!
  12. @IBOutlet var fontBGView: NSView!
  13. @IBOutlet var fontLabel: NSTextField!
  14. @IBOutlet var fontTitleSelect: ComponentSelect!
  15. @IBOutlet var fontTitleButton: ComponentButton!
  16. @IBOutlet var fontNameSelect: ComponentSelect!
  17. @IBOutlet var fontStyleSelect: ComponentSelect!
  18. @IBOutlet var fontSizeSelect: ComponentSelect!
  19. @IBOutlet var fontStyleGroup: ComponentCSelectorGroup!
  20. @IBOutlet var fontAlignmentGroup: ComponentCSelectorGroup!
  21. @IBOutlet var colorBGView: NSView!
  22. @IBOutlet var colorLabel: NSTextField!
  23. @IBOutlet var colorGroup: ComponentCColorGroup!
  24. @IBOutlet var colorSlider: ComponentSlider!
  25. @IBOutlet var colorOpacitySelect: ComponentSelect!
  26. private var familyNames = CPDFFont.familyNames
  27. var editingAreas: [CPDFEditTextArea] = []
  28. var currentArea: CPDFEditTextArea?
  29. override func viewDidAppear() {
  30. super.viewDidAppear()
  31. colorSlider.reloadData()
  32. }
  33. override func viewDidLoad() {
  34. super.viewDidLoad()
  35. setupProperty()
  36. }
  37. func setupProperty() {
  38. //Font
  39. fontLabel.stringValue = KMLocalizedString("Font")
  40. fontLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  41. fontLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
  42. fontTitleSelect.properties = ComponentSelectProperties(size: .s,
  43. state: .normal,
  44. text: "")
  45. if true {
  46. var menuItemArr: [ComponentMenuitemProperty] = []
  47. for string in KMEditPDFTextFontTypeWrapper.allValues() {
  48. let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
  49. menuItemArr.append(item)
  50. }
  51. fontTitleSelect.updateMenuItemsArr(menuItemArr)
  52. }
  53. fontTitleButton.properties = ComponentButtonProperty(type: .text_gray, size: .s, onlyIcon: true, icon: NSImage(named: "toolbar_more"))
  54. fontTitleButton.setTarget(self, action: #selector(buttonClicked(_:)))
  55. fontNameSelect.properties = ComponentSelectProperties(size: .s,
  56. state: .normal,
  57. text: "")
  58. if true {
  59. var menuItemArr: [ComponentMenuitemProperty] = []
  60. for string in familyNames {
  61. let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
  62. menuItemArr.append(item)
  63. }
  64. fontNameSelect.updateMenuItemsArr(menuItemArr)
  65. }
  66. fontNameSelect.delegate = self
  67. fontStyleSelect.properties = ComponentSelectProperties(size: .s,
  68. state: .normal,
  69. text: "")
  70. fontStyleSelect.delegate = self
  71. fontSizeSelect.properties = ComponentSelectProperties(size: .s,
  72. state: .normal,
  73. creatable: true,
  74. text: "12 pt",
  75. regexString: "0123456789 pt")
  76. if true {
  77. var sizeItemArr: [ComponentMenuitemProperty] = []
  78. for string in KMHeaderFooterManager.getFontSize() {
  79. let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
  80. sizeItemArr.append(item)
  81. }
  82. fontSizeSelect.updateMenuItemsArr(sizeItemArr)
  83. }
  84. fontSizeSelect.delegate = self
  85. if true {
  86. var itemArr: [ComponentCSelectorProperty] = []
  87. for string in ["fontAlign_left", "fontAlign_center", "fontAlign_right", "fontAlign_justify"] {
  88. let propertyItem: ComponentCSelectorProperty = ComponentCSelectorProperty.init(size: .m, state: .normal, iconImage: NSImage(named: string))
  89. itemArr.append(propertyItem)
  90. }
  91. fontAlignmentGroup.updateItemProperty(itemArr)
  92. }
  93. //Color
  94. colorLabel.stringValue = KMLocalizedString("Font")
  95. colorLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  96. colorLabel.font = ComponentLibrary.shared.getFontFromKey("mac/body-s-medium")
  97. let colorAProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[0])
  98. let colorBProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[1])
  99. let colorCProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[2])
  100. let colorDProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: false, color: KMPDFWatermarkData.watermarkDefaultColors()[3])
  101. let colorEProperty = ComponentCColorProperty(colorType: .color, state: .normal, isCustom: true, color: KMPDFWatermarkData.watermarkDefaultColors()[4])
  102. colorGroup.setUpWithColorPropertys([colorAProperty, colorBProperty, colorCProperty, colorDProperty], customItemProperty: colorEProperty)
  103. colorGroup.delegate = self
  104. colorSlider.properties = ComponentSliderProperty(size: .m, percent: 1)
  105. colorOpacitySelect.properties = ComponentSelectProperties(size: .s,
  106. state: .normal,
  107. creatable: true,
  108. text: "100%",
  109. regexString: "0123456789%")
  110. if true {
  111. var opacityItems: [ComponentMenuitemProperty] = []
  112. for string in ["25%", "50%", "75%", "100%"] {
  113. let item = ComponentMenuitemProperty(type: .normal, text: string)
  114. opacityItems.append(item)
  115. }
  116. colorOpacitySelect.updateMenuItemsArr(opacityItems)
  117. }
  118. colorOpacitySelect.delegate = self
  119. }
  120. func reloadData() {
  121. if editingAreas.count == 0 {
  122. currentArea = nil
  123. } else if editingAreas.count == 1 {
  124. currentArea = editingAreas.first
  125. } else if editingAreas.count == 2 {
  126. currentArea = nil
  127. }
  128. }
  129. //MARK: - Action
  130. @objc func buttonClicked(_ sender: ComponentButton) {
  131. }
  132. }
  133. extension KMEditPDFTextPropertyViewController: ComponentSelectDelegate {
  134. }
  135. extension KMEditPDFTextPropertyViewController: ComponentCColorDelegate {
  136. }