KMPDFToolbarController.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. //
  2. // KMPDFToolbarController.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by Niehaoyu on 2024/10/8.
  6. //
  7. import Cocoa
  8. import KMComponentLibrary
  9. @objc protocol KMPDFToolbarControllerDelegate: AnyObject {
  10. @objc optional func kmPDFToolbarControllerDidClicked(_ controller: KMPDFToolbarController)
  11. }
  12. class KMPDFToolbarController: NSViewController {
  13. @IBOutlet var viewButton: ComponentButton!
  14. @IBOutlet var pageButton: ComponentButton!
  15. @IBOutlet var toolsView: ComponentDropdownTool!
  16. @IBOutlet var dividerView: ComponentDivider!
  17. @IBOutlet var selectZoom: ComponentSelectZoom!
  18. @IBOutlet var tabsView: ComponentTabs!
  19. override func viewDidLoad() {
  20. super.viewDidLoad()
  21. // Do view setup here.
  22. self.setUpProperty()
  23. }
  24. func setUpProperty() {
  25. viewButton.properties = KMPDFToolbarManager.manager.viewProperty
  26. pageButton.properties = KMPDFToolbarManager.manager.pageProperty
  27. dividerView.properties = ComponentDividerProperty(type: .vertical, dash: false)
  28. toolsView.properties = KMPDFToolbarManager.manager.toolsProperty
  29. toolsView.delegate = self
  30. selectZoom.properties = KMPDFToolbarManager.manager.selectZoomProperty
  31. selectZoom.delegate = self
  32. tabsView.updateItemProperty([KMPDFToolbarManager.manager.markupMode_Property, KMPDFToolbarManager.manager.editMode_Property,
  33. KMPDFToolbarManager.manager.formMode_Property, KMPDFToolbarManager.manager.fillMode_Property,
  34. KMPDFToolbarManager.manager.convertMode_Property, KMPDFToolbarManager.manager.protectMode_Property,
  35. KMPDFToolbarManager.manager.toolsMode_Property])
  36. tabsView.delegate = self
  37. }
  38. func reloadData() {
  39. reloadToolsData()
  40. }
  41. // 刷新tools工具
  42. func reloadToolsData() {
  43. KMPDFToolbarManager.manager.reloadToolsData()
  44. toolsView.reloadData()
  45. }
  46. }
  47. //MARK: - ComponentDropdownToolDelegate
  48. extension KMPDFToolbarController: ComponentDropdownToolDelegate {
  49. func componentDropdownToolDidClicked(_ view: ComponentDropdownTool, menuItem: ComponentMenuitemProperty?) {
  50. for item in KMPDFToolbarManager.manager.toolsProperty.menuItemArr ?? [] {
  51. item.itemSelected = false
  52. item.state = .normal
  53. }
  54. menuItem?.itemSelected = true
  55. if menuItem == KMPDFToolbarManager.manager.tools_selectProperty {
  56. KMPDFToolbarManager.manager.toolsType = .Select
  57. } else if menuItem == KMPDFToolbarManager.manager.tools_scrollProperty {
  58. KMPDFToolbarManager.manager.toolsType = .Scroll
  59. } else if menuItem == KMPDFToolbarManager.manager.tools_contentProperty {
  60. KMPDFToolbarManager.manager.toolsType = .Content_Selection
  61. } else if menuItem == KMPDFToolbarManager.manager.tools_magnifyProperty {
  62. KMPDFToolbarManager.manager.toolsType = .Magnify
  63. } else if menuItem == KMPDFToolbarManager.manager.tools_areaProperty {
  64. KMPDFToolbarManager.manager.toolsType = .AreaZoom
  65. }
  66. reloadToolsData()
  67. }
  68. }
  69. //MARK: - ComponentSelectZoomDelegate
  70. extension KMPDFToolbarController: ComponentSelectZoomDelegate {
  71. func componentSelectZoomDidReduce(view: ComponentSelectZoom) {
  72. }
  73. func componentSelectZoomDidSelect(view: ComponentSelectZoom?, menuItemProperty: ComponentMenuitemProperty?) {
  74. }
  75. func componentSelectZoomDidAdd(view: ComponentSelectZoom) {
  76. }
  77. }
  78. //MARK: - ComponentTabsDelegate
  79. extension KMPDFToolbarController: ComponentTabsDelegate {
  80. }