123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- //
- // KMConvertWordSettingView.swift
- // PDF Master
- //
- // Created by tangchao on 2022/12/6.
- //
- import Cocoa
- class KMConvertWordSettingView: KMConvertSettingView, NibLoadable {
- @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!
-
- var ocrEnabled: Bool {
- get {
- return ocrItemView.checkBox.state == .on
- }
- }
- var ocrString: String {
- get {
- return ocrItemView.languageComboBox.stringValue
- }
- }
- // 流排 0 框排 1
- var pageSettingSelectedIndex: Int = 0
-
- static var nibName: String? {
- return "KMConvertBaseWindowController"
- }
-
- static func createFromNib(in bundle: Bundle = Bundle.main) -> Self? {
- guard let nibName = nibName else { return nil }
- var topLevelArray: NSArray? = nil
- bundle.loadNibNamed(NSNib.Name(nibName), owner: nil, topLevelObjects: &topLevelArray)
- guard let results = topLevelArray else { return nil }
- let views = Array<Any>(results).filter { $0 is Self }
- return views.last as? Self
- }
-
- 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()
-
- let ocrItemView = KMConvertOCRSettingItemView.createFromNib()
- ocrItemView?.frame = textOCRBox.contentView!.bounds
- ocrItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
- // textOCRBox.contentView = ocrItemView
- ocrItemView?.languageIndex = ocrLanuguageIndex
- self.ocrItemView = ocrItemView
-
- ocrItemView?.lanugageDidSelected = {
- [unowned self] (index: Int) -> () in
- guard let callback = lanugageDidSelected else {
- return
- }
-
- callback(index)
- }
-
- let pageRangeItemView = KMConvertPageRangeSettingItemView.createFromNib()
- pageRangeItemView?.frame = pageRangeBox.contentView!.bounds
- pageRangeItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
- pageRangeBox.contentView = pageRangeItemView
- pageRangeItemView?.pageCount = self.pageCount
- self.pageRangeItemView = pageRangeItemView
- pageRangeItemView?.isTextDidEndCallback = true
-
- pageRangeItemView?.itemClick = { [unowned self] index, _ in
- pageRangeSelectedIndex = index
-
- guard let callback = self.pageRangeDidChange else {
- return
- }
-
- callback(KMPageRange(rawValue: index)!)
- }
-
- pageRangeItemView?.textDidEndEditingCallback = { [unowned self] textString in
- let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex)
- if (pageRange != .custom) {
- return
- }
- guard let callback = pageRangeDidInputFinishCallback else {
- return
- }
-
- callback(textString)
- }
- }
-
- @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 ""
- }
- }
|