// // KMPDFToolbarManager.swift // PDF Reader Pro // // Created by Niehaoyu on 2024/10/22. // import Foundation import KMComponentLibrary class KMPDFToolbarManager: NSObject { @objc public static let manager = KMPDFToolbarManager() let dividerProperty = ComponentDividerProperty(type: .vertical, dash: false) //MARK: -View var viewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, identifier: KMPDFToolbar_ViewDisplay_Identifier) //MARK: -页面编辑 var pageProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, identifier: KMPDFToolbar_PageEdit_Identifier) var page_Insert_Property: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Insert"), leftIcon: NSImage(named: "pageEdit_insert"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) var page_Insert_File_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("Insert File"), identifier: KMPDFToolbar_PageEdit_InsertFile_Identifier) var page_Insert_Blank_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("Insert Blank File"), identifier: KMPDFToolbar_PageEdit_InsertBlank_Identifier) var page_Insert_Clip_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("From Clipboard"), identifier: KMPDFToolbar_PageEdit_InsertClip_Identifier) var page_Insert_Scanner_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, text: KMLocalizedString("From Scanner"), identifier: KMPDFToolbar_PageEdit_InsertScanner_Identifier) 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) 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) 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) 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) var page_LeftRotate_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateLeft"), identifier: KMPDFToolbar_PageEdit_LeftRotate_Identifier) var page_RightRotate_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_rotateRight"), identifier: KMPDFToolbar_PageEdit_RightRotate_Identifier) var page_Delete_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_delete"), identifier: KMPDFToolbar_PageEdit_Delete_Identifier) var page_Reduce_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_zoomout"), identifier: KMPDFToolbar_PageEdit_Reduce_Identifier) var page_Increase_Property: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "pageEdit_zoomin"), identifier: KMPDFToolbar_PageEdit_Increase_Identifier) //MARK: -ToosView var toolsProperty: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, leftIcon: NSImage(named: "toolbar_Tools_select"), showDropdown: true) 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) 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) 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) 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) 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) //MARK: -缩放比例 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")) //MARK: -工具栏 let markupMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Markup", comment: ""), identifier: KMPDFToolbar_Markup_Identifier) let editMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Edit", comment: ""), identifier: KMPDFToolbar_Edit_Identifier) let formMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Form", comment: ""), identifier: KMPDFToolbar_Form_Identifier) let fillMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Fill", comment: ""), identifier: KMPDFToolbar_Fill_Identifier) let convertMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Convert", comment: ""), identifier: KMPDFToolbar_Convert_Identifier) let protectMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Protect", comment: ""), identifier: KMPDFToolbar_Protect_Identifier) let toolsMode_Property = ComponentTabsProperty(tabsType: .underline_Center, state: .normal, showIcon: false, title: NSLocalizedString("Tools", comment: ""), identifier: KMPDFToolbar_Tools_Identifier) //MARK: -右侧模块 var undoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_undo"), keepPressState: false, identifier: KMPDFToolbar_undo_Identifier) var redoProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_redo"), keepPressState: false,identifier: KMPDFToolbar_redo_Identifier) var saveProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_save"), keepPressState: false,identifier: KMPDFToolbar_save_Identifier) var aiToolsProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "tempIcon"), keepPressState: false,identifier: KMPDFToolbar_aiTools_Identifier) var batchProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "tempIcon"), keepPressState: false,identifier: KMPDFToolbar_batch_Identifier) var ttsProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "tempIcon"), keepPressState: false,identifier: KMPDFToolbar_tts_Identifier) var pptProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "tempIcon"), keepPressState: false,identifier: KMPDFToolbar_ppt_Identifier) var printProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_print"), keepPressState: false, identifier: KMPDFToolbar_print_Identifier) var shareProperty: ComponentDropdownToolProperty = ComponentDropdownToolProperty(state: .normal, leftIcon: NSImage(named: "toolbar_share")) var share_PDF_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("PDF"), identifier: KMPDFToolbar_share_PDF_Identifier) var share_Flatted_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("Flattened Copy"), identifier: KMPDFToolbar_share_Flattened_Identifier) var share_Original_Property: ComponentMenuitemProperty = ComponentMenuitemProperty(text: KMLocalizedString("Original PDF"), identifier: KMPDFToolbar_share_Original_Identifier) var rightViewProperty: ComponentButtonProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "toolbar_rightView"), identifier: KMPDFToolbar_rightView_Identifier) //MARK: -Markup let highlightProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkup_HighlightImage(), identifier: KMPDFToolbar_highlight_Identifier) let UnderlineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupUnderlineImage(), identifier: KMPDFToolbar_underline_Identifier) let wavelineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupwavylineImage(), identifier: KMPDFToolbar_waveline_Identifier) let strikethroughProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupStrikethroughImage(), identifier: KMPDFToolbar_strikethrough_Identifier) let textProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_text"), identifier: KMPDFToolbar_text_Identifier) let noteProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupNoteImage(), identifier: KMPDFToolbar_note_Identifier) let penProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: KMPDFToolbarManager.getMarkupPenImage(), identifier: KMPDFToolbar_pen_Identifier) let eraserProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_erase"), identifier: KMPDFToolbar_eraser_Identifier) let rectangleProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_rectangle"), identifier: KMPDFToolbar_rectangle_Identifier) let circleProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_oval"), identifier: KMPDFToolbar_circle_Identifier) let arrowProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_arrow"), identifier: KMPDFToolbar_arrow_Identifier) let lineProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_line"), identifier: KMPDFToolbar_line_Identifier) let stampProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_stamp"), identifier: KMPDFToolbar_stamp_Identifier) let signProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_sign"), identifier: KMPDFToolbar_sign_Identifier) let eyeProperty = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_show"), identifier: KMPDFToolbar_eye_Identifier) //MARK: -Edit 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) 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) 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) 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) let edit_watermark_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Watermark"), leftIcon: NSImage(named: "edit_watermark"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) let edit_background_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Background"), leftIcon: NSImage(named: "edit_background"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) let edit_headerfooter_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Header & Footer"), leftIcon: NSImage(named: "edit_headerfooter"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) let edit_bates_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("Bates"), leftIcon: NSImage(named: "edit_bates"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) //MARK: -Form 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) 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) 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) 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) 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) 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) 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) let form_alignment_Property = ComponentDropdownToolProperty(state: .normal, text: nil, leftIcon: NSImage(named: "form_alignment"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) let form_more_Property = ComponentDropdownToolProperty(state: .normal, text: nil, leftIcon: NSImage(named: "form_more"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) //MARK: -Fill let fill_tick_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_tick"), identifier: KMPDFToolbar_fill_tick_Identifier) let fill_fork_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_fork"), identifier: KMPDFToolbar_fill_fork_Identifier) let fill_rectangle_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_rectangle"), identifier: KMPDFToolbar_fill_rectangle_Identifier) let fill_line_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_line"), identifier: KMPDFToolbar_fill_line_Identifier) let fill_dot_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_dot"), identifier: KMPDFToolbar_fill_dot_Identifier) let fill_date_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "fill_date"), identifier: KMPDFToolbar_fill_date_Identifier) let fill_sign_Property = ComponentButtonProperty(type: .text_gray_opacity, size: .xs, onlyIcon: true, icon: NSImage(named: "markup_sign"), identifier: KMPDFToolbar_fill_sign_Identifier) //MARK: -Convert 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) 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) 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) 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) let convert_others_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("To Others"), leftIcon: NSImage(named: "form_more"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) 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) 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) 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) 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) 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) 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) 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) //MARK: -Protect 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) 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) 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) 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) //MARK: -Tools 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) 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) 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) let tools_compare_Property = ComponentDropdownToolProperty(state: .normal, text: KMLocalizedString("compare"), leftIcon: NSImage(named: "tools_compare"), showDropdown: true, arrowIcon: NSImage(named: "toolbar_arrowDown_fill")) 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) 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) 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) 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) var totalRightPropertys: [NSObject] = [] var validRightPropertys: [NSObject] = [] //右侧展示的icon集合 //MARK: - func override init() { super.init() self.initData() } func initData() { viewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_View") pageProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_Page") reloadToolsData() var menuItemArr: [ComponentMenuitemProperty] = [] if true { menuItemArr.append(tools_selectProperty) menuItemArr.append(tools_scrollProperty) menuItemArr.append(tools_contentProperty) menuItemArr.append(tools_magnifyProperty) menuItemArr.append(tools_areaProperty) toolsProperty.menuItemArr = menuItemArr } if true { let items: [(String, String)] = [("Adaptation Width", KMPDFToolbar_Zoom_AdapWidth_Identifier), ("Adapt to Page", KMPDFToolbar_Zoom_AdapPage_Identifier), ("Actual Size", KMPDFToolbar_Zoom_ActualSize_Identifier), (" ", " "), ("10%", KMPDFToolbar_Zoom_10_Identifier), ("25%", KMPDFToolbar_Zoom_25_Identifier), ("50%", KMPDFToolbar_Zoom_50_Identifier), ("75%", KMPDFToolbar_Zoom_75_Identifier), ("100%", KMPDFToolbar_Zoom_100_Identifier), ("150%", KMPDFToolbar_Zoom_150_Identifier), ("200%", KMPDFToolbar_Zoom_200_Identifier), ("400%", KMPDFToolbar_Zoom_400_Identifier), ("800%", KMPDFToolbar_Zoom_800_Identifier)] var menuItemArr: [ComponentMenuitemProperty] = [] for (i, value) in items { var itemProperty: ComponentMenuitemProperty = ComponentMenuitemProperty(multipleSelect: false, itemSelected: false, isDisabled: false, keyEquivalent: nil, text: KMLocalizedString(i, comment: ""), identifier: value) if i == " " { itemProperty = ComponentMenuitemProperty.divider() } menuItemArr.append(itemProperty) } selectZoomProperty.menuItemArr = menuItemArr } undoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_undo") redoProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_redo") printProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_print") rightViewProperty.propertyInfo.leftIcon_nor = NSImage(named: "toolbar_rightView") shareProperty.menuItemArr = [share_PDF_Property, share_Flatted_Property, share_Original_Property] totalRightPropertys = [undoProperty, redoProperty, saveProperty, aiToolsProperty, batchProperty, ttsProperty, pptProperty, printProperty, shareProperty] validRightPropertys = [aiToolsProperty, batchProperty, shareProperty] } //MARK: - 刷新tools工具 func reloadToolsData() { let toolsType = KMPDFManager.manager.viewToolsType if toolsType == .Scroll { toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_scroll") } else if toolsType == .Content_Selection { toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_content") } else if toolsType == .Magnify { toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_magnify") } else if toolsType == .AreaZoom { toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_zoom") } else { toolsProperty.leftIcon = NSImage(named: "toolbar_Tools_select") } } //MARK: - 获取二级工具栏内容 func getSubToolbarItems(_ modeType: KMPDFToolsMode = .None, isPageEditMode: Bool = false) -> [Any] { if isPageEditMode { page_Insert_Property.menuItemArr = [page_Insert_File_Property, page_Insert_Blank_Property, ComponentMenuitemProperty.divider(), page_Insert_Clip_Property, page_Insert_Scanner_Property] return [dividerProperty, page_Insert_Property, page_Extract_Property, page_Replace_Property, page_Split_Property, page_Reverse_Property, dividerProperty, page_LeftRotate_Property, page_RightRotate_Property, page_Delete_Property] } if modeType == .Markup { return [highlightProperty, UnderlineProperty, wavelineProperty, strikethroughProperty, dividerProperty, textProperty, noteProperty, dividerProperty, penProperty, eraserProperty, dividerProperty, rectangleProperty, circleProperty, arrowProperty, lineProperty, dividerProperty, stampProperty, signProperty, dividerProperty, eyeProperty] } else if modeType == .Edit { return [edit_text_Property, edit_image_Property, edit_link_Property, dividerProperty, edit_crop_Property, edit_watermark_Property, edit_background_Property, edit_headerfooter_Property, edit_bates_Property] } else if modeType == .Form { return [form_text_Property, form_checkbox_Property, form_radio_Property, form_list_Property, form_dropdown_Property, form_OK_Property, form_digitalSign_Property, dividerProperty, form_alignment_Property, form_more_Property] } else if modeType == .Fill { return [fill_tick_Property, fill_fork_Property, fill_rectangle_Property, fill_line_Property, fill_dot_Property, fill_date_Property, fill_sign_Property] } else if modeType == .Convert { var menuItemArr: [ComponentMenuitemProperty] = [] if true { menuItemArr.append(convert_RTF_property) menuItemArr.append(convert_CSV_property) menuItemArr.append(convert_HTML_property) menuItemArr.append(convert_Text_property) menuItemArr.append(convert_Json_property) convert_others_Property.menuItemArr = menuItemArr } return [convert_word_Property, convert_excel_Property, convert_ppt_Property, convert_image_Property, convert_others_Property, dividerProperty, convert_imageToPDF_Property, dividerProperty, convert_ocr_Property] } else if modeType == .Protect { return [protect_redact_Property, protect_security_Property, protect_removeSecurity_Property, protect_digitalSign_Property] } else if modeType == .Tools { return[tools_OCR_Property, tools_merge_Property, tools_compress_Property, tools_compare_Property, tools_extractImage_Property, tools_TTS_Property, tools_batch_Property, tools_AITools_Property] } return [] } //MARK: - 刷新Markup二级工具栏特殊图片 func refreshMarkupColorImages() { highlightProperty.icon = KMPDFToolbarManager.getMarkup_HighlightImage() UnderlineProperty.icon = KMPDFToolbarManager.getMarkupUnderlineImage() wavelineProperty.icon = KMPDFToolbarManager.getMarkupwavylineImage() strikethroughProperty.icon = KMPDFToolbarManager.getMarkupStrikethroughImage() noteProperty.icon = KMPDFToolbarManager.getMarkupNoteImage() penProperty.icon = KMPDFToolbarManager.getMarkupPenImage() } //MARK: - 获取Markup相关icon图片 static func getMarkup_HighlightImage() -> NSImage? { let image = NSImage(named: "markup_highlight_base") let upImage = NSImage(named: "markup_highlight_Cover") if let img = NSImage.combineImages(images: [image?.filled(with: NSColor.red), upImage]) { return img } return image } static func getMarkupNoteImage() -> NSImage? { let image = NSImage(named: "markup_note_base") let upImage = NSImage(named: "markup_note_Cover") if let img = NSImage.combineImages(images: [image?.filled(with: NSColor.red), upImage]) { return img } return image } static func getMarkupPenImage() -> NSImage? { let image = NSImage(named: "markup_pen_Cover") let upImage = NSImage(named: "markup_pen_base") if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) { return img } return image } static func getMarkupStrikethroughImage() -> NSImage? { let image = NSImage(named: "markup_strikethrough_Cover") let upImage = NSImage(named: "markup_strikethrough_base") if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) { return img } return image } static func getMarkupUnderlineImage() -> NSImage? { let image = NSImage(named: "markup_underline_Cover") let upImage = NSImage(named: "markup_underline_base") if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) { return img } return image } static func getMarkupwavylineImage() -> NSImage? { let image = NSImage(named: "markup_wavyline_Cover") let upImage = NSImage(named: "markup_wavyline_base") if let img = NSImage.combineImages(images: [(image?.filled(with: NSColor.red))!, upImage!]) { return img } return image } }