// // KMConvertWordSettingView.swift // PDF Master // // Created by tangchao on 2022/12/6. // //typealias KMConvertSettingViewLanugageDidSelectedCallback = (_ index: Int) -> () class KMConvertWordSettingView: KMConvertSettingView { @IBOutlet weak var pageSettingTitleLabel: NSTextField! @IBOutlet weak var saveFlowTextRadio: KMImageTitleButton! @IBOutlet weak var savePageLayoutRadio: KMImageTitleButton! @IBOutlet weak var textOCRBox: NSBox! @IBOutlet weak var pageRangeBox: NSBox! // 流排 0 框排 1 var pageSettingSelectedIndex: Int = 0 // var lanugageDidSelected: KMConvertSettingViewLanugageDidSelectedCallback? override init(frame frameRect: NSRect) { super.init(frame: frameRect) } required init?(coder: NSCoder) { super.init(coder: coder) } override func awakeFromNib() { super.awakeFromNib() pageSettingTitleLabel.stringValue = NSLocalizedString("Layout Settings", comment: "") pageSettingTitleLabel.textColor = NSColor(hex: "#616469") pageSettingTitleLabel.font = .SFProTextRegular(12) saveFlowTextRadio.title = NSLocalizedString("Retain Flowing Text", comment: "") saveFlowTextRadio.imageName = "btn_radio_unsel_on" saveFlowTextRadio.action = { [unowned self] view, button in self.saveFlowTextRadioAction(sender: view) } savePageLayoutRadio.title = NSLocalizedString("Retain Page Layout", comment: "") savePageLayoutRadio.titleLabel.textColor = NSColor.buttonTitleColor() savePageLayoutRadio.titleLabel.font = .SFProTextRegular(14) savePageLayoutRadio.imageName = "btn_radio_unsel_on" savePageLayoutRadio.action = { [unowned self] view, button in self.savePageLayoutRadioAction(sender: view) } saveFlowTextRadio.state = .on saveFlowTextRadio.imageName = "btn_radio_sel_on" } override func viewDidMoveToWindow() { super.viewDidMoveToWindow() if (self.ocrItemView == nil) { let view = KMConvertOCRSettingItemView.createFromNib() self.textOCRBox.contentView = view // self.ocrItemView = view view?.lanugageDidSelected = { [unowned self] value, change in guard let callback = self.lanugageDidSelected else { return } callback(value, change) } } self.ocrItemView?.languageIndex = self.ocrLanuguageIndex if (self.pageRangeItemView == nil) { let view = KMConvertPageRangeSettingItemView.createFromNib() self.pageRangeBox.contentView = view // self.pageRangeItemView = view view?.itemClick = { [unowned self] index, _ in self.pageRangeSelectedIndex = index guard let callback = self.pageRangeDidChange else { return } callback(KMPageRange(rawValue: index)!) } view?.textDidEndEditingCallback = { [unowned self] textString in let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex) if (pageRange != .custom) { return } guard let callback = pageRangeDidInputFinishCallback else { return } callback(textString) } } self.pageRangeItemView?.pageCount = self.pageCount self.pageRangeItemView?.isTextDidEndCallback = true } @objc func saveFlowTextRadioAction(sender: AnyObject) { for radio in [saveFlowTextRadio, savePageLayoutRadio] { if ((radio?.isEqual(to: sender))!) { radio?.state = .on radio!.imageName = "btn_radio_sel_on" } else { radio?.state = .off radio!.imageName = "btn_radio_unsel_on" } } pageSettingSelectedIndex = 0 } @objc func savePageLayoutRadioAction(sender: AnyObject) { for radio in [saveFlowTextRadio, savePageLayoutRadio] { if (radio?.isEqual(to: sender))! { radio?.state = .on radio!.imageName = "btn_radio_sel_on" } else { radio?.state = .off radio!.imageName = "btn_radio_unsel_on" } } pageSettingSelectedIndex = 1 } override func getPageRangeString() -> String { if let view = self.pageRangeItemView { return view.pageRangeValue } return "" } }