KMNSearchReplaceTitleBarView.swift 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //
  2. // KMNSearchReplaceTitleBarView.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by User-Tangchao on 2024/12/3.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMNSearchReplaceTitleBarView: BaseXibView {
  10. @IBOutlet weak var closeButton: ComponentButton!
  11. @IBOutlet weak var switchButton: ComponentButton!
  12. @IBOutlet weak var typeTabs: ComponentTabs!
  13. var type: KMNBotaSearchType = .search {
  14. didSet {
  15. self.reloadData()
  16. }
  17. }
  18. private var searchTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: true, title: KMLocalizedString("Search"))
  19. private var replaceTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: true, title: KMLocalizedString("Replace"))
  20. var itemClick: KMCommonClickBlock?
  21. override func setup() {
  22. self.updateUI()
  23. }
  24. func updateUI() {
  25. let prop = ComponentButtonProperty()
  26. prop.type = .text_gray
  27. prop.size = .xxs
  28. prop.onlyIcon = true
  29. prop.icon = NSImage(named: "KMImageNameSearchReplaceClose")
  30. closeButton.properties = prop
  31. closeButton.setTarget(self, action: #selector(closeAction))
  32. let switchButtonProperty = ComponentButtonProperty()
  33. switchButtonProperty.type = .text_gray
  34. switchButtonProperty.size = .xxs
  35. switchButtonProperty.onlyIcon = true
  36. switchButtonProperty.icon = NSImage(named: "KMImageNameSearchReplaceSwitch")
  37. switchButton.properties = switchButtonProperty
  38. switchButton.setTarget(self, action: #selector(switchAction))
  39. searchTabProperty.propertyInfo.image_nor = NSImage(named: "KMImageNameSearchReplaceClose")
  40. searchTabProperty.propertyInfo.image_active = NSImage(named: "KMImageNameSearchReplaceClose")
  41. replaceTabProperty.propertyInfo.image_nor = NSImage(named: "KMImageNameSearchReplaceClose")
  42. replaceTabProperty.propertyInfo.image_active = NSImage(named: "KMImageNameSearchReplaceClose")
  43. typeTabs.updateItemProperty([searchTabProperty, replaceTabProperty])
  44. typeTabs.delegate = self
  45. typeTabs.refreshItems()
  46. self.reloadData()
  47. }
  48. @objc func closeAction() {
  49. itemClick?(1)
  50. }
  51. @objc func switchAction() {
  52. itemClick?(2)
  53. }
  54. func reloadData() {
  55. searchTabProperty.state = .normal
  56. replaceTabProperty.state = .normal
  57. if type == .search {
  58. searchTabProperty.state = .pressed
  59. } else if type == .replace{
  60. replaceTabProperty.state = .pressed
  61. }
  62. typeTabs.refreshItems()
  63. }
  64. }
  65. //MARK: action
  66. extension KMNSearchReplaceTitleBarView {
  67. }
  68. extension KMNSearchReplaceTitleBarView: ComponentTabsDelegate {
  69. func componentTabsDidSelected(_ view: ComponentTabs, _ property: ComponentTabsProperty) {
  70. if property == searchTabProperty {
  71. type = .search
  72. itemClick?(3)
  73. } else if property == replaceTabProperty {
  74. type = .replace
  75. itemClick?(4)
  76. }
  77. self.reloadData()
  78. }
  79. }