KMOCRController.swift 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. //
  2. // KMOCRController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by lizhe on 2024/12/19.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. class KMOCRController: NSViewController {
  10. var pdfView: CPDFListView?
  11. @IBOutlet weak var typeTabs: ComponentTabs!
  12. @IBOutlet weak var saveButton: ComponentButton!
  13. @IBOutlet weak var pageView: KMOCRPageView!
  14. @IBOutlet weak var areaView: KMOCRAreaView!
  15. var model: KMOCRModel = KMOCRModel() {
  16. didSet {
  17. self.pageView.model = model;
  18. self.areaView.model = model
  19. }
  20. }
  21. private var fileTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: false, title: KMLocalizedString("Page"))
  22. private var areaTabProperty = ComponentTabsProperty(tabsType: .underline_Fill, state: .normal, showIcon: false, title: KMLocalizedString("Area"))
  23. override func viewDidLoad() {
  24. super.viewDidLoad()
  25. // Do view setup here.
  26. self.model = KMOCRModel()
  27. self.updateUI()
  28. self.reloadData()
  29. }
  30. func updateUI() {
  31. typeTabs.updateItemProperty([fileTabProperty, areaTabProperty])
  32. typeTabs.delegate = self
  33. typeTabs.refreshItems()
  34. saveButton.properties = ComponentButtonProperty(type: .primary, size: .m, buttonText: KMLocalizedString("Apply"), keepPressState: false)
  35. saveButton.setTarget(self, action: #selector(saveButtonClicked(_:)))
  36. self.pageView.changeAction = { [unowned self] view, model in
  37. self.reloadData()
  38. }
  39. }
  40. func reloadData() {
  41. fileTabProperty.state = .normal
  42. areaTabProperty.state = .normal
  43. if model.showType == .page {
  44. pageView.isHidden = false
  45. areaView.isHidden = true
  46. fileTabProperty.state = .pressed
  47. if model.saveAsPDF {
  48. saveButton.properties.buttonText = KMLocalizedString("Save as PDF")
  49. } else {
  50. saveButton.properties.buttonText = KMLocalizedString("Apply")
  51. }
  52. } else {
  53. pageView.isHidden = true
  54. areaView.isHidden = false
  55. areaTabProperty.state = .pressed
  56. saveButton.properties.buttonText = KMLocalizedString("Save as TXT")
  57. }
  58. saveButton.reloadData()
  59. typeTabs.refreshItems()
  60. }
  61. }
  62. //MARK: Action
  63. extension KMOCRController {
  64. @objc func saveButtonClicked(_ sender: ComponentButton) {
  65. }
  66. }
  67. extension KMOCRController: ComponentTabsDelegate {
  68. func componentTabsDidSelected(_ view: ComponentTabs, _ property: ComponentTabsProperty) {
  69. if property == fileTabProperty {
  70. model.showType = .page
  71. } else {
  72. model.showType = .area
  73. }
  74. self.reloadData()
  75. }
  76. }