KMPDFToolbarManager.swift 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //
  2. // KMPDFToolbarManager.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by Niehaoyu on 2024/10/22.
  6. //
  7. import Foundation
  8. import KMComponentLibrary
  9. class KMPDFToolbarManager: NSObject {
  10. @objc public static let manager = KMPDFToolbarManager()
  11. var toolsType: KMPDFViewToolsType = .Select
  12. var viewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  13. var pageProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  14. var toolsProperty: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, leftIcon: NSImage(named: "toolbar_Tools_select"), showDropdown: true)
  15. var tools_selectProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_select"), keyEquivalent: KMLocalizedString("⌘ 1"), text: KMLocalizedString("Select"))
  16. var tools_scrollProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_scroll"), keyEquivalent: KMLocalizedString("⌘ 2"), text: KMLocalizedString("Scroll"))
  17. var tools_contentProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_content"), keyEquivalent: KMLocalizedString("⌘ 3"), text: KMLocalizedString("Content Selection"))
  18. var tools_magnifyProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_magnify"), keyEquivalent: KMLocalizedString("⌘ 4"), text: KMLocalizedString("Magnify"))
  19. var tools_areaProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_zoom"), keyEquivalent: KMLocalizedString("⌘ 5"), text: KMLocalizedString("Area Zoom"))
  20. var selectZoomProperty: ComponentSelectZoomProperty = ComponentSelectZoomProperty(state: .normal, isDisabled: false, text: "100%", leftIcon_nor: NSImage(named: "toolbar_minus"), leftIcon_dis: NSImage(named: "toolbar_minus_dis"), dropdownIcon: NSImage(named: "toolbar_zoom_dropdown"), rightIcon_nor: NSImage(named: "toolbar_plus"), rightIcon_dis: NSImage(named: "toolbar_plus_dis"))
  21. //Tabs
  22. let markupMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Markup", comment: ""))
  23. let editMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Edit", comment: ""))
  24. let formMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Form", comment: ""))
  25. let fillMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Fill", comment: ""))
  26. let convertMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Convert", comment: ""))
  27. let protectMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Protect", comment: ""))
  28. let toolsMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Tools", comment: ""))
  29. //Right
  30. var undoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  31. var redoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  32. var printProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  33. var shareProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  34. var rightViewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true)
  35. override init() {
  36. super.init()
  37. self.initData()
  38. }
  39. func initData() {
  40. viewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_View")
  41. pageProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_Page")
  42. reloadToolsData()
  43. var menuItemArr: [ComponentMenuitemProperty] = []
  44. if true {
  45. menuItemArr.append(tools_selectProperty)
  46. menuItemArr.append(tools_scrollProperty)
  47. menuItemArr.append(tools_contentProperty)
  48. menuItemArr.append(tools_magnifyProperty)
  49. menuItemArr.append(tools_areaProperty)
  50. toolsProperty.menuItemArr = menuItemArr
  51. }
  52. if true {
  53. var menuItemArr: [ComponentMenuitemProperty] = []
  54. for string in ["Adaptation Width", "Adapt to Page", "Actual Size", " ",
  55. "10%", "25%", "50%", "75%", "100%", "150%", "200%", "400%", "800%"] {
  56. var itemProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, keyEquivalent: nil, text: KMLocalizedString(string, comment: ""))
  57. if string == " " {
  58. itemProperty = ComponentMenuitemProperty.divider()
  59. }
  60. menuItemArr.append(itemProperty)
  61. }
  62. selectZoomProperty.menuItemArr = menuItemArr
  63. }
  64. undoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_undo")
  65. redoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_redo")
  66. printProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_print")
  67. shareProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_share")
  68. rightViewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_rightView")
  69. }
  70. //MARK: - 刷新tools工具
  71. func reloadToolsData() {
  72. if toolsType == .Select {
  73. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_select")
  74. } else if toolsType == .Scroll {
  75. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_scroll")
  76. } else if toolsType == .Content_Selection {
  77. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_content")
  78. } else if toolsType == .Magnify {
  79. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_magnify")
  80. } else if toolsType == .AreaZoom {
  81. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_zoom")
  82. }
  83. }
  84. }