KMNSearchReplaceItemView.swift 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. //
  2. // KMNSearchReplaceItemView.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by User-Tangchao on 2024/12/2.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMNSearchReplacePopItemView: KMNSearchReplaceItemView {
  10. override func initSubviews() {
  11. addSubview(input)
  12. addSubview(replaceAllButton)
  13. addSubview(replaceButton)
  14. input.km_add_leading_constraint(constant: 12)
  15. input.km_add_top_constraint(constant: 0)
  16. input.km_add_trailing_constraint(constant: -12)
  17. input.km_add_height_constraint(constant: 32)
  18. replaceButton.km_add_height_constraint(constant: 32)
  19. replaceButton.km_add_trailing_constraint(constant: -12)
  20. replaceButton.km_add_bottom_constraint()
  21. replaceButton.km_add_width_constraint(constant: replaceButton.properties.propertyInfo.viewWidth)
  22. replaceAllButton.km_add_height_constraint(constant: 32)
  23. replaceAllButton.km_add_trailing_constraint(equalTo: replaceButton, attribute: .leading, constant: -8)
  24. replaceAllButton.km_add_bottom_constraint()
  25. replaceAllButton.km_add_width_constraint(constant: replaceAllButton.properties.propertyInfo.viewWidth)
  26. }
  27. }
  28. class KMNSearchReplaceItemView: NSView {
  29. private lazy var input_: ComponentInput = {
  30. let view = ComponentInput()
  31. let prop = ComponentInputProperty()
  32. prop.size = .s
  33. prop.showPrefix = true
  34. prop.placeholder = KMLocalizedString("Replace with...")
  35. // KMImagenameBotaSearchInputPrefiex
  36. view.properties = prop
  37. return view
  38. }()
  39. private lazy var replaceAllButton_: ComponentButton = {
  40. let view = ComponentButton()
  41. let prop = ComponentButtonProperty()
  42. prop.type = .default_tertiary
  43. prop.size = .xxs
  44. prop.buttonText = KMLocalizedString("Replace All")
  45. view.properties = prop
  46. return view
  47. }()
  48. private lazy var replaceButton_: ComponentButton = {
  49. let view = ComponentButton()
  50. let prop = ComponentButtonProperty()
  51. prop.type = .primary
  52. prop.size = .xxs
  53. prop.buttonText = KMLocalizedString("Replace")
  54. view.properties = prop
  55. return view
  56. }()
  57. var input: ComponentInput {
  58. get {
  59. return input_
  60. }
  61. }
  62. var replaceAllButton: ComponentButton {
  63. get {
  64. return replaceAllButton_
  65. }
  66. }
  67. var replaceButton: ComponentButton {
  68. get {
  69. return replaceButton_
  70. }
  71. }
  72. var inputValue: String {
  73. get {
  74. return input.properties.text
  75. }
  76. set {
  77. input.properties.text = newValue
  78. input.reloadData()
  79. }
  80. }
  81. convenience init() {
  82. self.init(frame: .init(x: 0, y: 0, width: 300, height: 60))
  83. initSubviews()
  84. }
  85. override func awakeFromNib() {
  86. super.awakeFromNib()
  87. initSubviews()
  88. }
  89. func initSubviews() {
  90. addSubview(input_)
  91. addSubview(replaceAllButton_)
  92. addSubview(replaceButton_)
  93. input_.km_add_leading_constraint(constant: 12)
  94. input_.km_add_top_constraint(constant: 8)
  95. input_.km_add_trailing_constraint(constant: -12)
  96. input_.km_add_height_constraint(constant: 32)
  97. replaceButton_.km_add_height_constraint(constant: 24)
  98. replaceButton_.km_add_trailing_constraint(constant: -12)
  99. replaceButton_.km_add_bottom_constraint()
  100. replaceButton_.km_add_width_constraint(constant: replaceButton_.properties.propertyInfo.viewWidth)
  101. replaceAllButton_.km_add_height_constraint(constant: 24)
  102. replaceAllButton_.km_add_trailing_constraint(equalTo: replaceButton_, attribute: .leading, constant: -8)
  103. replaceAllButton_.km_add_bottom_constraint()
  104. replaceAllButton_.km_add_width_constraint(constant: replaceAllButton_.properties.propertyInfo.viewWidth)
  105. }
  106. }