Browse Source

【2025】【Layout-View】逻辑串接处理

niehaoyu 4 months ago
parent
commit
e2e8fad4de

+ 1 - 8
PDF Office/KMComponentLibrary/KMComponentLibrary/View/Controller/ComponentCSelector.swift

@@ -166,20 +166,13 @@ public class ComponentCSelector: ComponentBaseXibView {
     public override func mouseDown(with event: NSEvent) {
         super.mouseDown(with: event)
         
-        if properties.state == .pressed {
-            properties.state = .normal
-        } else {
-            properties.state = .pressed
-        }
+        properties.state = .pressed
         
         refreshUI()
     }
     
     public override func mouseUp(with event: NSEvent) {
         super.mouseUp(with: event)
-         
-        properties.state = .normal
-        refreshUI()
         
         if let target = target, let action = action {
             _ = target.perform(action, with: self)

+ 2 - 2
PDF Office/PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m

@@ -265,8 +265,8 @@ static inline CPDFAreaOfInterest CAreaOfInterestForResizeHandle(CRectEdges mask,
         [self updateActiveAnnotations:@[]];
         [super mouseDown:theEvent];
     } else if ([self isSupportSelectAnnotation] && !(area & CPDFTextArea)) {
-//        [self updateActiveAnnotations:@[]];
-//        [self doDragBoundsWithEvent:theEvent];
+        [self updateActiveAnnotations:@[]];
+        [self doDragBoundsWithEvent:theEvent];
         [super mouseDown:theEvent];
     } else if ([self doDragTextWithEvent:theEvent] == NO) {
         if(self.activeAnnotations.count >0) {

+ 110 - 11
PDF Office/PDF Master/KMClass/KMPDFViewController/KMNDisplayViewController/KMNDisplayViewController.swift

@@ -10,8 +10,17 @@ import KMComponentLibrary
 
 @objc protocol KMNDisplayViewControllerDelegate: AnyObject {
     
+    //
+    @objc optional func displayViewControllerDidDisplayModeChanged(_ controller: KMNDisplayViewController)
+
+    //阅读模式
     @objc optional func displayViewControllerDidReadModeUpdated(_ controller: KMNDisplayViewController)
+    
+    //PPT
+    @objc optional func displayViewControllerDidGotoSlideShow(_ controller: KMNDisplayViewController)
  
+    //SplitView
+    @objc optional func displayViewControllerDidSplitModeChanged(_ controller: KMNDisplayViewController)
 }
 
 class KMNDisplayViewController: NSViewController {
@@ -35,7 +44,8 @@ class KMNDisplayViewController: NSViewController {
     @IBOutlet var noSplitSelector: ComponentCSelector!
     @IBOutlet var verticalSelector: ComponentCSelector!
     @IBOutlet var horizontalSelector: ComponentCSelector!
-     
+    @IBOutlet var splitViewBGHeightConst: NSLayoutConstraint!
+    
     @IBOutlet var themesBGView: NSView!
     @IBOutlet var themesLabel: NSTextField!
     @IBOutlet var themesContendView: NSView!
@@ -50,6 +60,8 @@ class KMNDisplayViewController: NSViewController {
         // Do view setup here.
         
         setupPropertys()
+        
+        reloadData()
     }
     
     func setupPropertys() {
@@ -115,74 +127,150 @@ class KMNDisplayViewController: NSViewController {
         let book = self.pdfView?.displaysAsBook ?? false
         
         singlePageSelector.properties.state = .normal
-        singlePageSelector.properties.state = .normal
+        twoPageSelector.properties.state = .normal
         bookSelector.properties.state = .normal
+        readModeSelector.properties.state = .normal
+        fullScreenSelector.properties.state = .normal
+        slideShowSelector.properties.state = .normal
         
+        bookSelector.properties.state = .normal
         if mode == .singlePage {
             singlePageSelector.properties.state = .pressed
-            
             continueScrollCheckBox.properties.checkboxType = .normal
             
-            
         } else if mode == .singlePageContinuous {
             singlePageSelector.properties.state = .pressed
             continueScrollCheckBox.properties.checkboxType = .selected
             
         } else if mode == .twoUp {
+            bookSelector.properties.state = book ? .pressed : .normal
+            twoPageSelector.properties.state = book ? .normal : .pressed
             
-            bookSelector.properties.state = .pressed
             continueScrollCheckBox.properties.checkboxType = .normal
             
         } else if mode == .twoUpContinuous {
-            bookSelector.properties.state = .pressed
-            continueScrollCheckBox.properties.checkboxType = .selected
+            bookSelector.properties.state = book ? .pressed : .normal
+            twoPageSelector.properties.state = book ? .normal : .pressed
             
+            continueScrollCheckBox.properties.checkboxType = .selected
         }
         
         let pageBreaks = self.pdfView?.displaysPageBreaks ?? false
-        self.pageBreaksCheckBox.properties.checkboxType = pageBreaks ? .selected : .normal
+        pageBreaksCheckBox.properties.checkboxType = pageBreaks ? .selected : .normal
+        
+        singlePageSelector.reloadData()
+        twoPageSelector.reloadData()
+        bookSelector.reloadData()
+        readModeSelector.reloadData()
+        fullScreenSelector.reloadData()
+        slideShowSelector.reloadData()
+        
+        continueScrollCheckBox.reloadData()
+        pageBreaksCheckBox.reloadData()
+        
+        //SplitView
+        noSplitSelector.properties.state = .normal
+        verticalSelector.properties.state = .normal
+        horizontalSelector.properties.state = .normal
+        
+        if pdfView?.viewSplitMode == .disable {
+            noSplitSelector.properties.state = .pressed
+        } else if pdfView?.viewSplitMode == .horizontal {
+            horizontalSelector.properties.state = .pressed
+        } else if pdfView?.viewSplitMode == .vertical {
+            verticalSelector.properties.state = .pressed
+        }
+        
+        noSplitSelector.reloadData()
+        horizontalSelector.reloadData()
+        verticalSelector.reloadData()
+        
+        if pdfView?.viewSplitMode == .disable {
+             splitViewBGHeightConst.constant = 90
+        } else {
+            if let filePath = viewManager?.splitPDFFilePath {
+                splitViewBGHeightConst.constant = 246
+                
+            } else {
+                splitViewBGHeightConst.constant = 202
+                
+            }
+        }
+        
+        //Themes
+        
+        
         
     }
     
     //MARK: - Action
     @objc func selectorClicked(_ sender: ComponentCSelector) {
         if sender == singlePageSelector {
+            singlePageSelector.properties.state = .pressed
+            twoPageSelector.properties.state = .normal
+            bookSelector.properties.state = .normal
             
             updatePDFViewDisplayInfo()
+            
         } else if sender == twoPageSelector {
+            singlePageSelector.properties.state = .normal
+            twoPageSelector.properties.state = .pressed
+            bookSelector.properties.state = .normal
             
             updatePDFViewDisplayInfo()
+             
         } else if sender == bookSelector {
+            singlePageSelector.properties.state = .normal
+            twoPageSelector.properties.state = .normal
+            bookSelector.properties.state = .pressed
             
             updatePDFViewDisplayInfo()
+             
         } else if sender == readModeSelector {
             if let manager = viewManager {
                 manager.isPDFReadMode = !manager.isPDFReadMode
             }
+            readModeSelector.properties.state = .normal
+            
             delegate?.displayViewControllerDidReadModeUpdated?(self)
             
         } else if sender == fullScreenSelector {
+            fullScreenSelector.properties.state = .normal
+            
+            view.window?.toggleFullScreen(nil)
             
         } else if sender == slideShowSelector {
+            slideShowSelector.properties.state = .normal
             
         } else if sender == noSplitSelector {
+            noSplitSelector.properties.state = .pressed
+            verticalSelector.properties.state = .normal
+            horizontalSelector.properties.state = .normal
             
         } else if sender == verticalSelector {
+            noSplitSelector.properties.state = .normal
+            verticalSelector.properties.state = .pressed
+            horizontalSelector.properties.state = .normal
             
         } else if sender == horizontalSelector {
+            noSplitSelector.properties.state = .normal
+            verticalSelector.properties.state = .normal
+            horizontalSelector.properties.state = .pressed
             
         }
         
+        reloadData()
     }
     
     @objc func checkBoxClicked(_ sender: ComponentCheckBox) {
         if sender == continueScrollCheckBox {
-            updatePDFViewDisplayInfo()
             
         } else if sender == pageBreaksCheckBox {
             pdfView?.displaysPageBreaks = pageBreaksCheckBox.properties.checkboxType == .selected ? true : false
+            
         }
-        
+        updatePDFViewDisplayInfo()
+        reloadData()
     }
     
     func updatePDFViewDisplayInfo() {
@@ -209,7 +297,18 @@ class KMNDisplayViewController: NSViewController {
             } else {
                 pdfView?.displayDirection = .horizontal
             }
-            
+        }
+        
+        delegate?.displayViewControllerDidDisplayModeChanged?(self)
+    }
+    
+    func updatePDFSplitViewInfo() {
+        if noSplitSelector.properties.state == .pressed {
+            pdfView?.viewSplitMode = .disable
+        } else if verticalSelector.properties.state == .pressed {
+            pdfView?.viewSplitMode = .vertical
+        } else if horizontalSelector.properties.state == .pressed {
+            pdfView?.viewSplitMode = .horizontal
         }
     }
 

+ 1 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMNDisplayViewController/KMNDisplayViewController.xib

@@ -19,6 +19,7 @@
                 <outlet property="readModeSelector" destination="YYE-Mo-YD2" id="AuT-we-ybO"/>
                 <outlet property="singlePageSelector" destination="90v-SS-CcW" id="FtK-nU-6W0"/>
                 <outlet property="slideShowSelector" destination="Cgx-XQ-hNs" id="hWa-ag-eAJ"/>
+                <outlet property="splitViewBGHeightConst" destination="8Rn-lw-8w1" id="1vZ-WV-dsl"/>
                 <outlet property="splitViewBGView" destination="LAG-N5-iQ3" id="NWE-79-AdS"/>
                 <outlet property="splitViewLabel" destination="kaU-qa-1I7" id="JiC-SI-iJ2"/>
                 <outlet property="themesBGView" destination="zPv-9H-oej" id="jum-YR-HEE"/>

+ 16 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/KMPDFViewController.swift

@@ -39,6 +39,7 @@ class KMPDFViewController: NSViewController {
     //页面编辑
     private var pageEditViewController: KMNPageEditViewController?
     
+    //DisplaySetting
     private var displaySettingController: KMNDisplayViewController?
 
     override func viewDidLoad() {
@@ -153,6 +154,8 @@ class KMPDFViewController: NSViewController {
             displaySettingController?.view.autoresizingMask = [.height, .maxXMargin]
             bottomContendBox.addSubview(displaySettingController!.view, positioned: .above, relativeTo: infoContendBox)
             displaySettingController?.pdfView = self.pdfView
+            displaySettingController?.viewManager = self.viewManager
+            displaySettingController?.delegate = self
             
             displaySettingController?.reloadData()
             
@@ -246,6 +249,19 @@ extension KMPDFViewController: KMPDFToolbarControllerDelegate {
     }
 }
 
+
+//MARK: - KMNDisplayViewControllerDelegate代理
+extension KMPDFViewController: KMNDisplayViewControllerDelegate {
+    func displayViewControllerDidDisplayModeChanged(_ controller: KMNDisplayViewController) {
+        pdfView.layoutDocumentView()
+        
+    }
+    
+    func displayViewControllerDidReadModeUpdated(_ controller: KMNDisplayViewController) {
+        
+    }
+}
+
 //MARK: - CPDFViewDelegate PDFView代理
 extension KMPDFViewController: CPDFViewDelegate {
     func pdfViewDocumentDidLoaded(_ pdfView: CPDFView!) {

+ 16 - 80
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -516,22 +516,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "093499D7-C3EB-4DC4-A87B-FBDCFFC17AA8"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/SideBar/SideBarItem/ComponentSideBarItem.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "133"
-            endingLineNumber = "133"
-            landmarkName = "mouseUp(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -596,22 +580,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "D144375A-0CDF-4946-AEDA-ACD9D0D590CA"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Controller/ComponentCSelector.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "179"
-            endingLineNumber = "179"
-            landmarkName = "mouseUp(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -1092,22 +1060,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "C6F58865-A470-40C1-8FEC-8F2135D6E221"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/KMClass/KMHomeViewController/Views/KMHomeRightView/HistoryFilesItems/KMHistoryFileListItem.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "164"
-            endingLineNumber = "164"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -1796,22 +1748,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "B8EE188C-EC07-4798-8812-4E16DD15033E"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/SideBar/SideBarItem/ComponentSideBarItem.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "128"
-            endingLineNumber = "128"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -2164,22 +2100,6 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "AE85B862-3823-47F0-A298-50D90B0DF23A"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "KMComponentLibrary/KMComponentLibrary/View/Controller/ComponentCSelector.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "167"
-            endingLineNumber = "167"
-            landmarkName = "mouseDown(with:)"
-            landmarkType = "7">
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent
@@ -2356,5 +2276,21 @@
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "B2443016-3D23-451C-B534-FB73BF3726E9"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "PDF Master/Class/PDFWindowController/PDFListView/CPDFListViewExtension/CPDFListView+Event.m"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "5303"
+            endingLineNumber = "5303"
+            landmarkName = "-doDragBoundsWithEvent:"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
    </Breakpoints>
 </Bucket>