Browse Source

【Toolbar】补充页面范围Item

tangchao 5 months ago
parent
commit
6e0a8532c6

+ 12 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/KMToolbarViewController.swift

@@ -686,6 +686,7 @@ extension KMToolbarViewController : KMToolbarViewDelegate,NSToolbarItemValidatio
             if let model = KMDataManager.toolbar_getData() {
                 return model.leftCellIdentifiers ?? []
             }
+//            KMDocumentPageInputToolbarItemIdentifier
             return [KMLeftControlToolbarItemIdentifier,
                     KMNewToolbarSpaceItemIdentifier, KMDocumentZoomViewToolbarItemIdentifier,
                     KMDocumentPreviousPageToolbarItemIdentifier, KMDocumentHomeToolbarItemIdentifier]
@@ -1525,6 +1526,17 @@ extension KMToolbarViewController {
             let menuItem = NSMenuItem.init(title: NSLocalizedString("Search", comment: ""), action: #selector(_menuItemAction), target: self)
             menuItem.representedObject = identifier
             item?.menuFormRepresentation = menuItem
+        } else if identifier == KMDocumentPageInputToolbarItemIdentifier {
+            item?.titleName = NSLocalizedString("Page", comment: "")
+//            item?.target = self
+            
+            let view = KMToolbarPageInputItemView()
+            item?.customizeView = view
+            view.totalNumber = Int((self.pdfView?.document.pageCount ?? 0) + 1)
+            
+//            let menuItem = NSMenuItem.init(title: NSLocalizedString("Search", comment: ""), action: #selector(_menuItemAction), target: self)
+//            menuItem.representedObject = identifier
+//            item?.menuFormRepresentation = menuItem
         } else if identifier == KMRightControlToolbarItemIdentifier {
             item?.image = NSImage(named: "KMImageNameUXIconBtnTriRightNor")
             item?.titleName = NSLocalizedString("Properties", comment: "")

+ 6 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/Model/KMToolbarConfigModel.swift

@@ -437,6 +437,12 @@ extension KMToolbarConfigModel {
             titleLabel.font = KMToolbarMainItemView.textFont
 
             item?.customizeView = view
+        } else if identifier == KMDocumentPageInputToolbarItemIdentifier {
+            item?.titleName = NSLocalizedString("Page", comment: "")
+            
+            let view = KMToolbarPageInputItemView()
+            item?.customizeView = view
+            view.totalNumber = 0
         } else if identifier == KMRightControlToolbarItemIdentifier {
             item?.image = NSImage(named: "KMImageNameUXIconBtnTriRightNor")
             item?.titleName = NSLocalizedString("Properties", comment: "")

+ 2 - 1
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/PublicKey.swift

@@ -30,6 +30,7 @@ let KMDocumentShareToolbarItemIdentifier = "KMDocumentShareToolbarItemIdentifier
 let KMDocumentSearchToolbarItemIdentifier = "KMDocumentSearchToolbarItemIdentifier"
 let KMRightControlToolbarItemIdentifier  = "KMRightControlToolbarItemIdentifier"
 let KMDocumentAIToolsToolbarItemIdentifier = "KMDocumentAIToolsToolbarItemIdentifier"
+let KMDocumentPageInputToolbarItemIdentifier = "KMDocumentPageInputToolbarItemIdentifier"
 
 let KMDocumentPreviousBackToolbarItemIdentifier = "previousBackItemIdentifier"
 let KMDocumentFirstLastToolbarItemIdentifier = "firstLastItemIdentifier"
@@ -44,7 +45,7 @@ let mainToolIdentifiers = [KMLeftControlToolbarItemIdentifier,
                            KMDocumentShareToolbarItemIdentifier, KMDocumentSearchToolbarItemIdentifier, KMRightControlToolbarItemIdentifier,
                            KMDocumentPreviousBackToolbarItemIdentifier, KMDocumentFirstLastToolbarItemIdentifier,
 //                           KMDocumentPageIndicatorToolbarItemIdentifier,
-                           KMDocumentPresentationToolbarItemIdentifier]
+                           KMDocumentPresentationToolbarItemIdentifier, KMDocumentPageInputToolbarItemIdentifier]
 
 /// annotation
 //

+ 97 - 0
PDF Office/PDF Master/Class/PDFWindowController/Toolbar/View/KMToolbarPageInputItemView.swift

@@ -0,0 +1,97 @@
+//
+//  KMToolbarPageInputItemView.swift
+//  PDF Reader Pro
+//
+//  Created by User-Tangchao on 2024/10/12.
+//
+
+import Cocoa
+
+class KMToolbarPageInputItemView: NSView {
+    private lazy var contentView_: NSView = {
+        let view = NSView()
+        return view
+    }()
+    
+    private lazy var inputBox_: NSBox = {
+        let box = NSBox()
+        box.boxType = .custom
+        return box
+    }()
+    
+    private lazy var inputTF_: NSTextField = {
+        let view = NSTextField()
+        view.formatter = NumberFormatter()
+        view.drawsBackground = false
+        view.isBordered = false
+        view.focusRingType = .none
+        return view
+    }()
+    
+    private lazy var numberLabel_: NSTextField = {
+        let view = NSTextField(labelWithString: "")
+        view.font = KMToolbarMainItemView.textFont
+        view.textColor = KMAppearance.subtitleColor()
+        return view
+    }()
+    
+    private lazy var titleLabel_: NSTextField = {
+        let view = NSTextField(labelWithString: NSLocalizedString("Page", comment: ""))
+        view.font = KMToolbarMainItemView.textFont
+        view.textColor = KMAppearance.subtitleColor()
+        return view
+    }()
+    
+    var totalNumber: Int = 0 {
+        didSet {
+            self.numberLabel_.stringValue = "/" + "\(self.totalNumber)"
+        }
+    }
+    
+    convenience init() {
+        self.init(frame: NSMakeRect(0, 0, 80, 40))
+    }
+    
+    override init(frame frameRect: NSRect) {
+        super.init(frame: frameRect)
+        
+        self.initSubviews()
+    }
+    
+    required init?(coder: NSCoder) {
+        super.init(coder: coder)
+        
+        self.initSubviews()
+    }
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+
+        // Drawing code here.
+    }
+    
+    func initSubviews() {
+        self.addSubview(self.contentView_)
+                
+        self.contentView_.addSubview(self.inputBox_)
+        self.contentView_.addSubview(self.numberLabel_)
+        self.contentView_.addSubview(self.titleLabel_)
+        
+        self.inputBox_.contentView?.addSubview(self.inputTF_)
+        
+        self.contentView_.km_add_inset_constraint()
+        self.inputBox_.km_add_leading_constraint(constant: 2)
+        self.inputBox_.km_add_top_constraint(constant: 2)
+        self.inputBox_.km_add_width_constraint(constant: 45)
+        self.inputBox_.km_add_height_constraint(constant: 22)
+        self.numberLabel_.km_add_leading_constraint(equalTo: self.inputBox_, attribute: .trailing, constant: 2)
+        self.numberLabel_.km_add_centerY_constraint(equalTo: self.inputBox_)
+        self.titleLabel_.km_add_top_constraint(equalTo: self.inputBox_, attribute: .bottom, constant: 2)
+        self.titleLabel_.km_add_centerX_constraint()
+        
+        self.inputTF_.km_add_leading_constraint()
+        self.inputTF_.km_add_centerX_constraint()
+        self.inputTF_.km_add_centerY_constraint()
+    }
+    
+}

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

@@ -61,6 +61,9 @@
 		658FDBB52C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
 		658FDBB62C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
 		658FDBB72C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */; };
+		65A971282CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A971272CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift */; };
+		65A971292CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A971272CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift */; };
+		65A9712A2CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65A971272CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift */; };
 		65AD98892CB615F000927779 /* KMNoteFilterStateViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AD98882CB615F000927779 /* KMNoteFilterStateViewModel.swift */; };
 		65AD988A2CB615F000927779 /* KMNoteFilterStateViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AD98882CB615F000927779 /* KMNoteFilterStateViewModel.swift */; };
 		65AD988B2CB615F000927779 /* KMNoteFilterStateViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65AD98882CB615F000927779 /* KMNoteFilterStateViewModel.swift */; };
@@ -5659,6 +5662,7 @@
 		658FDBAC2C9D4B9600EFA72E /* KMNoteReplyCellView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNoteReplyCellView.xib; sourceTree = "<group>"; };
 		658FDBB02C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNoteFilterStateCollevtionViewItem.swift; sourceTree = "<group>"; };
 		658FDBB12C9D90CE00EFA72E /* KMNoteFilterStateCollevtionViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNoteFilterStateCollevtionViewItem.xib; sourceTree = "<group>"; };
+		65A971272CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMToolbarPageInputItemView.swift; sourceTree = "<group>"; };
 		65AD98882CB615F000927779 /* KMNoteFilterStateViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNoteFilterStateViewModel.swift; sourceTree = "<group>"; };
 		65AED4B22CAA55A8005C44B3 /* KMMergeViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergeViewModel.swift; sourceTree = "<group>"; };
 		65C9CAE62CA16231009794E5 /* libpaddle2onnx.1.0.7.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libpaddle2onnx.1.0.7.dylib; sourceTree = "<group>"; };
@@ -13538,6 +13542,7 @@
 				BBF98C332C0EE46100436CC7 /* KMToolbarCustomItemView.swift */,
 				BBA00AC32B157C880043D903 /* KMToolbarZoomItemView.swift */,
 				BBD3C8B52B2C438F00EB0867 /* KMToolbarPreviousNextItemView.swift */,
+				65A971272CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift */,
 				BBDE52BA2BF3676C000545B2 /* KMPresentTableViewCell.swift */,
 				BB072D5C2C05AC8F00779B45 /* KMToolbarConfigViewItem.swift */,
 				BB66472A2C06DD9C00924EE0 /* KMToolbarConfigTBItemView.swift */,
@@ -16754,6 +16759,7 @@
 				BB99ACCF292E2AEF0048AFD9 /* KMMergeCollectionViewItem.swift in Sources */,
 				BB8B99FD2B355E7600A066EC /* KMLeftSideViewController+Action.swift in Sources */,
 				BBF729AF2B1962C900576AC5 /* KMRemoveHeaderFooterQueue.swift in Sources */,
+				65A971282CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */,
 				BB3A42962B4BC72C006D0642 /* KMNotesPanelController.swift in Sources */,
 				BB7648EC29ECEEF400931039 /* KMAppearance.swift in Sources */,
 				BB8B17322907B63D001C5EA5 /* CipherTextView.swift in Sources */,
@@ -18264,6 +18270,7 @@
 				BB147024299DC0D100784A6A /* OIDResponseTypes.m in Sources */,
 				BB162E93294FFE020088E9D1 /* KMWatermarkModel.swift in Sources */,
 				BB03D6992B0221FF008C9976 /* NSImage+KMExtension.swift in Sources */,
+				65A971292CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */,
 				ADE86AE72B0AF50B00414DFA /* KMCompareCoveringSettingWindowController.swift in Sources */,
 				BB71853E2C2B0A7C00C1156B /* KMEditPDFToolbarView.swift in Sources */,
 				AD9527CB295297B70039D2BC /* KMPrintModel.swift in Sources */,
@@ -19679,6 +19686,7 @@
 				BB0A551F2A30793F00B6E84B /* KMDesignTextField.swift in Sources */,
 				BB146FCE299DC0D100784A6A /* GTMSessionUploadFetcher.m in Sources */,
 				BB10FAF82AFE2C2900F18D65 /* KMNumberArrayFormatter.swift in Sources */,
+				65A9712A2CBA1792008DB0F9 /* KMToolbarPageInputItemView.swift in Sources */,
 				BB3198142AC5142900107371 /* NSMenu+KMExtension.swift in Sources */,
 				9F5752EB2B58FF73005DC303 /* KMAnnotationFromViewController.swift in Sources */,
 				BB89724F294C1DCE0045787C /* KMWatermarkAdjectiveListTableCellView.swift in Sources */,