KMNSearchReplaceTitleBarView.swift 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. if KMMemberInfo.shared.isLogin == false {
  75. KMLoginWindowsController.shared.showWindow(nil)
  76. type = .search
  77. self.reloadData()
  78. return
  79. }
  80. type = .replace
  81. itemClick?(4)
  82. }
  83. self.reloadData()
  84. }
  85. }