KMPDFToolbarManager.swift 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  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. let dividerProperty = ComponentDividerProperty(type: .vertical, dash: false)
  12. //MARK: -View
  13. var viewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, identifier: KMPDFToolbar_ViewDisplay_Identifier)
  14. //MARK: -页面编辑
  15. var pageProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, identifier: KMPDFToolbar_PageEdit_Identifier)
  16. var page_Insert_Property: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Insert"), leftIcon: NSImage(named: "pageEdit_insert"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  17. var page_Insert_File_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("Insert File"), identifier: KMPDFToolbar_PageEdit_InsertFile_Identifier)
  18. var page_Insert_Blank_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("Insert Blank File"), identifier: KMPDFToolbar_PageEdit_InsertBlank_Identifier)
  19. var page_Insert_Clip_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("From Clipboard"), identifier: KMPDFToolbar_PageEdit_InsertClip_Identifier)
  20. var page_Insert_Scanner_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("From Scanner"), identifier: KMPDFToolbar_PageEdit_InsertScanner_Identifier)
  21. var page_Extract_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Extract"), icon: NSImage(named: "pageEdit_extract"), identifier: KMPDFToolbar_PageEdit_Extract_Identifier)
  22. var page_Replace_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Replace"), icon: NSImage(named: "pageEdit_replace"), identifier: KMPDFToolbar_PageEdit_Replace_Identifier)
  23. var page_Split_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Split"),icon: NSImage(named: "pageEdit_split"), identifier: KMPDFToolbar_PageEdit_Split_Identifier)
  24. var page_Reverse_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Reverse"), icon: NSImage(named: "pageEdit_reverse"), identifier: KMPDFToolbar_PageEdit_Reverse_Identifier)
  25. var page_LeftRotate_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateLeft"), identifier: KMPDFToolbar_PageEdit_LeftRotate_Identifier)
  26. var page_RightRotate_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateRight"), identifier: KMPDFToolbar_PageEdit_RightRotate_Identifier)
  27. var page_Delete_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_delete"), identifier: KMPDFToolbar_PageEdit_Delete_Identifier)
  28. var page_Reduce_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_zoomout"), identifier: KMPDFToolbar_PageEdit_Reduce_Identifier)
  29. var page_Increase_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_zoomin"), identifier: KMPDFToolbar_PageEdit_Increase_Identifier)
  30. //MARK: -ToosView
  31. var toolsProperty: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, leftIcon: NSImage(named: "toolbar_Tools_select"), showDropdown: true)
  32. var tools_selectProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_select"), keyEquivalent: KMLocalizedString("⌘ 1"), text: KMLocalizedString("Select"), identifier: KMPDFToolbar_View_Select_Identifier)
  33. var tools_scrollProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_scroll"), keyEquivalent: KMLocalizedString("⌘ 2"), text: KMLocalizedString("Scroll"), identifier: KMPDFToolbar_View_Scroll_Identifier)
  34. var tools_contentProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_content"), keyEquivalent: KMLocalizedString("⌘ 3"), text: KMLocalizedString("Content Selection"), identifier: KMPDFToolbar_View_ContentSelection_Identifier)
  35. var tools_magnifyProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_magnify"), keyEquivalent: KMLocalizedString("⌘ 4"), text: KMLocalizedString("Magnify"), identifier: KMPDFToolbar_View_Magnify_Identifier)
  36. var tools_areaProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "toolbar_Tools_zoom"), keyEquivalent: KMLocalizedString("⌘ 5"), text: KMLocalizedString("Area Zoom"), identifier: KMPDFToolbar_View_AreaZoom_Identifier)
  37. //MARK: -缩放比例
  38. 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"))
  39. //MARK: -工具栏
  40. let markupMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Markup", comment: ""), identifier: KMPDFToolbar_Markup_Identifier)
  41. let editMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Edit", comment: ""), identifier: KMPDFToolbar_Edit_Identifier)
  42. let formMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Form", comment: ""), identifier: KMPDFToolbar_Form_Identifier)
  43. let fillMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Fill", comment: ""), identifier: KMPDFToolbar_Fill_Identifier)
  44. let convertMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Convert", comment: ""), identifier: KMPDFToolbar_Convert_Identifier)
  45. let protectMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Protect", comment: ""), identifier: KMPDFToolbar_Protect_Identifier)
  46. let toolsMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Tools", comment: ""), identifier: KMPDFToolbar_Tools_Identifier)
  47. //MARK: -右侧模块
  48. var undoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_undo"), keepPressState: false, identifier: KMPDFToolbar_undo_Identifier)
  49. var redoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_redo"), keepPressState: false,identifier: KMPDFToolbar_redo_Identifier)
  50. var saveProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_save"), keepPressState: false,identifier: KMPDFToolbar_save_Identifier)
  51. var aiToolsProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_ai"), keepPressState: false,identifier: KMPDFToolbar_aiTools_Identifier)
  52. var batchProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_batch"), keepPressState: false,identifier: KMPDFToolbar_batch_Identifier)
  53. var ttsProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_TTS"), keepPressState: false,identifier: KMPDFToolbar_tts_Identifier)
  54. var pptProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_ppt"), keepPressState: false,identifier: KMPDFToolbar_ppt_Identifier)
  55. var printProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_print"), keepPressState: false, identifier: KMPDFToolbar_print_Identifier)
  56. var shareProperty: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, leftIcon: NSImage(named: "toolbar_share"))
  57. var share_PDF_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("PDF"), identifier: KMPDFToolbar_share_PDF_Identifier)
  58. var share_Flatted_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("Flattened Copy"), identifier: KMPDFToolbar_share_Flattened_Identifier)
  59. var share_Original_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("Original PDF"), identifier: KMPDFToolbar_share_Original_Identifier)
  60. var rightViewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_rightView"), identifier: KMPDFToolbar_rightView_Identifier)
  61. //MARK: -Markup
  62. let highlightProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkup_HighlightImage(), identifier: KMPDFToolbar_highlight_Identifier)
  63. let UnderlineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupUnderlineImage(), identifier: KMPDFToolbar_underline_Identifier)
  64. let wavelineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupwavylineImage(), identifier: KMPDFToolbar_waveline_Identifier)
  65. let strikethroughProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupStrikethroughImage(), identifier: KMPDFToolbar_strikethrough_Identifier)
  66. let textProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_text"), identifier: KMPDFToolbar_text_Identifier)
  67. let noteProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupNoteImage(), identifier: KMPDFToolbar_note_Identifier)
  68. let penProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupPenImage(), identifier: KMPDFToolbar_pen_Identifier)
  69. let eraserProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_erase"), identifier: KMPDFToolbar_eraser_Identifier)
  70. let rectangleProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_rectangle"), identifier: KMPDFToolbar_rectangle_Identifier)
  71. let circleProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_oval"), identifier: KMPDFToolbar_circle_Identifier)
  72. let arrowProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_arrow"), identifier: KMPDFToolbar_arrow_Identifier)
  73. let lineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_line"), identifier: KMPDFToolbar_line_Identifier)
  74. let stampProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_stamp"), identifier: KMPDFToolbar_stamp_Identifier)
  75. let signProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_sign"), identifier: KMPDFToolbar_sign_Identifier)
  76. let eyeProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_show"), identifier: KMPDFToolbar_eye_Identifier)
  77. //MARK: -Edit
  78. let edit_text_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Text"), icon: NSImage(named: "markup_text"), identifier: KMPDFToolbar_edit_text_Identifier)
  79. let edit_image_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Image"), icon: NSImage(named: "edit_image"), identifier: KMPDFToolbar_edit_image_Identifier)
  80. let edit_link_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Link"), icon: NSImage(named: "edit_link"), identifier: KMPDFToolbar_edit_link_Identifier)
  81. let edit_crop_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Crop"), icon: NSImage(named: "edit_crop"), identifier: KMPDFToolbar_edit_crop_Identifier)
  82. let edit_watermark_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Watermark"), leftIcon: NSImage(named: "edit_watermark"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  83. let edit_background_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Background"), leftIcon: NSImage(named: "edit_background"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  84. let edit_headerfooter_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Header & Footer"), leftIcon: NSImage(named: "edit_headerfooter"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  85. let edit_bates_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Bates"), leftIcon: NSImage(named: "edit_bates"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  86. //MARK: -Form
  87. let form_text_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Text Field"), icon: NSImage(named: "form_text"), identifier: KMPDFToolbar_form_text_Identifier)
  88. let form_checkbox_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Check Box"), icon: NSImage(named: "form_checkbox"), identifier: KMPDFToolbar_form_checkbox_Identifier)
  89. let form_radio_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Radio"), icon: NSImage(named: "form_radio"), identifier: KMPDFToolbar_form_radio_Identifier)
  90. let form_list_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("List"), icon: NSImage(named: "form_listbox"), identifier: KMPDFToolbar_form_list_Identifier)
  91. let form_dropdown_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Dropdown"), icon: NSImage(named: "form_dropdown"), identifier: KMPDFToolbar_form_dropdown_Identifier)
  92. let form_OK_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Button"), icon: NSImage(named: "form_OK"), identifier: KMPDFToolbar_form_OK_Identifier)
  93. let form_digitalSign_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Digital Signature"), icon: NSImage(named: "form_digitalSign"), identifier: KMPDFToolbar_form_digitalSign_Identifier)
  94. let form_alignment_Property = ComponentDropdownToolProperty(state: .normal, text: nil, leftIcon: NSImage(named: "form_alignment"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  95. let form_more_Property = ComponentDropdownToolProperty(state: .normal, text: nil, leftIcon: NSImage(named: "form_more"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  96. //MARK: -Fill
  97. let fill_tick_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_tick"), identifier: KMPDFToolbar_fill_tick_Identifier)
  98. let fill_fork_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_fork"), identifier: KMPDFToolbar_fill_fork_Identifier)
  99. let fill_rectangle_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_rectangle"), identifier: KMPDFToolbar_fill_rectangle_Identifier)
  100. let fill_line_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_line"), identifier: KMPDFToolbar_fill_line_Identifier)
  101. let fill_dot_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_dot"), identifier: KMPDFToolbar_fill_dot_Identifier)
  102. let fill_date_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_date"), identifier: KMPDFToolbar_fill_date_Identifier)
  103. let fill_sign_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_sign"), identifier: KMPDFToolbar_fill_sign_Identifier)
  104. //MARK: -Convert
  105. let convert_word_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("To Word"), icon: NSImage(named: "convert_word"), identifier: KMPDFToolbar_convert_word_Identifier)
  106. let convert_excel_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("To Excel"), icon: NSImage(named: "convert_excel"), identifier: KMPDFToolbar_convert_excel_Identifier)
  107. let convert_ppt_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("To PPT"), icon: NSImage(named: "convert_ppt"), identifier: KMPDFToolbar_convert_ppt_Identifier)
  108. let convert_image_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("To Image"), icon: NSImage(named: "convert_image"), identifier: KMPDFToolbar_convert_image_Identifier)
  109. let convert_others_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("To Others"), leftIcon: NSImage(named: "form_more"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  110. let convert_imageToPDF_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Image to PDF"), icon: NSImage(named: "convert_imageToPdf"), identifier: KMPDFToolbar_convert_imageToPDF_Identifier)
  111. let convert_ocr_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("OCR"), icon: NSImage(named: "convert_ocr"), identifier: KMPDFToolbar_convert_ocr_Identifier)
  112. var convert_RTF_property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "convert_rtf"), keyEquivalent: nil, text: KMLocalizedString("To RTF"), identifier: KMPDFToolbar_convert_RTF_Identifier)
  113. var convert_CSV_property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "convert_csv"), keyEquivalent: nil, text: KMLocalizedString("To CSV"), identifier: KMPDFToolbar_convert_CSV_Identifier)
  114. var convert_HTML_property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "convert_html"), keyEquivalent: nil, text: KMLocalizedString("To HTML"), identifier: KMPDFToolbar_convert_HTML_Identifier)
  115. var convert_Text_property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "convert_text"), keyEquivalent: nil, text: KMLocalizedString("To Text"), identifier: KMPDFToolbar_convert_Text_Identifier)
  116. var convert_Json_property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, lefticon: NSImage(named: "convert_json"), keyEquivalent: nil, text: KMLocalizedString("To Json"), identifier: KMPDFToolbar_convert_Json_Identifier)
  117. //MARK: -Protect
  118. let protect_redact_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Redact"), icon: NSImage(named: "protect_redact"), identifier: KMPDFToolbar_protect_redact_Identifier)
  119. let protect_security_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Security"), icon: NSImage(named: "protect_security"), identifier: KMPDFToolbar_protect_security_Identifier)
  120. let protect_removeSecurity_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Remove Security"), icon: NSImage(named: "protect_security"), identifier: KMPDFToolbar_protect_removeSecurity_Identifier)
  121. let protect_digitalSign_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Digital Signature"), icon: NSImage(named: "form_digitalSign"), identifier: KMPDFToolbar_protect_digitalSign_Identifier)
  122. //MARK: -Tools
  123. let tools_OCR_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("OCR"), icon: NSImage(named: "tools_OCR"), identifier: KMPDFToolbar_tools_OCR_Identifier)
  124. let tools_merge_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Merge"), icon: NSImage(named: "tools_merge"), identifier: KMPDFToolbar_tools_merge_Identifier)
  125. let tools_compress_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Compress"), icon: NSImage(named: "tools_compress"), identifier: KMPDFToolbar_tools_compress_Identifier)
  126. let tools_compare_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("compare"), leftIcon: NSImage(named: "tools_compare"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill"))
  127. let tools_extractImage_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Extract Image"), icon: NSImage(named: "tools_extractImg"), identifier: KMPDFToolbar_tools_extractImage_Identifier)
  128. let tools_TTS_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("TTS"), icon: NSImage(named: "tools_TTS"), identifier: KMPDFToolbar_tools_TTS_Identifier)
  129. let tools_batch_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("Batch"), icon: NSImage(named: "tools_batch"), identifier: KMPDFToolbar_tools_batch_Identifier)
  130. let tools_AITools_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, showLeftIcon: true, buttonText: KMLocalizedString("AI Tools"), icon: NSImage(named: "tools_AITools"), identifier: KMPDFToolbar_tools_AITools_Identifier)
  131. var totalRightPropertys: [NSObject] = []
  132. var validRightPropertys: [NSObject] = [] //右侧展示的icon集合
  133. //MARK: - func
  134. override init() {
  135. super.init()
  136. self.initData()
  137. }
  138. func initData() {
  139. viewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_View")
  140. pageProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_Page")
  141. reloadToolsData()
  142. var menuItemArr: [ComponentMenuitemProperty] = []
  143. if true {
  144. menuItemArr.append(tools_selectProperty)
  145. menuItemArr.append(tools_scrollProperty)
  146. menuItemArr.append(tools_contentProperty)
  147. menuItemArr.append(tools_magnifyProperty)
  148. menuItemArr.append(tools_areaProperty)
  149. toolsProperty.menuItemArr = menuItemArr
  150. }
  151. if true {
  152. let items: [(String, String)] = [("Adaptation Width", KMPDFToolbar_Zoom_AdapWidth_Identifier),
  153. ("Adapt to Page", KMPDFToolbar_Zoom_AdapPage_Identifier),
  154. ("Actual Size", KMPDFToolbar_Zoom_ActualSize_Identifier),
  155. (" ", " "),
  156. ("10%", KMPDFToolbar_Zoom_10_Identifier),
  157. ("25%", KMPDFToolbar_Zoom_25_Identifier),
  158. ("50%", KMPDFToolbar_Zoom_50_Identifier),
  159. ("75%", KMPDFToolbar_Zoom_75_Identifier),
  160. ("100%", KMPDFToolbar_Zoom_100_Identifier),
  161. ("150%", KMPDFToolbar_Zoom_150_Identifier),
  162. ("200%", KMPDFToolbar_Zoom_200_Identifier),
  163. ("400%", KMPDFToolbar_Zoom_400_Identifier),
  164. ("800%", KMPDFToolbar_Zoom_800_Identifier)]
  165. var menuItemArr: [ComponentMenuitemProperty] = []
  166. for (i, value) in items {
  167. var itemProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, keyEquivalent: nil, text: KMLocalizedString(i, comment: ""), identifier: value)
  168. if i == " " {
  169. itemProperty = ComponentMenuitemProperty.divider()
  170. }
  171. menuItemArr.append(itemProperty)
  172. }
  173. selectZoomProperty.menuItemArr = menuItemArr
  174. }
  175. undoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_undo")
  176. redoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_redo")
  177. printProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_print")
  178. rightViewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_rightView")
  179. shareProperty.menuItemArr = [share_PDF_Property, share_Flatted_Property, share_Original_Property]
  180. totalRightPropertys = [undoProperty, redoProperty, saveProperty, aiToolsProperty, batchProperty, ttsProperty, pptProperty, printProperty, shareProperty]
  181. validRightPropertys = [aiToolsProperty, batchProperty, shareProperty]
  182. }
  183. //MARK: - 刷新tools工具
  184. func reloadToolsData() {
  185. let toolsType = KMPDFManager.manager.viewToolsType
  186. if toolsType == .Scroll {
  187. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_scroll")
  188. } else if toolsType == .Content_Selection {
  189. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_content")
  190. } else if toolsType == .Magnify {
  191. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_magnify")
  192. } else if toolsType == .AreaZoom {
  193. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_zoom")
  194. } else {
  195. toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_select")
  196. }
  197. }
  198. //MARK: - 获取二级工具栏内容
  199. func getSubToolbarItems(_ modeType: KMPDFToolsMode = .None, isPageEditMode: Bool = false) -> [Any] {
  200. if isPageEditMode {
  201. page_Insert_Property.menuItemArr = [page_Insert_File_Property, page_Insert_Blank_Property, ComponentMenuitemProperty.divider(),
  202. page_Insert_Clip_Property, page_Insert_Scanner_Property]
  203. return [dividerProperty, page_Insert_Property, page_Extract_Property, page_Replace_Property,
  204. page_Split_Property, page_Reverse_Property, dividerProperty, page_LeftRotate_Property,
  205. page_RightRotate_Property, page_Delete_Property]
  206. }
  207. if modeType == .Markup {
  208. return [highlightProperty, UnderlineProperty, wavelineProperty, strikethroughProperty,
  209. dividerProperty, textProperty, noteProperty, dividerProperty,
  210. penProperty, eraserProperty, dividerProperty, rectangleProperty,
  211. circleProperty, arrowProperty, lineProperty, dividerProperty,
  212. stampProperty, signProperty, dividerProperty, eyeProperty]
  213. } else if modeType == .Edit {
  214. return [edit_text_Property, edit_image_Property, edit_link_Property, dividerProperty,
  215. edit_crop_Property, edit_watermark_Property, edit_background_Property, edit_headerfooter_Property,
  216. edit_bates_Property]
  217. } else if modeType == .Form {
  218. return [form_text_Property, form_checkbox_Property, form_radio_Property, form_list_Property,
  219. form_dropdown_Property, form_OK_Property, form_digitalSign_Property, dividerProperty,
  220. form_alignment_Property, form_more_Property]
  221. } else if modeType == .Fill {
  222. return [fill_tick_Property, fill_fork_Property, fill_rectangle_Property, fill_line_Property,
  223. fill_dot_Property, fill_date_Property, fill_sign_Property]
  224. } else if modeType == .Convert {
  225. var menuItemArr: [ComponentMenuitemProperty] = []
  226. if true {
  227. menuItemArr.append(convert_RTF_property)
  228. menuItemArr.append(convert_CSV_property)
  229. menuItemArr.append(convert_HTML_property)
  230. menuItemArr.append(convert_Text_property)
  231. menuItemArr.append(convert_Json_property)
  232. convert_others_Property.menuItemArr = menuItemArr
  233. }
  234. return [convert_word_Property, convert_excel_Property, convert_ppt_Property, convert_image_Property,
  235. convert_others_Property, dividerProperty, convert_imageToPDF_Property, dividerProperty,
  236. convert_ocr_Property]
  237. } else if modeType == .Protect {
  238. return [protect_redact_Property, protect_security_Property, protect_removeSecurity_Property, protect_digitalSign_Property]
  239. } else if modeType == .Tools {
  240. return[tools_OCR_Property, tools_merge_Property, tools_compress_Property, tools_compare_Property,
  241. tools_extractImage_Property, tools_TTS_Property, tools_batch_Property, tools_AITools_Property]
  242. }
  243. return []
  244. }
  245. //MARK: - 刷新Markup二级工具栏特殊图片
  246. func refreshMarkupColorImages() {
  247. highlightProperty.icon = KMPDFToolbarManager.getMarkup_HighlightImage()
  248. UnderlineProperty.icon = KMPDFToolbarManager.getMarkupUnderlineImage()
  249. wavelineProperty.icon = KMPDFToolbarManager.getMarkupwavylineImage()
  250. strikethroughProperty.icon = KMPDFToolbarManager.getMarkupStrikethroughImage()
  251. noteProperty.icon = KMPDFToolbarManager.getMarkupNoteImage()
  252. penProperty.icon = KMPDFToolbarManager.getMarkupPenImage()
  253. }
  254. //MARK: - 获取Markup相关icon图片
  255. static func getMarkup_HighlightImage() -> NSImage? {
  256. let image = NSImage(named: "markup_highlight_base")
  257. let upImage = NSImage(named: "markup_highlight_Cover")
  258. if let img = NSImage.combineImages(images: [image?.filled(with: NSColor.red), upImage]) {
  259. return img
  260. }
  261. return image
  262. }
  263. static func getMarkupNoteImage() -> NSImage? {
  264. let image = NSImage(named: "markup_note_base")
  265. let upImage = NSImage(named: "markup_note_Cover")
  266. if let img = NSImage.combineImages(images: [image?.filled(with: NSColor.red), upImage]) {
  267. return img
  268. }
  269. return image
  270. }
  271. static func getMarkupPenImage() -> NSImage? {
  272. let image = NSImage(named: "markup_pen_Cover")
  273. let upImage = NSImage(named: "markup_pen_base")
  274. if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) {
  275. return img
  276. }
  277. return image
  278. }
  279. static func getMarkupStrikethroughImage() -> NSImage? {
  280. let image = NSImage(named: "markup_strikethrough_Cover")
  281. let upImage = NSImage(named: "markup_strikethrough_base")
  282. if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) {
  283. return img
  284. }
  285. return image
  286. }
  287. static func getMarkupUnderlineImage() -> NSImage? {
  288. let image = NSImage(named: "markup_underline_Cover")
  289. let upImage = NSImage(named: "markup_underline_base")
  290. if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) {
  291. return img
  292. }
  293. return image
  294. }
  295. static func getMarkupwavylineImage() -> NSImage? {
  296. let image = NSImage(named: "markup_wavyline_Cover")
  297. let upImage = NSImage(named: "markup_wavyline_base")
  298. if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) {
  299. return img
  300. }
  301. return image
  302. }
  303. }