// // KMNSearchReplaceTitleBarView.swift // PDF Reader Pro // // Created by User-Tangchao on 2024/12/3. // import Cocoa import KMComponentLibrary class KMNSearchReplaceTitleBarView: BaseXibView { @IBOutlet weak var closeButton: ComponentButton! @IBOutlet weak var switchButton: ComponentButton! @IBOutlet weak var typeTabs: ComponentTabs! var type: KMNBotaSearchType = .search { didSet { self.reloadData() } } private var searchTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: true, title: KMLocalizedString("Search")) private var replaceTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: true, title: KMLocalizedString("Replace")) var itemClick: KMCommonClickBlock? override func setup() { self.updateUI() } func updateUI() { let prop = ComponentButtonProperty() prop.type = .text_gray prop.size = .xxs prop.onlyIcon = true prop.icon = NSImage(named: "KMImageNameSearchReplaceClose") closeButton.properties = prop closeButton.setTarget(self, action: #selector(closeAction)) let switchButtonProperty = ComponentButtonProperty() switchButtonProperty.type = .text_gray switchButtonProperty.size = .xxs switchButtonProperty.onlyIcon = true switchButtonProperty.icon = NSImage(named: "KMImageNameSearchReplaceSwitch") switchButton.properties = switchButtonProperty switchButton.setTarget(self, action: #selector(switchAction)) searchTabProperty.propertyInfo.image_nor = NSImage(named: "KMImageNameSearchReplaceClose") searchTabProperty.propertyInfo.image_active = NSImage(named: "KMImageNameSearchReplaceClose") replaceTabProperty.propertyInfo.image_nor = NSImage(named: "KMImageNameSearchReplaceClose") replaceTabProperty.propertyInfo.image_active = NSImage(named: "KMImageNameSearchReplaceClose") typeTabs.updateItemProperty([searchTabProperty, replaceTabProperty]) typeTabs.delegate = self typeTabs.refreshItems() self.reloadData() } @objc func closeAction() { itemClick?(1) } @objc func switchAction() { itemClick?(2) } func reloadData() { searchTabProperty.state = .normal replaceTabProperty.state = .normal if type == .search { searchTabProperty.state = .pressed } else if type == .replace{ replaceTabProperty.state = .pressed } typeTabs.refreshItems() } } //MARK: action extension KMNSearchReplaceTitleBarView { } extension KMNSearchReplaceTitleBarView: ComponentTabsDelegate { func componentTabsDidSelected(_ view: ComponentTabs, _ property: ComponentTabsProperty) { if property == searchTabProperty { type = .search itemClick?(3) } else if property == replaceTabProperty { type = .replace itemClick?(4) } self.reloadData() } }