Parcourir la source

【综合】工具栏代码整理

niehaoyu il y a 7 mois
Parent
commit
2f0433442a

+ 1 - 0
PDF Office/PDF Master/AppDelegate.swift

@@ -9,6 +9,7 @@ import Cocoa
 import UserNotifications
 
 @main
+
 class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
     
     var rateWindowVC: KMRateWindowController!

+ 6 - 6
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/Controller/KMToolbarConfigViewController.xib

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="Named colors" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMToolbarConfigViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMToolbarConfigViewController" customModule="LynxPDF_Editor" customModuleProvider="target">
             <connections>
                 <outlet property="cancelButton" destination="Jrq-XK-HyQ" id="a5v-rh-B8T"/>
                 <outlet property="collectionView" destination="C4M-vA-SRV" id="hm4-3W-khn"/>
@@ -98,7 +98,7 @@ DQ
 </string>
                     </buttonCell>
                 </button>
-                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DrL-JR-pL6">
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DrL-JR-pL6">
                     <rect key="frame" x="24" y="324" width="37" height="16"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="YE2-rQ-Luf">
                         <font key="font" metaFont="system"/>
@@ -106,7 +106,7 @@ DQ
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HMG-Nh-uYe">
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HMG-Nh-uYe">
                     <rect key="frame" x="24" y="194" width="37" height="16"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Bb7-lA-01B">
                         <font key="font" metaFont="system"/>
@@ -114,7 +114,7 @@ DQ
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WdD-cf-Oez">
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WdD-cf-Oez">
                     <rect key="frame" x="24" y="40" width="37" height="16"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="7P9-RR-cRl">
                         <font key="font" metaFont="system"/>

+ 5 - 5
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMMainToolbarController.xib

@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMMainToolbarController" customModule="PDF_Master" customModuleProvider="target">
+        <customObject id="-2" userLabel="File's Owner" customClass="KMMainToolbarController" customModule="LynxPDF_Editor" customModuleProvider="target">
             <connections>
                 <outlet property="annotationModelButton" destination="7rN-BM-QEo" id="tUC-mU-oIk"/>
                 <outlet property="beforePageButton" destination="oh6-n6-uAg" id="Z1D-OE-lZM"/>
@@ -171,7 +171,7 @@
                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="qam-lw-Pnz">
                     <rect key="frame" x="123" y="143" width="147" height="26"/>
                     <subviews>
-                        <button translatesAutoresizingMaskIntoConstraints="NO" id="Gho-8g-gQz" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                        <button translatesAutoresizingMaskIntoConstraints="NO" id="Gho-8g-gQz" customClass="KMButton" customModule="LynxPDF_Editor" customModuleProvider="target">
                             <rect key="frame" x="31" y="3" width="21" height="20"/>
                             <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNameMainToolbarUp" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="GEB-92-g02">
                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -182,7 +182,7 @@
                                 <constraint firstAttribute="height" constant="20" id="Jlp-3D-Khc"/>
                             </constraints>
                         </button>
-                        <button translatesAutoresizingMaskIntoConstraints="NO" id="qhn-QX-WTv" customClass="KMButton" customModule="PDF_Master" customModuleProvider="target">
+                        <button translatesAutoresizingMaskIntoConstraints="NO" id="qhn-QX-WTv" customClass="KMButton" customModule="LynxPDF_Editor" customModuleProvider="target">
                             <rect key="frame" x="10" y="3" width="21" height="20"/>
                             <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNameMainToolbardown" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="IDx-q4-RRL">
                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>

+ 93 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarConfig.swift

@@ -0,0 +1,93 @@
+//
+//  KMToolbarConfig.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/8/5.
+//
+
+import Foundation
+
+@objc enum KMToolbarViewType : Int {
+    case None
+    case Main
+    case Annatiton
+    case Page
+    case Conversion
+    case ScanOCR
+    case editPDF
+    case Form
+    case FillSign
+    case Tool
+    case redact
+    case Move
+    case Magnify
+    case Select
+    case SelectZoom
+    case LeftPanel
+    case RightPanel
+    case viewSetting
+    case AITools
+    
+    func isToolMode() -> Bool {
+        return (self == .Move || self == .Magnify || self == .Select || self == .SelectZoom)
+    }
+    
+    func itemIdentifier() -> String {
+        if (self == .Annatiton) {
+            return KMDocumentAnnotationToolbarItemIdentifier
+        } else if (self == .Page) {
+            return KMDocumentPageToolbarItemIdentifier
+        } else if (self == .Conversion) {
+            return KMDocumentConversonToolbarItemIdentifier
+        } else if (self == .ScanOCR) {
+            return KMDocumentScanOCRToolbarItemIdentifier
+        } else if (self == .editPDF) {
+            return KMDocumentEditToolbarItemIdentifier
+        } else if (self == .Form) {
+            return KMDocumentFormToolbarItemIdentifier
+        } else if (self == .FillSign) {
+            return KMDocumentFillSginToolbarItemIdentifier
+        } else if (self == .Tool) {
+            return KMDocumentToolToolbarItemIdentifier
+        } else if (self == .Move) {
+            return KMToolbarMoveToolModeItemIdentifier
+        } else if (self == .Magnify) {
+            return KMToolbarMagnifyToolModeItemIdentifier
+        } else if (self == .Select) {
+            return KMToolbarSelectToolModeItemIdentifier
+        } else if (self == .SelectZoom) {
+            return KMToolbarZoomToSelectionItemIdentifier
+        } else if (self == .LeftPanel) {
+            return KMLeftControlToolbarItemIdentifier
+        } else if (self == .RightPanel) {
+            return KMRightControlToolbarItemIdentifier
+        }
+        return ""
+    }
+}
+
+@objc enum KMToolbarType: Int {
+    /// conversion
+    case word = 3000
+    case excel = 3001
+    case ppt = 3002
+    case rtf = 3003
+    case csv = 3004
+    case html = 3005
+    case conversion_text = 3006
+    case conversion_image = 3007
+    
+    /// tool
+    case compress = 8000
+    case merge = 8001
+    case fileCompare = 8002
+    case secure = 8003
+    case redact = 8004
+    case watermark = 8005
+    case background = 8006
+    case headerAndFooter = 8007
+    case bates = 8008
+    case crop = 8009
+    case comparison = 8010
+    case aiTools = 8011
+}

+ 3 - 3
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarCustomViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22155" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
     <dependencies>
         <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22155"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -98,7 +98,7 @@ Gw
                                         </textFieldCell>
                                         <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
                                         <prototypeCellViews>
-                                            <tableCellView identifier="KMAllowedItemsCell" id="u8k-Vq-Sh4" customClass="KMToolbarCellView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                            <tableCellView identifier="KMAllowedItemsCell" id="u8k-Vq-Sh4" customClass="KMToolbarCellView" customModule="LynxPDF_Editor" customModuleProvider="target">
                                                 <rect key="frame" x="1" y="1" width="166" height="36"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                                 <subviews>

+ 131 - 209
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -7,91 +7,6 @@
 
 import Cocoa
 
-@objc enum KMToolbarViewType : Int {
-    case None
-    case Main
-    case Annatiton
-    case Page
-    case Conversion
-    case ScanOCR
-    case editPDF
-    case Form
-    case FillSign
-    case Tool
-    case redact
-    case Move
-    case Magnify
-    case Select
-    case SelectZoom
-    case LeftPanel
-    case RightPanel
-    case viewSetting
-    case AITools
-    
-    func isToolMode() -> Bool {
-        return (self == .Move || self == .Magnify || self == .Select || self == .SelectZoom)
-    }
-    
-    func itemIdentifier() -> String {
-        if (self == .Annatiton) {
-            return KMDocumentAnnotationToolbarItemIdentifier
-        } else if (self == .Page) {
-            return KMDocumentPageToolbarItemIdentifier
-        } else if (self == .Conversion) {
-            return KMDocumentConversonToolbarItemIdentifier
-        } else if (self == .ScanOCR) {
-            return KMDocumentScanOCRToolbarItemIdentifier
-        } else if (self == .editPDF) {
-            return KMDocumentEditToolbarItemIdentifier
-        } else if (self == .Form) {
-            return KMDocumentFormToolbarItemIdentifier
-        } else if (self == .FillSign) {
-            return KMDocumentFillSginToolbarItemIdentifier
-        } else if (self == .Tool) {
-            return KMDocumentToolToolbarItemIdentifier
-        } else if (self == .Move) {
-            return KMToolbarMoveToolModeItemIdentifier
-        } else if (self == .Magnify) {
-            return KMToolbarMagnifyToolModeItemIdentifier
-        } else if (self == .Select) {
-            return KMToolbarSelectToolModeItemIdentifier
-        } else if (self == .SelectZoom) {
-            return KMToolbarZoomToSelectionItemIdentifier
-        } else if (self == .LeftPanel) {
-            return KMLeftControlToolbarItemIdentifier
-        } else if (self == .RightPanel) {
-            return KMRightControlToolbarItemIdentifier
-        }
-        return ""
-    }
-}
-
-@objc enum KMToolbarType: Int {
-    /// conversion
-    case word = 3000
-    case excel = 3001
-    case ppt = 3002
-    case rtf = 3003
-    case csv = 3004
-    case html = 3005
-    case conversion_text = 3006
-    case conversion_image = 3007
-    
-    /// tool
-    case compress = 8000
-    case merge = 8001
-    case fileCompare = 8002
-    case secure = 8003
-    case redact = 8004
-    case watermark = 8005
-    case background = 8006
-    case headerAndFooter = 8007
-    case bates = 8008
-    case crop = 8009
-    case comparison = 8010
-    case aiTools = 8011
-}
-
 @objc protocol KMToolbarViewControllerDelegate {
     @objc optional func changeAnnotationModeAction(item:KMToolbarClickButton)
     @objc optional func showPDFLayoutModeAction(show:Bool)
@@ -121,15 +36,16 @@ import Cocoa
 
 class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
 
-    var toolbar : KMToolbarView?
-    var toolbarType : KMToolbarViewType = KMToolbarViewType.None
-    var toolbarItems : [String : Any] = [:]
-    @IBOutlet weak  var mainWindowController : MainWindowController!
-    open weak var delegate: KMToolbarViewControllerDelegate?
     @IBOutlet var zoomButton: NSPopUpButton!
     @IBOutlet var zoomView: NSView!
     @IBOutlet weak var zoomTextField: NSTextField!
     
+    @IBOutlet weak  var mainWindowController : MainWindowController!
+    
+    var toolbar : KMToolbarView?
+    var toolbarType : KMToolbarViewType = KMToolbarViewType.None
+    var toolbarItems : [String : Any] = [:]
+    open weak var delegate: KMToolbarViewControllerDelegate?
     var searchField: NSSearchField = NSSearchField()
     weak var pdfView: CPDFListView?
     var shareButton = KMToolbarClickButton()
@@ -194,8 +110,19 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         }
     }
     
-    // MARK: Action
+    override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
+        super.interfaceThemeDidChanged(appearance)
+        
+        self.toolbar?.appearance = .init(named: appearance)
+        self.bottomLine.wantsLayer = true
+        if KMAppearance.isDarkMode() {
+            self.bottomLine.layer?.backgroundColor = NSColor.km_init(hex: "#393B3E", alpha: 1).cgColor
+        } else {
+            self.bottomLine.layer?.backgroundColor = NSColor.km_init(hex: "#0000001A").cgColor
+        }
+    }
     
+    // MARK: - IBAction
     @IBAction func changeAnnotationMode(item: KMToolbarClickButton) {
         self.delegate?.changeAnnotationModeAction?(item: item)
         if item.isKind(of: KMToolbarClickButton.self) {
@@ -232,6 +159,98 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         self._itemSetPromptFlag(item: item.clickObject as? KMToolbarItemView)
     }
     
+    @IBAction func showPDFLayoutMode(sender: KMToolbarClickButton) {
+        if let item = sender.clickObject as? KMToolbarItemView {
+            item.isSelected = !item.isSelected
+            self.delegate?.showPDFLayoutModeAction?(show: true)
+            self._itemSetPromptFlag(item: item)
+        }
+    }
+    
+    @IBAction func zoomModelSelectButtonAction(_ sender: NSPopUpButton) {
+        self.delegate?.toolbarViewController?(self, zoomModel: sender.selectedTag())
+        for item in sender.itemArray {
+            item.state = .off
+        }
+        sender.selectedItem?.state = .on
+    }
+    
+    @IBAction func zoomPDFViewButtonAction(sender:KMToolbarClickButton) {
+        if sender.tag == 0 {
+            self.delegate?.changePDFViewZoomOutAction?()
+        } else if sender.tag == 1 {
+            self.delegate?.changePDFViewZoomInAction?()
+        } else if sender.tag == 2 {
+            self.delegate?.changePDFViewGotoBackAction?()
+        } else if sender.tag == 3 {
+            self.delegate?.changePDFViewGoToForwardAction?()
+        }
+    }
+    
+    @IBAction func aiTranslationButtonAction(sender:KMToolbarClickButton) {
+        self.delegate?.aiTranslationPDFFileAction?()
+    }
+    
+    @IBAction func shareButtonAction(sender:KMToolbarClickButton) {
+        FMTrackEventManager.defaultManager.lynxTrackEvent(event: "OnbrdTop", withProperties: ["OnbrdTop_Tbr" : "OnbrdTop_Tbr_Share"])
+        self.shareButton = sender
+        let menu = NSMenu()
+        menu.addItem(withTitle: NSLocalizedString("Document", comment: ""), action: #selector(shareViaWithDocument), target: self)
+        menu.addItem(withTitle: NSLocalizedString("Flattened Copy", comment: ""), action: #selector(shareViaWithFlatten), target: self)
+        menu.addItem(withTitle: NSLocalizedString("Original PDF", comment: ""), action: #selector(shareViaWithOriginalPDF), target: self)
+        menu.popUp(positioning: nil, at: NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y-10), in: sender.superview)
+        
+        self.delegate?.toolbarViewController?(self, shareAction: sender.clickObject as! KMToolbarItemView)
+    }
+    
+    @IBAction func shareViaWithDocument(sender:NSMenuItem) {
+        self.delegate?.toolbarViewController?(self, shareDocument: sender)
+    }
+    
+    @IBAction func shareViaWithFlatten(sender:NSMenuItem) {
+        self.delegate?.toolbarViewController?(self, shareFlatten: sender)
+    }
+    
+    @IBAction func shareViaWithOriginalPDF(sender:NSMenuItem) {
+        self.delegate?.toolbarViewController?(self, shareOriginalPDF: sender)
+    }
+    
+    @objc func mergeMenuItemAction(sender: KMToolbarClickButton) {
+        self.delegate?.toolbarViewController?(self, clickChaildToolType: .merge, toolbar: sender.clickObject as! KMToolbarItemView)
+    }
+    
+    @IBAction func scanOCRModelSelect(sender:KMToolbarClickButton) {
+        self.delegate?.toolbarViewController?(self, scanOCRModel: sender.tag)
+    }
+    
+    // Form 对齐
+    @IBAction func formsAlignmentAction(sender:KMToolbarClickButton) {
+        if sender.tag == 0 {
+            self.pdfView?.formsAnnotationAlign(.left)
+        } else if sender.tag == 1 {
+            self.pdfView?.formsAnnotationAlign(.vertical)
+        } else if sender.tag == 2 {
+            self.pdfView?.formsAnnotationAlign(.right)
+        } else if sender.tag == 3 {
+            self.pdfView?.formsAnnotationAlign(.top)
+        } else if sender.tag == 4 {
+            self.pdfView?.formsAnnotationAlign(.horizontally)
+        } else if sender.tag == 5 {
+            self.pdfView?.formsAnnotationAlign(.bottom)
+        } else if sender.tag == 6 {
+            self.pdfView?.formsAnnotationAlign(.disHorizontally)
+        } else if sender.tag == 7 {
+            self.pdfView?.formsAnnotationAlign(.disVertical)
+        }
+    }
+    
+    
+    // Form 更多操作
+    @IBAction func formsMoreOperationAction(sender:KMToolbarClickButton) {
+        
+    }
+    
+    //MARK: - ItemAction
     @objc private func _itemAction(_ item: KMToolbarClickButton) {
         if item.clickObject?.itemIdentifier == KMAnnotationImageToolbarItemIdentifier || item.clickObject?.itemIdentifier == KMAnnotationTableToolbarItemIdentifier {
             self.pdfView?.toolMode = .textToolMode
@@ -308,14 +327,6 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         self._itemSetPromptFlag(itemIdentifier: KMToolbarComparisonItemIdentifier)
     }
     
-    @IBAction func showPDFLayoutMode(sender: KMToolbarClickButton) {
-        if let item = sender.clickObject as? KMToolbarItemView {
-            item.isSelected = !item.isSelected
-            self.delegate?.showPDFLayoutModeAction?(show: true)
-            self._itemSetPromptFlag(item: item)
-        }
-    }
-    
     @objc func cropMenuAction(item: KMToolbarItemView) {
         self.delegate?.toolbarViewController?(self, clickChaildToolType: .crop, toolbar: item)
     }
@@ -469,83 +480,6 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         self._itemSetPromptFlag(itemIdentifier: KMToolbarConversionCreatePDFItemIdentifier)
     }
     
-    @IBAction func zoomModelSelectButtonAction(_ sender: NSPopUpButton) {
-        self.delegate?.toolbarViewController?(self, zoomModel: sender.selectedTag())
-        for item in sender.itemArray {
-            item.state = .off
-        }
-        sender.selectedItem?.state = .on
-    }
-    
-    @IBAction func zoomPDFViewButtonAction(sender:KMToolbarClickButton) {
-        if sender.tag == 0 {
-            self.delegate?.changePDFViewZoomOutAction?()
-        } else if sender.tag == 1 {
-            self.delegate?.changePDFViewZoomInAction?()
-        } else if sender.tag == 2 {
-            self.delegate?.changePDFViewGotoBackAction?()
-        } else if sender.tag == 3 {
-            self.delegate?.changePDFViewGoToForwardAction?()
-        }
-    }
-    
-    @IBAction func aiTranslationButtonAction(sender:KMToolbarClickButton) {
-        self.delegate?.aiTranslationPDFFileAction?()
-    }
-    
-    @IBAction func shareButtonAction(sender:KMToolbarClickButton) {
-        FMTrackEventManager.defaultManager.lynxTrackEvent(event: "OnbrdTop", withProperties: ["OnbrdTop_Tbr" : "OnbrdTop_Tbr_Share"])
-        self.shareButton = sender
-        let menu = NSMenu()
-        menu.addItem(withTitle: NSLocalizedString("Document", comment: ""), action: #selector(shareViaWithDocument), target: self)
-        menu.addItem(withTitle: NSLocalizedString("Flattened Copy", comment: ""), action: #selector(shareViaWithFlatten), target: self)
-        menu.addItem(withTitle: NSLocalizedString("Original PDF", comment: ""), action: #selector(shareViaWithOriginalPDF), target: self)
-        menu.popUp(positioning: nil, at: NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y-10), in: sender.superview)
-        
-        self.delegate?.toolbarViewController?(self, shareAction: sender.clickObject as! KMToolbarItemView)
-    }
-    
-    @IBAction func shareViaWithDocument(sender:NSMenuItem) {
-        self.delegate?.toolbarViewController?(self, shareDocument: sender)
-    }
-    
-    @IBAction func shareViaWithFlatten(sender:NSMenuItem) {
-        self.delegate?.toolbarViewController?(self, shareFlatten: sender)
-    }
-    
-    @IBAction func shareViaWithOriginalPDF(sender:NSMenuItem) {
-        self.delegate?.toolbarViewController?(self, shareOriginalPDF: sender)
-    }
-    
-    @objc func mergeMenuItemAction(sender: KMToolbarClickButton) {
-        self.delegate?.toolbarViewController?(self, clickChaildToolType: .merge, toolbar: sender.clickObject as! KMToolbarItemView)
-    }
-    
-    @IBAction func scanOCRModelSelect(sender:KMToolbarClickButton) {
-        self.delegate?.toolbarViewController?(self, scanOCRModel: sender.tag)
-    }
-    
-    // Form 对齐
-    @IBAction func formsAlignmentAction(sender:KMToolbarClickButton) {
-        if sender.tag == 0 {
-            self.pdfView?.formsAnnotationAlign(.left)
-        } else if sender.tag == 1 {
-            self.pdfView?.formsAnnotationAlign(.vertical)
-        } else if sender.tag == 2 {
-            self.pdfView?.formsAnnotationAlign(.right)
-        } else if sender.tag == 3 {
-            self.pdfView?.formsAnnotationAlign(.top)
-        } else if sender.tag == 4 {
-            self.pdfView?.formsAnnotationAlign(.horizontally)
-        } else if sender.tag == 5 {
-            self.pdfView?.formsAnnotationAlign(.bottom)
-        } else if sender.tag == 6 {
-            self.pdfView?.formsAnnotationAlign(.disHorizontally)
-        } else if sender.tag == 7 {
-            self.pdfView?.formsAnnotationAlign(.disVertical)
-        }
-    }
-    
     @objc private func _alignmentAction(sender: NSMenuItem) {
         if let data = self._currentItemView {
             self.delegate?.toolbarViewController?(self, menuItemDidClick: data, index: sender.tag, info: nil)
@@ -554,11 +488,6 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         }
     }
     
-    // Form 更多操作
-    @IBAction func formsMoreOperationAction(sender:KMToolbarClickButton) {
-        
-    }
-    
     func toolbarItemFindItemIdentifiers(value : String) -> KMToolbarItemView{
         for item in self.toolbarItems {
             if item.key == value {
@@ -568,6 +497,24 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
         return KMToolbarItemView()
     }
     
+    // MARK: - Private Methods
+    
+    private func _itemSetPromptFlag(item: KMToolbarItemView?) {
+        if let item_ = item {
+            if let identifier = item_.promptIdentifier {
+                item?.isShowPrompt = false
+                KMDataManager.ud_set(true, forKey: identifier)
+            }
+        }
+    }
+    
+    private func _itemSetPromptFlag(itemIdentifier: String?) {
+        let item = self.toolbarItemFindItemIdentifiers(value: itemIdentifier ?? "")
+        self._itemSetPromptFlag(item: item)
+    }
+    
+    
+    //MARK: - NSControl Delegate
     func controlTextDidEndEditing(_ obj: Notification) {
         let textField = obj.object as? NSTextField
         if textField == self.zoomTextField {
@@ -596,34 +543,6 @@ class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
             return false
         }
     }
-    
-    // MARK: - Private Methods
-    
-    private func _itemSetPromptFlag(item: KMToolbarItemView?) {
-        if let item_ = item {
-            if let identifier = item_.promptIdentifier {
-                item?.isShowPrompt = false
-                KMDataManager.ud_set(true, forKey: identifier)
-            }
-        }
-    }
-    
-    private func _itemSetPromptFlag(itemIdentifier: String?) {
-        let item = self.toolbarItemFindItemIdentifiers(value: itemIdentifier ?? "")
-        self._itemSetPromptFlag(item: item)
-    }
-    
-    override func interfaceThemeDidChanged(_ appearance: NSAppearance.Name) {
-        super.interfaceThemeDidChanged(appearance)
-        
-        self.toolbar?.appearance = .init(named: appearance)
-        self.bottomLine.wantsLayer = true
-        if KMAppearance.isDarkMode() {
-            self.bottomLine.layer?.backgroundColor = NSColor.km_init(hex: "#393B3E", alpha: 1).cgColor
-        } else {
-            self.bottomLine.layer?.backgroundColor = NSColor.km_init(hex: "#0000001A").cgColor
-        }
-    }
 }
 
 // MARK: - Public Methods
@@ -2286,6 +2205,7 @@ extension KMToolbarViewController {
     }
 }
 
+//MARK: - NSMenuItemValidation
 extension KMToolbarViewController: NSMenuItemValidation {
     func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {
         if menuItem.action == #selector(toggleCaseInsensitiveSearch) {
@@ -2307,6 +2227,7 @@ extension KMToolbarViewController: NSMenuItemValidation {
     }
 }
 
+//MARK: - Enable & Disable
 extension KMToolbarViewController {
     func isEnable(isEnable: Bool = true) {
         for item in toolbarItems {
@@ -2344,6 +2265,7 @@ extension KMToolbarViewController {
     }
 }
 
+//MARK: - Search
 extension KMToolbarViewController {
     func refreshSearchBarMenu() {
         let words = UserDefaults.standard.array(forKey: "kmDocumentSearchWordArrays") as? [String] ?? []

+ 8 - 0
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -4267,6 +4267,9 @@
 		BB9007212B8DE85B00623B78 /* GeneralPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB9007252B8DE85B00623B78 /* GeneralPreferences.xib */; };
 		BB9007222B8DE85B00623B78 /* GeneralPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB9007252B8DE85B00623B78 /* GeneralPreferences.xib */; };
 		BB9007232B8DE85B00623B78 /* GeneralPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB9007252B8DE85B00623B78 /* GeneralPreferences.xib */; };
+		BB9022C22C60B790008B4865 /* KMToolbarConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9022C12C60B790008B4865 /* KMToolbarConfig.swift */; };
+		BB9022C32C60B790008B4865 /* KMToolbarConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9022C12C60B790008B4865 /* KMToolbarConfig.swift */; };
+		BB9022C42C60B790008B4865 /* KMToolbarConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB9022C12C60B790008B4865 /* KMToolbarConfig.swift */; };
 		BB90E4EA2AF347A700B04B9F /* PreferenceWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB90E4E92AF347A700B04B9F /* PreferenceWindow.xib */; };
 		BB90E4EB2AF347A700B04B9F /* PreferenceWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB90E4E92AF347A700B04B9F /* PreferenceWindow.xib */; };
 		BB90E4EC2AF347A700B04B9F /* PreferenceWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB90E4E92AF347A700B04B9F /* PreferenceWindow.xib */; };
@@ -7223,6 +7226,7 @@
 		BB90071E2B8DDDCF00623B78 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/SyncPreferences.strings; sourceTree = "<group>"; };
 		BB9007202B8DDDDD00623B78 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/SyncPreferences.strings; sourceTree = "<group>"; };
 		BB9007242B8DE85B00623B78 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/GeneralPreferences.xib; sourceTree = "<group>"; };
+		BB9022C12C60B790008B4865 /* KMToolbarConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMToolbarConfig.swift; sourceTree = "<group>"; };
 		BB90E4E92AF347A700B04B9F /* PreferenceWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PreferenceWindow.xib; sourceTree = "<group>"; };
 		BB90E4ED2AF3546500B04B9F /* NSUserDefaultsController+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSUserDefaultsController+KMExtension.swift"; sourceTree = "<group>"; };
 		BB90E4F12AF37F9F00B04B9F /* KMCustomViewButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCustomViewButton.swift; sourceTree = "<group>"; };
@@ -7911,6 +7915,7 @@
 				BB948CFB2BFF6393000FBA01 /* Controller */,
 				BBA00AC22B157BE90043D903 /* View */,
 				89752DF52938A236003FF08E /* PublicKey.swift */,
+				BB9022C12C60B790008B4865 /* KMToolbarConfig.swift */,
 				89752DF129389F82003FF08E /* KMToolbarItem.h */,
 				89752DF029389F81003FF08E /* KMToolbarItem.m */,
 				BB93CDE82AE7B6E100B29C57 /* KMToolbarView.swift */,
@@ -17191,6 +17196,7 @@
 				BB8F4557295AA1270037EA22 /* KMHeaderFooterPropertyInfoController.swift in Sources */,
 				BB6347C42AF24F6300F5438E /* KMBatchoperateConvertCollectionViewItem.swift in Sources */,
 				AD88108D29A760D100178CA1 /* KMRegisterPresenter.swift in Sources */,
+				BB9022C22C60B790008B4865 /* KMToolbarConfig.swift in Sources */,
 				BB146FB4299DC0D100784A6A /* GTLRUtilities.m in Sources */,
 				BBC745F7296178BD0072C2ED /* KMCropTools.swift in Sources */,
 				AD9527DB2952EE700039D2BC /* KMPrintPage_C.swift in Sources */,
@@ -18597,6 +18603,7 @@
 				AD02573B2A8601AA00EAD5D5 /* KMLoginManager.swift in Sources */,
 				ADDF83A22B391A5D00A81A4E /* DSignatureFileListViewController.swift in Sources */,
 				BB96A0B92AFCE45800559E24 /* WaitingView.swift in Sources */,
+				BB9022C32C60B790008B4865 /* KMToolbarConfig.swift in Sources */,
 				ADD1B70B29471FA500C3FFF7 /* KMPrintChoosePresenter.swift in Sources */,
 				BB09477F2C1A9E50005C4DEE /* KMPDFThumbBaseModel.swift in Sources */,
 				AD055E612B85E04C0035F824 /* KMTextWithIconCell.swift in Sources */,
@@ -19649,6 +19656,7 @@
 				BBEC00A6295BD42D00A26C98 /* KMHeaderFooterPageInfoView.swift in Sources */,
 				AD867F9E29D9853200F00440 /* KMBOTAOutlineRowView.swift in Sources */,
 				BBC3482B29559B22008D2CD1 /* KMBackgroundListCell.swift in Sources */,
+				BB9022C42C60B790008B4865 /* KMToolbarConfig.swift in Sources */,
 				F34BF93729530708002C25A2 /* NSImage+PDFListView.m in Sources */,
 				BB4A94A62B04DA0C00940F8B /* KMGOCRManagerNew.swift in Sources */,
 				9FAAA32C290BD01D0046FFCE /* KMHomeHistoryFileViewController.swift in Sources */,

+ 68 - 20
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -4116,22 +4116,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "F2266A3B-8786-4B97-B4AD-42F5585867FF"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "267"
-            endingLineNumber = "267"
-            landmarkName = "_menuItemAction(_:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -4190,10 +4174,42 @@
             filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2393"
-            endingLineNumber = "2393"
+            startingLineNumber = "2315"
+            endingLineNumber = "2315"
             landmarkName = "toggleCaseInsensitiveSearch(_:)"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "627C85A9-1775-4D35-AABA-7E7D47370B2C - 26a41b846bf0c000"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "LynxPDF_Editor.KMToolbarViewController.toggleCaseInsensitiveSearch(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2318"
+                  endingLineNumber = "2318"
+                  offsetFromSymbolStart = "276">
+               </Location>
+               <Location
+                  uuid = "627C85A9-1775-4D35-AABA-7E7D47370B2C - 26a41b846bf0c3a7"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "LynxPDF_Editor.KMToolbarViewController.toggleCaseInsensitiveSearch(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2315"
+                  endingLineNumber = "2315"
+                  offsetFromSymbolStart = "144">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
       <BreakpointProxy
@@ -4206,10 +4222,42 @@
             filePath = "PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "2402"
-            endingLineNumber = "2402"
+            startingLineNumber = "2324"
+            endingLineNumber = "2324"
             landmarkName = "searchPDFKeyWord(_:)"
             landmarkType = "7">
+            <Locations>
+               <Location
+                  uuid = "3A5CBFD7-AC86-4C54-9157-1524B6A0D734 - 8ebf491945137533"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "LynxPDF_Editor.KMToolbarViewController.searchPDFKeyWord(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2326"
+                  endingLineNumber = "2326"
+                  offsetFromSymbolStart = "408">
+               </Location>
+               <Location
+                  uuid = "3A5CBFD7-AC86-4C54-9157-1524B6A0D734 - 8ebf491945137575"
+                  shouldBeEnabled = "Yes"
+                  ignoreCount = "0"
+                  continueAfterRunningActions = "No"
+                  symbolName = "LynxPDF_Editor.KMToolbarViewController.searchPDFKeyWord(__C.NSMenuItem) -&gt; ()"
+                  moduleName = "LynxPDF Editor"
+                  usesParentBreakpointCondition = "Yes"
+                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift"
+                  startingColumnNumber = "9223372036854775807"
+                  endingColumnNumber = "9223372036854775807"
+                  startingLineNumber = "2324"
+                  endingLineNumber = "2324"
+                  offsetFromSymbolStart = "80">
+               </Location>
+            </Locations>
          </BreakpointContent>
       </BreakpointProxy>
    </Breakpoints>