Bläddra i källkod

【2025】【Markup】图片列表预处理

niehaoyu 3 månader sedan
förälder
incheckning
535a0fc803
18 ändrade filer med 515 tillägg och 1152 borttagningar
  1. 5 5
      PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Watermark/Views/KMNWatermarkPropertyController.xib
  2. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/EditPDF/KMEditPDFTextPropertyViewController.xib
  3. 2 2
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/Rectangle/KMRectangleController.xib
  4. 9 90
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMAnnotationStampViewController.swift
  5. 12 12
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMAnnotationStampViewController.xib
  6. 0 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/CreateStamp/KMDynamicStampViewController.swift
  7. 6 6
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMDynamicStampViewController.xib
  8. 7 32
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/CreateStamp/View/KMAnnotationStamp.swift
  9. 0 21
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.h
  10. 0 237
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.m
  11. 0 524
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.xib
  12. 17 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampController.swift
  13. 161 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampController.xib
  14. 17 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampListController.swift
  15. 92 0
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampListController.xib
  16. 147 141
      PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampManager.swift
  17. 38 32
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj
  18. 0 48
      PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

+ 5 - 5
PDF Office/PDF Master/KMClass/KMPDFViewController/EditTool/Watermark/Views/KMNWatermarkPropertyController.xib

@@ -68,7 +68,7 @@
                                         <constraint firstAttribute="width" constant="24" id="V6G-e8-fcR"/>
                                     </constraints>
                                 </customView>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jkG-Uv-4gv">
+                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jkG-Uv-4gv">
                                     <rect key="frame" x="88" y="12" width="98" height="16"/>
                                     <textFieldCell key="cell" lineBreakMode="clipping" title="Add Watermark" id="7Za-QS-Sai">
                                         <font key="font" usesAppearanceFont="YES"/>
@@ -210,7 +210,7 @@
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="5EC-ec-yKw">
                                             <rect key="frame" x="0.0" y="184" width="232" height="40"/>
                                             <subviews>
-                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Zph-wi-6i3">
+                                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Zph-wi-6i3">
                                                     <rect key="frame" x="-2" y="12" width="77" height="16"/>
                                                     <textFieldCell key="cell" lineBreakMode="clipping" title="Appearance" id="34Z-Ne-M34">
                                                         <font key="font" usesAppearanceFont="YES"/>
@@ -325,7 +325,7 @@
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="wp3-Sk-MRP">
                                             <rect key="frame" x="0.0" y="152" width="232" height="40"/>
                                             <subviews>
-                                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gTg-8Q-bmp">
+                                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gTg-8Q-bmp">
                                                     <rect key="frame" x="-2" y="12" width="85" height="16"/>
                                                     <textFieldCell key="cell" lineBreakMode="clipping" title="Position(mm)" id="oaL-Vx-zTi">
                                                         <font key="font" usesAppearanceFont="YES"/>
@@ -347,7 +347,7 @@
                                                 <constraint firstAttribute="height" constant="72" id="pLe-tX-JlT"/>
                                             </constraints>
                                         </customView>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qVQ-To-3Au">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="qVQ-To-3Au">
                                             <rect key="frame" x="119" y="128" width="17" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="X:" id="zUo-XG-CKN">
                                                 <font key="font" usesAppearanceFont="YES"/>
@@ -362,7 +362,7 @@
                                                 <constraint firstAttribute="width" constant="96" id="mzL-IX-KEf"/>
                                             </constraints>
                                         </customView>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yrr-gh-114">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yrr-gh-114">
                                             <rect key="frame" x="120" y="88" width="16" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="Y:" id="kZA-Cu-HgA">
                                                 <font key="font" usesAppearanceFont="YES"/>

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/EditPDF/KMEditPDFTextPropertyViewController.xib

@@ -47,7 +47,7 @@
                                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="jhn-Mk-BkX">
                                         <rect key="frame" x="0.0" y="192" width="232" height="40"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zK8-fV-oTX">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zK8-fV-oTX">
                                                 <rect key="frame" x="-2" y="12" width="32" height="16"/>
                                                 <textFieldCell key="cell" lineBreakMode="clipping" title="Font" id="wxZ-VW-WnU">
                                                     <font key="font" usesAppearanceFont="YES"/>
@@ -162,7 +162,7 @@
                                     <customView translatesAutoresizingMaskIntoConstraints="NO" id="vf7-gp-Lxh">
                                         <rect key="frame" x="0.0" y="72" width="232" height="40"/>
                                         <subviews>
-                                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="msY-3y-OxD">
+                                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="msY-3y-OxD">
                                                 <rect key="frame" x="-2" y="12" width="37" height="16"/>
                                                 <textFieldCell key="cell" lineBreakMode="clipping" title="Color" id="qen-aV-XFk">
                                                     <font key="font" usesAppearanceFont="YES"/>

+ 2 - 2
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/Rectangle/KMRectangleController.xib

@@ -40,7 +40,7 @@
                                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="m8G-hU-200">
                                     <rect key="frame" x="0.0" y="112" width="232" height="40"/>
                                     <subviews>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BYh-j3-6OU">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BYh-j3-6OU">
                                             <rect key="frame" x="-2" y="12" width="37" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="Color" id="8GZ-Jb-rmT">
                                                 <font key="font" usesAppearanceFont="YES"/>
@@ -148,7 +148,7 @@
                                 <customView translatesAutoresizingMaskIntoConstraints="NO" id="8ZO-BU-dqU">
                                     <rect key="frame" x="0.0" y="72" width="232" height="40"/>
                                     <subviews>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="drV-ji-77x">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="drV-ji-77x">
                                             <rect key="frame" x="-2" y="12" width="30" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="Line" id="cQ9-8n-XGk">
                                                 <font key="font" usesAppearanceFont="YES"/>

+ 9 - 90
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMAnnotationStampViewController.swift

@@ -7,27 +7,6 @@
 
 import Cocoa
 
-enum KMCreateStampType: UInt {
-    case standard = 0
-    case custom
-    case dynamic
-}
-
-enum KMAnnotationStampCreateType: UInt {
-    case type_default = 0
-    case signature
-}
-
-struct KMPDFAnnotationSignatureType: OptionSet {
-    let rawValue: UInt
-    static let ink = KMPDFAnnotationSignatureType(rawValue: 1 << 0)
-    static let text = KMPDFAnnotationSignatureType(rawValue: 1 << 1)
-    static let image = KMPDFAnnotationSignatureType(rawValue: 1 << 2)
-}
-
-let KMPDFDynamicStampDateStyleKey1 = "km_pdfview_dynamic_stamp_date_style"
-let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
-
 @objcMembers class KMAnnotationStampViewController: NSViewController, NSTextViewDelegate, NSComboBoxDelegate, NSTableViewDelegate, NSTableViewDataSource {
     
     weak var pdfView: CPDFListView?
@@ -281,12 +260,10 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         }
         standardLabel.stringValue = NSLocalizedString("Standard", comment: "")
         standardLabel.textColor = KMAppearance.Layout.h1Color()
-        
-//        dynamicBox.fillColor = KMAppearance.Layout.l1Color()
+         
         self.dynamicBoxNew?.fillColor = KMAppearance.Layout.l1Color()
         self.dynamicBoxNew?.downCallback = { [weak self] downEntered, mouseBox, event in
-//        dynamicBox.downCallback = { [weak self] downEntered, mouseBox, event in
-            guard let blockSelf = self else { return }
+             guard let blockSelf = self else { return }
             if downEntered && !IAPProductsManager.default().isAvailableAllFunction() {
                 let winC = KMPurchaseCompareWindowController.sharedInstance()
                 winC?.kEventName = "Reading_DynamicStamp_BuyNow"
@@ -299,15 +276,11 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
                 blockSelf.stampType = .dynamic
             }
         }
-//        dynamicLabel.stringValue = NSLocalizedString("Dynamic", comment: "")
-//        dynamicLabel.textColor = KMAppearance.Layout.h1Color()
         self.dynamicLabelNew?.stringValue = NSLocalizedString("Dynamic", comment: "")
         self.dynamicLabelNew?.textColor = KMAppearance.Layout.h1Color()
         
-//        customBox.fillColor = KMAppearance.Layout.l1Color()
         self.customBoxNew?.fillColor = KMAppearance.Layout.l1Color()
         self.customBoxNew?.downCallback = { [weak self] downEntered, mouseBox, event in
-//        customBox.downCallback = { [weak self] downEntered, mouseBox, event in
             guard let blockSelf = self else { return }
             if downEntered && !IAPProductsManager.default().isAvailableAllFunction() {
                 let winC = KMPurchaseCompareWindowController.sharedInstance()
@@ -321,8 +294,6 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
                 blockSelf.stampType = .custom
             }
         }
-//        customLabel.stringValue = NSLocalizedString("Custom", comment: "")
-//        customLabel.textColor = KMAppearance.Layout.h1Color()
         self.customLabelNew?.stringValue = NSLocalizedString("Custom", comment: "")
         self.customLabelNew?.textColor = KMAppearance.Layout.h1Color()
         
@@ -552,12 +523,8 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         dateComboBox.delegate = nil
         standardBox.fillColor = KMAppearance.Layout.l_1Color()
         standardLabel.textColor = KMAppearance.Layout.h1Color()
-//        customBox.fillColor = KMAppearance.Interactive.a0Color()
-//        customLabel.textColor = KMAppearance.Layout.w0Color()
         self.customBoxNew?.fillColor = KMAppearance.Interactive.a0Color()
         self.customLabelNew?.textColor = KMAppearance.Layout.w0Color()
-//        dynamicBox.fillColor = KMAppearance.Layout.l_1Color()
-//        dynamicLabel.textColor = KMAppearance.Layout.h1Color()
         self.dynamicBoxNew?.fillColor = KMAppearance.Layout.l_1Color()
         self.dynamicLabelNew?.textColor = KMAppearance.Layout.h1Color()
         
@@ -577,12 +544,8 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         
         standardBox.fillColor = KMAppearance.Layout.l_1Color()
         standardLabel.textColor = KMAppearance.Layout.h1Color()
-//        customBox.fillColor = KMAppearance.Layout.l_1Color()
-//        customLabel.textColor = KMAppearance.Layout.h1Color()
         self.customBoxNew?.fillColor = KMAppearance.Layout.l_1Color()
         self.customLabelNew?.textColor = KMAppearance.Layout.h1Color()
-//        dynamicBox.fillColor = KMAppearance.Interactive.a0Color()
-//        dynamicLabel.textColor = KMAppearance.Layout.w0Color()
         self.dynamicBoxNew?.fillColor = KMAppearance.Interactive.a0Color()
         self.dynamicLabelNew?.textColor = KMAppearance.Layout.w0Color()
         
@@ -598,7 +561,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         dateComboBox.delegate = self
         
         // 从沙盒中取出日期格式
-        let dateStyleIndicate = UserDefaults.standard.string(forKey: KMPDFDynamicStampDateStyleKey1) ?? ""
+        let dateStyleIndicate = UserDefaults.standard.string(forKey: CPDFDynamicStampDateStyleKey1) ?? ""
         if dateStyleIndicate.count < 1 {
             self.dateComboBox.selectItem(at: dateStyleArray.count - 1)
             dateFormatterString = dateStyleArray.last ?? ""
@@ -616,7 +579,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         }
         
         // 从沙盒中取出是否需要作者
-        let isNeedAuthor = UserDefaults.standard.bool(forKey: KMPDFDynamicStampNeedAuthorKey1)
+        let isNeedAuthor = UserDefaults.standard.bool(forKey: CPDFDynamicStampNeedAuthorKey1)
         
         dynamicStampNeedsAuthor = !isNeedAuthor
         selectButton.state = dynamicStampNeedsAuthor ? .on : .off
@@ -627,14 +590,12 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
             authorTextField.isEditable = true
             authorTextField.isSelectable = true
             authorTextField.stringValue = author
-//            authorTextField.cell?.placeholderString = ""
             authorTextField.placeholderString = ""
             authorTextField.delegate = self
         } else {
             authorTextField.isEditable = false
             authorTextField.isSelectable = false
             authorTextField.stringValue = ""
-//            authorTextField.cell?.placeholderString = author
             authorTextField.placeholderString = author
             authorTextField.delegate = self
         }
@@ -971,43 +932,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
     
     @objc func tableCellImageButton_Click(_ button: NSButton) {
         let index = button.tag
-        
-        // FIXME: editAnnotation.widgetFieldType属性待修改
-//        if #available(macOS 10.13, *) {
-//            if self.isClickSignatureList {
-//                let selectSignature: KMSignature = self.signatures[index] as! KMSignature
-//                let editAnnotation: CPDFWidgetAnnotation = self.annotation
-//                let page: CPDFPage = editAnnotation.page!
-//                
-//                if let editAnnotation = self.annotation as? PDFAnnotation,
-//                   let page = editAnnotation.page,
-//                   editAnnotation.widgetFieldType == PDFAnnotationWidgetSubtype.signature.rawValue {
-//                    
-//                    var signatureAnnotation: KMAnnotationFromSignature
-//                    
-//                    if let existingAnnotation = editAnnotation as? KMAnnotationFromSignature {
-//                        signatureAnnotation = existingAnnotation
-//                    } else {
-//                        signatureAnnotation = KMAnnotationFromSignature(bounds: editAnnotation.bounds)
-//                        signatureAnnotation.fieldName = editAnnotation.fieldName
-//                        signatureAnnotation.backgroundColor = editAnnotation.backgroundColor
-//                        signatureAnnotation.widgetFieldType = editAnnotation.widgetFieldType
-//                        signatureAnnotation.contents = editAnnotation.contents
-//                        signatureAnnotation.userName = editAnnotation.userName
-//                        signatureAnnotation.modificationDate = editAnnotation.modificationDate
-//                    }
-//                    
-//                    signatureAnnotation.signature = selectSignature
-//                    
-//                    page.removeAnnotation(editAnnotation)
-//                    page.addAnnotation(signatureAnnotation)
-//                    
-//                    signatureAnnotation.shouldDisplay = true
-//                }
-//                return
-//            }
-//        }
-        
+    
         var stampLists: [CStampObject] = []
         switch stampType {
         case .standard:
@@ -1038,11 +963,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         
         if let mainWindow = NSApp.mainWindow {
             let signatureWindowController = KMSignatureWindowController()
-//            signatureWindowController.beginSheetModal(for: mainWindow) { [weak self] signature in
-//                self?.reloadDataSignatures()
-//                self?.createStampTableView.reloadData()
-//            }
-            self.view.window?.beginSheet(signatureWindowController.window!, completionHandler: {  [weak self] returnCode in
+             self.view.window?.beginSheet(signatureWindowController.window!, completionHandler: {  [weak self] returnCode in
                 if returnCode.rawValue > 0 {
                     self?.reloadDataSignatures()
                     self?.createStampTableView.reloadData()
@@ -1358,9 +1279,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
     // MARK: 勾选用户名响应事件
     
     @IBAction func dynamicStampButtonItemClicked_Author(_ sender: NSButton) {
-        // 从沙盒中取出作者,如果没有
-        
-        if let author = KMDataManager.ud_string(forKey: KMUserNameKey), !author.isEmpty {
+         if let author = KMDataManager.ud_string(forKey: KMUserNameKey), !author.isEmpty {
             self.authorTextField.placeholderString = author
         } else {
             self.authorTextField.placeholderString = NSFullUserName()
@@ -1383,7 +1302,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         loadDynamicStamps()
         createStampTableView.reloadData()
 
-        UserDefaults.standard.set(!self.dynamicStampNeedsAuthor, forKey: KMPDFDynamicStampNeedAuthorKey1)
+        UserDefaults.standard.set(!self.dynamicStampNeedsAuthor, forKey: CPDFDynamicStampNeedAuthorKey1)
         UserDefaults.standard.synchronize()
     }
     
@@ -1402,7 +1321,7 @@ let KMPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         
         self.dateFormatterString = self.dateStyleArray[selectedIndex]
         
-        UserDefaults.standard.set(self.dateFormatterString, forKey: KMPDFDynamicStampDateStyleKey1)
+        UserDefaults.standard.set(self.dateFormatterString, forKey: CPDFDynamicStampDateStyleKey1)
         
         self.loadDynamicStamps()
         self.createStampTableView.reloadData()

+ 12 - 12
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMAnnotationStampViewController.xib

@@ -92,7 +92,7 @@
                         <rect key="frame" x="0.0" y="0.0" width="78" height="32"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0E3-F3-2Pg">
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0E3-F3-2Pg">
                                 <rect key="frame" x="37" y="8" width="4" height="16"/>
                                 <textFieldCell key="cell" lineBreakMode="clipping" id="MOs-Eb-Gx1">
                                     <font key="font" usesAppearanceFont="YES"/>
@@ -114,7 +114,7 @@
                         <rect key="frame" x="0.0" y="0.0" width="78" height="32"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HfE-48-3lV">
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HfE-48-3lV">
                                 <rect key="frame" x="37" y="8" width="4" height="16"/>
                                 <textFieldCell key="cell" lineBreakMode="clipping" id="QTD-ci-jYJ">
                                     <font key="font" usesAppearanceFont="YES"/>
@@ -157,7 +157,7 @@
                         <rect key="frame" x="0.0" y="0.0" width="78" height="32"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="I93-Ww-ckj">
+                            <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="I93-Ww-ckj">
                                 <rect key="frame" x="37" y="8" width="4" height="16"/>
                                 <textFieldCell key="cell" lineBreakMode="clipping" id="dRl-PU-bWG">
                                     <font key="font" usesAppearanceFont="YES"/>
@@ -186,7 +186,7 @@
                                     </constraints>
                                     <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="KMImageNameEmptyStamp" id="Wgu-2B-PFT"/>
                                 </imageView>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VYn-hy-KP4">
+                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="VYn-hy-KP4">
                                     <rect key="frame" x="15" y="0.0" width="204" height="40"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="40" id="9pg-4b-Ee9"/>
@@ -198,7 +198,7 @@
                                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                     </textFieldCell>
                                 </textField>
-                                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Mlh-u9-cE0">
+                                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Mlh-u9-cE0">
                                     <rect key="frame" x="55" y="48" width="124" height="20"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="20" id="CVU-xa-gXa"/>
@@ -363,7 +363,7 @@
                         <action selector="dynamicStampButtonItemClicked_Author:" target="-2" id="QwQ-s3-kqw"/>
                     </connections>
                 </button>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nfe-06-8Hb">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nfe-06-8Hb">
                     <rect key="frame" x="30" y="51" width="35" height="15"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="8fp-iH-M5S">
                         <font key="font" metaFont="cellTitle"/>
@@ -371,7 +371,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Cf3-ij-TW3">
+                <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Cf3-ij-TW3">
                     <rect key="frame" x="71" y="48" width="162" height="20"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="162" id="InN-b8-goi"/>
@@ -383,7 +383,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="CiP-Jz-Xdn">
+                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="CiP-Jz-Xdn">
                     <rect key="frame" x="30" y="18" width="35" height="15"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="VD2-sn-eiH">
                         <font key="font" metaFont="cellTitle"/>
@@ -397,7 +397,7 @@
                         <rect key="frame" x="1" y="1" width="160" height="20"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <comboBox focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wtD-Vt-js7" customClass="KMComboBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                            <comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wtD-Vt-js7" customClass="KMComboBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                 <rect key="frame" x="-1" y="-2" width="164" height="23"/>
                                 <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" buttonBordered="NO" completes="NO" numberOfVisibleItems="5" id="oR8-Eg-1Mn" customClass="KMStampComboBoxCell" customModule="PDF_Reader_Pro" customModuleProvider="target">
                                     <font key="font" metaFont="system"/>
@@ -538,7 +538,7 @@
                                     <rect key="frame" x="0.0" y="0.0" width="213" height="64"/>
                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                     <subviews>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tKZ-fa-8Ft">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tKZ-fa-8Ft">
                                             <rect key="frame" x="-2" y="34" width="217" height="20"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="20" id="FJF-i6-gOD"/>
@@ -616,7 +616,7 @@
                                     <rect key="frame" x="0.0" y="0.0" width="213" height="326"/>
                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                     <subviews>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UsV-0m-nUC">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UsV-0m-nUC">
                                             <rect key="frame" x="-2" y="296" width="42" height="20"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="20" id="Qva-NE-D5a"/>
@@ -700,7 +700,7 @@
                                                 <action selector="opacitySliderAction:" target="-2" id="mik-d8-oIH"/>
                                             </connections>
                                         </slider>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dl7-N2-sZY">
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dl7-N2-sZY">
                                             <rect key="frame" x="-2" y="32" width="42" height="20"/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="20" id="0vB-EP-csS"/>

PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMDynamicStampViewController.swift → PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/CreateStamp/KMDynamicStampViewController.swift


+ 6 - 6
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMDynamicStampViewController.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22154" 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="22154"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -24,7 +24,7 @@
             <rect key="frame" x="0.0" y="0.0" width="391" height="141"/>
             <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
             <subviews>
-                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hDL-yw-0LU">
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hDL-yw-0LU">
                     <rect key="frame" x="13" y="110" width="37" height="16"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Oe9-9H-SuI">
                         <font key="font" usesAppearanceFont="YES"/>
@@ -42,7 +42,7 @@
                         <action selector="selectAuthorButton_Click:" target="-2" id="Bvq-Dm-qUu"/>
                     </connections>
                 </button>
-                <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="h04-zJ-ESh">
+                <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="h04-zJ-ESh">
                     <rect key="frame" x="76" y="66" width="96" height="21"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="96" id="hQm-5b-VGC"/>
@@ -53,7 +53,7 @@
                         <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                     </textFieldCell>
                 </textField>
-                <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Gp9-c5-GxZ">
+                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Gp9-c5-GxZ">
                     <rect key="frame" x="214" y="68" width="34" height="16"/>
                     <textFieldCell key="cell" lineBreakMode="clipping" title="Time" id="kru-3C-8Dj">
                         <font key="font" metaFont="system"/>
@@ -90,7 +90,7 @@ Gw
                         <action selector="cancelButton_Click:" target="-2" id="RD5-nw-nr5"/>
                     </connections>
                 </button>
-                <comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NB2-m7-l19" customClass="KMComboBox" customModule="PDF_Master" customModuleProvider="target">
+                <comboBox focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NB2-m7-l19" customClass="KMComboBox" customModule="PDF_Reader_Pro" customModuleProvider="target">
                     <rect key="frame" x="255" y="64" width="124" height="23"/>
                     <constraints>
                         <constraint firstAttribute="width" constant="120" id="usv-QX-7LK"/>

+ 7 - 32
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/CreateStamp/View/KMAnnotationStamp.swift

@@ -295,8 +295,7 @@ let StampStringEdgeSizeScale = 0.1
         }
     }
     
-    convenience init(withBounds:NSRect){
-//        self.init()
+    convenience init(withBounds:NSRect) {
         self.init(document: CPDFDocument())
         self.bounds = withBounds
         let colors: [Double] = [Double](repeating: 0, count: 3)
@@ -366,11 +365,8 @@ let StampStringEdgeSizeScale = 0.1
         }
         let colorSpace = CGColorSpaceCreateDeviceRGB()
         guard let context = CGContext(data: nil, width: Int(self.bounds.size.width), height: Int(self.bounds.size.height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue) else {
-            //            CGColorSpaceRelease(colorSpace)
-            return nil
+             return nil
         }
-        //        CGColorSpaceRelease(colorSpace)
-        
         self.drawBorderWithContext(context: context)
         
         guard let tempImage = context.makeImage() else {
@@ -601,10 +597,6 @@ let StampStringEdgeSizeScale = 0.1
             if !self.isStandardStamp {
                 self.setCustomStampString(self.contentStr, dateString: self.dateString)
             }
-//            let context = CGContext(data: nil, width: Int(self.bounds.size.width), height: Int(self.bounds.size.height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)
-//            if context == nil {
-//                return nil
-//            }
             let colorSpace = CGColorSpaceCreateDeviceRGB()
             guard let context = CGContext(data: nil, width: Int(self.bounds.size.width), height: Int(self.bounds.size.height), bitsPerComponent: 8, bytesPerRow: 0, space: colorSpace, bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue) else {
                 //            CGColorSpaceRelease(colorSpace)
@@ -767,17 +759,13 @@ let StampStringEdgeSizeScale = 0.1
             c11, c12, c13, 0.9
         ]
         let gradient = CGGradient(colorSpace: colorSpaceRef, colorComponents: colorsT, locations: nil, count: colorsT.count*MemoryLayout.size(ofValue: colorsT[0])/(4*MemoryLayout.size(ofValue: colorsT[0])))
-        // 释放色彩空间对象
-        //        CGColorSpaceRelease(colorSpaceRef)
+
         let startPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.75, y: tmpBounds.origin.y+tmpBounds.size.width*0.25)
         let endPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.25, y: tmpBounds.origin.y+tmpBounds.size.width*0.75)
         context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [.drawsBeforeStartLocation, .drawsAfterEndLocation])
         
         context.restoreGState()
         
-        // 释放着色器对象
-        //        CGGradientRelease(gradient)
-        
         context.setStrokeColor(red: colors[0], green: colors[1], blue: colors[2], alpha: 1.0)
         context.setLineWidth(tmpHeight/10)
         context.move(to: CGPoint(x: tmpBounds.origin.x+tmpWidth, y: tmpBounds.origin.y+tmpBounds.size.height*0.5))
@@ -1159,8 +1147,6 @@ let StampStringEdgeSizeScale = 0.1
         context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [.drawsBeforeStartLocation, .drawsAfterEndLocation])
         context.restoreGState()
         
-        // 释放着色器对象
-        //        CGGradientRelease(gradient)
         
         drawLeftBounds(context: context, withBounds: tmpBounds)
         
@@ -1207,16 +1193,12 @@ let StampStringEdgeSizeScale = 0.1
             c11, c12, c13, 0.9,
         ]
         let gradient = CGGradient(colorSpace: colorSpaceRef, colorComponents: colorsT, locations: nil, count: colorsT.count*MemoryLayout.size(ofValue: colorsT[0])/(4*MemoryLayout.size(ofValue: colorsT[0])))
-        // 释放色彩空间对象
-        //        CGColorSpaceRelease(colorSpaceRef)
+
         let startPoint = CGPoint(x: tmpBounds.origin.x + tmpBounds.size.width * 0.75, y: tmpBounds.origin.y + tmpBounds.size.width * 0.25)
         let endPoint = CGPoint(x: tmpBounds.origin.x + tmpBounds.size.width * 0.25, y: tmpBounds.origin.y + tmpBounds.size.width * 0.75)
         context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: [.drawsBeforeStartLocation, .drawsAfterEndLocation])
         context.restoreGState()
         
-        // 释放着色器对象
-        //        CGGradientRelease(gradient)
-        
         drawRightBounds(context: context, withBounds: tmpBounds)
         context.strokePath()
     }
@@ -1287,15 +1269,12 @@ let StampStringEdgeSizeScale = 0.1
         ]
         //MARK: 数组占内存位数不确定是否正确
         let gradient = CGGradient(colorSpace: colorSpaceRef, colorComponents: colorsT, locations: nil, count: colorsT.count*MemoryLayout.size(ofValue: colorsT[0])/(4*MemoryLayout.size(ofValue: colorsT[0])))
-        // 释放色彩空间对象
-        //        CGColorSpaceRelease(colorSpaceRef)
+
         let startPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.75, y: tmpBounds.origin.y+tmpBounds.size.width*0.25)
         let endPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.25, y: tmpBounds.origin.y+tmpBounds.size.width*0.75)
         context.drawLinearGradient(gradient!, start: startPoint, end: endPoint, options: .drawsBeforeStartLocation)
         context.restoreGState()
         
-        // 释放着色器对象
-        //        gradient?.release()
         
         context.setStrokeColor(red: colors[0], green: colors[1], blue: colors[2], alpha: 1)
         context.setLineWidth(tmpHeight/10)
@@ -1346,16 +1325,12 @@ let StampStringEdgeSizeScale = 0.1
             c11, c12, c13, 0.9,
         ]
         guard let gradient = CGGradient(colorSpace: colorSpaceRef, colorComponents: colorsT, locations: nil, count: colorsT.count*MemoryLayout.size(ofValue: colorsT[0])/(4*MemoryLayout.size(ofValue: colorsT[0]))) else { return }
-        // 释放色彩空间对象
-        //        CGColorSpaceRelease(colorSpaceRef)
+
         let startPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.75, y: tmpBounds.origin.y+tmpBounds.size.width*0.25)
         let endPoint = CGPoint(x: tmpBounds.origin.x+tmpBounds.size.width*0.25, y: tmpBounds.origin.y+tmpBounds.size.width*0.75)
         context.drawLinearGradient(gradient, start: startPoint, end: endPoint, options: [.drawsBeforeStartLocation, .drawsAfterEndLocation])
         context.restoreGState()
-        
-        // 释放着色器对象
-        //        CGGradientRelease(gradient)
-        
+         
         context.setStrokeColor(CGColor(red: colors[0], green: colors[1], blue: colors[2], alpha: 1.0))
         context.setLineWidth(tmpHeight/10)
         context.move(to: CGPoint(x: tmpBounds.origin.x+tmpWidth, y: tmpBounds.origin.y+tmpBounds.size.height-tmpHeight))

+ 0 - 21
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.h

@@ -1,21 +0,0 @@
-//
-//  KMCustomizeStampViewController.h
-//  PDF Reader Pro
-//
-//  Created by lxy on 2023/1/6.
-//
-
-#import <Cocoa/Cocoa.h>
-
-#import <PDF_Reader_Pro-Swift.h>
-
-typedef void(^addStampCallBack)(CStampObject * stamp);
-
-@interface KMCustomizeStampViewController : NSViewController
-
-@property(nonatomic,copy) addStampCallBack stampCallBack;
-
-@property(nonatomic,strong) CStampObject *currentStamp;
-
-@end
-

+ 0 - 237
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.m

@@ -1,237 +0,0 @@
-//
-//  KMCustomizeStampViewController.m
-//  PDF Reader Pro
-//
-//  Created by lxy on 2023/1/6.
-//
-
-#import "KMCustomizeStampViewController.h"
-
-@interface KMCustomizeStampViewController ()
-@property (weak) IBOutlet NSTextField *NewStampTitleTextField;
-@property (weak) IBOutlet NSButton *textStampButton;
-@property (weak) IBOutlet NSButton *imageStampButton;
-@property (weak) IBOutlet NSBox *contentBox;
-@property (weak) IBOutlet NSButton *createStampButoon;
-@property (weak) IBOutlet NSButton *cancelButton;
-@property (strong) IBOutlet NSView *textStampView;
-@property (strong) IBOutlet NSView *imageStampView;
-@property (weak) IBOutlet NSTextField *textContentTextfield;
-@property (weak) IBOutlet NSButton *timeCheck;
-@property (weak) IBOutlet NSButton *dateCheck;
-@property (weak) IBOutlet NSTextField *stypeTitleTextField;
-@property (weak) IBOutlet NSButton *reselectButton;
-@property (weak) IBOutlet NSTextField *addImageTitle;
-@property (weak) IBOutlet NSView *noteImageBox;
-@property (weak) IBOutlet NSImageView *imageView;
-@property (weak) IBOutlet NSView *stateLineView;
-@property (weak) IBOutlet NSLayoutConstraint *stateLineLeftConstraint;
-@property (weak) IBOutlet NSTextField *dateTextField;
-@property (nonatomic,assign) NSInteger selectIndex;
-@property (nonatomic,copy) NSString *imagePath;
-@property (nonatomic,copy) NSString *date;
-@property (nonatomic,copy) NSString *time;
-
-@end
-
-@implementation KMCustomizeStampViewController
-
-- (void)viewDidLoad {
-    [super viewDidLoad];
-    [self configUI];
-}
-
-- (void)viewDidAppear {
-    [super viewDidAppear];
-    self.view.window.title = @"";
-    self.view.window.styleMask = self.view.window.styleMask | NSWindowStyleMaskFullSizeContentView;
-    self.view.window.titlebarAppearsTransparent = YES;
-    [[self.view.window standardWindowButton:NSWindowCloseButton] setHidden:YES];
-    [[self.view.window standardWindowButton:NSWindowMiniaturizeButton] setHidden:YES];
-    [[self.view.window standardWindowButton:NSWindowZoomButton] setHidden:YES];
-}
-
-- (void)configUI {
-    self.NewStampTitleTextField.stringValue = NSLocalizedString(@"New Stamp", nil);
-    [self.textStampButton setTitle:NSLocalizedString(@"Text Stamp", nil)];
-    [self.imageStampButton setTitle:NSLocalizedString(@"Image Stamp", nil)];
-    [self.createStampButoon setTitle:NSLocalizedString(@"Create", nil)];
-    [self.cancelButton setTitle:NSLocalizedString(@"Cancel", nil)];
-    self.stypeTitleTextField.stringValue = NSLocalizedString(@"Style", nil);
-    self.dateCheck.stringValue = NSLocalizedString(@"Date", nil);
-    self.timeCheck.stringValue = NSLocalizedString(@"Time", nil);
-    self.addImageTitle.stringValue = NSLocalizedString(@"Select picture file", nil);
-    [self.reselectButton setTitle:NSLocalizedString(@"Reselect", nil)];
-    self.dateTextField.backgroundColor =
-    self.textContentTextfield.backgroundColor = [NSColor clearColor];
-    self.textContentTextfield.focusRingType = NSFocusRingTypeNone;
-    self.dateTextField.editable = NO;
-    self.stateLineView.wantsLayer = YES;
-    self.stateLineView.layer.backgroundColor = [NSColor blackColor].CGColor;
-    
-    self.contentBox.contentView = self.textStampView;
-    self.noteImageBox.hidden = NO;
-    self.imageView.hidden = YES;
-    self.reselectButton.hidden = YES;
-    self.dateTextField.hidden = YES;
-    self.timeCheck.state =
-    self.dateCheck.state = NSControlStateValueOff;
-    self.selectIndex = 1;
-    if(_currentStamp) {
-        [self updateStampView];
-    }
-}
-
-- (void)updateStampView {
-    if(_currentStamp.stampCategoryType == CPDFStampTypeImage) {
-        [self imageStampButton_Click:nil];
-        self.imageView.image = _currentStamp.stampPreImage;
-        self.noteImageBox.hidden = YES;
-        self.imageView.hidden = NO;
-        self.reselectButton.hidden = NO;
-        self.imagePath = _currentStamp.imagePath;
-    } else if (_currentStamp.stampCategoryType == CPDFStampTypeText) {
-        [self textStampButton_Click:nil];
-        self.textContentTextfield.stringValue = _currentStamp.text;
-        if(_currentStamp.dateString && _currentStamp.dateString.length > 0) {
-            self.dateCheck.state = NSControlStateValueOn;
-        }
-        if(_currentStamp.timeString && _currentStamp.timeString.length > 0) {
-            self.timeCheck.state = NSControlStateValueOn;
-        }
-        [self setStampText];
-    }
-}
-
-///MARK: action
-
-- (IBAction)textStampButton_Click:(id)sender {
-    self.contentBox.contentView = self.textStampView;
-    self.stateLineLeftConstraint.constant = 0;
-}
-
-- (IBAction)imageStampButton_Click:(id)sender {
-    self.contentBox.contentView = self.imageStampView;
-    self.stateLineLeftConstraint.constant = CGRectGetMinX(self.imageStampButton.frame);
-}
-
-- (IBAction)cancelButton_Click:(id)sender {
-    [self dismissViewController:self];
-}
-
-- (IBAction)selectStyleButton_Click:(NSButton *)sender {
-    self.selectIndex = sender.tag;
-}
-
-
-- (IBAction)createButton_Click:(id)sender {
-    CStampObject *object = nil;
-    if (self.stateLineLeftConstraint.constant == 0) { //Text Stamp
-        NSDictionary *dic = [self textStampData:[NSString stringWithFormat:@"%ld",self.selectIndex]];
-        if (dic) {
-            CPDFStampStyle style = [dic[@"stype"] integerValue];
-            CPDFStampShape shape = [dic[@"shape"] integerValue];
-            object = [[CStampObject alloc] initWithText:self.textContentTextfield.stringValue detailText:self.dateTextField.stringValue style:style shape:shape];
-        }
-    } else {
-        object = [[CStampObject alloc] initWithImageStampFilePath:self.imagePath];
-    }
-    if (object && self.stampCallBack) {
-        object.dateString = self.date;
-        object.timeString = self.time;
-        [self cancelButton_Click:nil];
-        if(object.stampCategoryType == CPDFStampTypeImage && _currentStamp && _currentStamp.imagePath == object.imagePath) {
-            return;
-        }
-        self.stampCallBack(object);
-    }
-    
-}
-- (IBAction)dateCheck_Click:(id)sender {
-    [self setStampText];
-}
-
-- (IBAction)timeCheck_Click:(id)sender {
-    [self setStampText];
-}
-
-- (IBAction)selectImageButton_Click:(id)sender {
-    NSOpenPanel *openPanel = [[NSOpenPanel alloc] init];
-    [openPanel setAllowedFileTypes:@[@"jpg",@"jpeg",@"png"]];
-    [openPanel setAllowsMultipleSelection:NO];
-    if ([openPanel respondsToSelector:@selector(setAccessoryViewDisclosed:)]) {
-        [openPanel setAccessoryViewDisclosed:YES];
-    }
-    [openPanel beginSheetModalForWindow:self.view.window completionHandler:^(NSInteger result){
-        if (result == NSModalResponseOK) {
-            NSURL *url = [openPanel URL];
-            if (url) {
-                self.imagePath = url.path;
-                self.imageView.image = [[NSImage alloc] initWithContentsOfURL:url];
-                self.noteImageBox.hidden = YES;
-                self.imageView.hidden = NO;
-                self.reselectButton.hidden = NO;
-            }
-        }
-    }];
-}
-
-- (IBAction)reselectButton_Click:(id)sender {
-    [self selectImageButton_Click:sender];
-}
-
-- (void)setStampText {
-    if (self.timeCheck.state == NSControlStateValueOn && self.dateCheck.state == NSControlStateValueOn) {
-        NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
-        [formatter setDateFormat:@"YYYY-MM-dd hh:mm:ss"];
-        NSString *dateString = [formatter stringFromDate:[NSDate date]];
-        self.dateTextField.stringValue = dateString;
-        self.dateTextField.hidden = NO;
-    } else if (self.dateCheck.state == NSControlStateValueOn) {
-        NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
-        [formatter setDateFormat:@"YYYY-MM-dd"];
-        NSString *dateString = [formatter stringFromDate:[NSDate date]];
-        self.dateTextField.stringValue = dateString;
-        self.dateTextField.hidden = NO;
-    }else if (self.timeCheck.state == NSControlStateValueOn) {
-        NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
-        [formatter setDateFormat:@"hh:mm:ss"];
-        NSString *dateString = [formatter stringFromDate:[NSDate date]];
-        self.dateTextField.stringValue = dateString;
-        self.dateTextField.hidden = NO;
-    } else {
-        self.dateTextField.stringValue = @"";
-        self.dateTextField.hidden = YES;
-    }
-    
-    if (self.dateCheck.state == NSControlStateValueOn) {
-        NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
-        [formatter setDateFormat:@"YYYY-MM-dd"];
-        NSString *dateString = [formatter stringFromDate:[NSDate date]];
-        self.date = dateString;
-    }
-    if (self.timeCheck.state == NSControlStateValueOn) {
-        NSDateFormatter *formatter = [[NSDateFormatter alloc ] init];
-        [formatter setDateFormat:@"hh:mm:ss"];
-        NSString *dateString = [formatter stringFromDate:[NSDate date]];
-        self.time = dateString;
-    }
-}
-
-- (NSDictionary *)textStampData:(NSString *)tag {
-    NSDictionary *data = @{@"1":@{@"stype":@(CPDFStampStyleWhite),@"shape":@(CPDFStampShapeNone)},
-                           @"2":@{@"stype":@(CPDFStampStyleWhite),@"shape":@(CPDFStampShapeRectangle)},
-                           @"3":@{@"stype":@(CPDFStampStyleGreen),@"shape":@(CPDFStampShapeRectangle)},
-                           @"4":@{@"stype":@(CPDFStampStyleRed),@"shape":@(CPDFStampShapeRectangle)},
-                           @"5":@{@"stype":@(CPDFStampStyleBlue),@"shape":@(CPDFStampShapeRectangle)},
-                           @"6":@{@"stype":@(CPDFStampStyleGreen),@"shape":@(CPDFStampShapeArrowLeft)},
-                           @"7":@{@"stype":@(CPDFStampStyleRed),@"shape":@(CPDFStampShapeArrowLeft)},
-                           @"8":@{@"stype":@(CPDFStampStyleBlue),@"shape":@(CPDFStampShapeArrowLeft)},
-                           @"9":@{@"stype":@(CPDFStampStyleGreen),@"shape":@(CPDFStampShapeArrowRight)},
-                           @"10":@{@"stype":@(CPDFStampStyleRed),@"shape":@(CPDFStampShapeArrowRight)},
-                           @"11":@{@"stype":@(CPDFStampStyleBlue),@"shape":@(CPDFStampShapeArrowRight)},
-    };
-    return data[tag];
-}
-
-@end

+ 0 - 524
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMCustomizeStampViewController.xib

@@ -1,524 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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="22505"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMCustomizeStampViewController">
-            <connections>
-                <outlet property="NewStampTitleTextField" destination="7mu-SC-Ah8" id="f5D-eP-8uI"/>
-                <outlet property="addImageTitle" destination="ZS6-14-hOj" id="XYJ-ak-ksP"/>
-                <outlet property="cancelButton" destination="V8X-Q7-GMd" id="lFb-w8-nmY"/>
-                <outlet property="contentBox" destination="lBO-ea-4YE" id="n19-HD-ypn"/>
-                <outlet property="createStampButoon" destination="8wh-Ai-Kag" id="e8R-cb-W3F"/>
-                <outlet property="dateCheck" destination="HL7-wb-c4f" id="DVP-Rh-Llj"/>
-                <outlet property="dateTextField" destination="dKj-JI-wt8" id="XXd-cj-M8h"/>
-                <outlet property="imageStampButton" destination="ABE-yw-dWd" id="4Zk-AQ-g9e"/>
-                <outlet property="imageStampView" destination="Msi-AY-uSg" id="JPB-ea-DBo"/>
-                <outlet property="imageView" destination="c7t-Se-u3P" id="Kuj-52-tPn"/>
-                <outlet property="noteImageBox" destination="zvE-ep-MW7" id="TCG-jh-gjU"/>
-                <outlet property="reselectButton" destination="sYK-tA-a8s" id="5Vg-N6-myN"/>
-                <outlet property="stateLineLeftConstraint" destination="Lbg-g8-csv" id="ZqT-Zj-rSf"/>
-                <outlet property="stateLineView" destination="h7i-TG-AHz" id="hz4-0u-Rc9"/>
-                <outlet property="stypeTitleTextField" destination="Jao-ve-9UP" id="1nq-IO-nWU"/>
-                <outlet property="textContentTextfield" destination="YdI-Zl-i7q" id="rgv-ZK-fPh"/>
-                <outlet property="textStampButton" destination="mmA-gH-boM" id="ypV-7Q-giO"/>
-                <outlet property="textStampView" destination="icg-01-r1f" id="iiS-hm-kXN"/>
-                <outlet property="timeCheck" destination="d71-o2-Nvh" id="qhh-Ht-L2A"/>
-                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <customView id="Hz6-mo-xeY">
-            <rect key="frame" x="0.0" y="0.0" width="378" height="343"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7mu-SC-Ah8">
-                    <rect key="frame" x="13" y="312" width="74" height="16"/>
-                    <textFieldCell key="cell" lineBreakMode="clipping" title="New Stamp" id="RMQ-Ju-Sp2">
-                        <font key="font" usesAppearanceFont="YES"/>
-                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                    </textFieldCell>
-                </textField>
-                <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="4e6-qt-FrJ">
-                    <rect key="frame" x="15" y="294" width="348" height="5"/>
-                </box>
-                <box title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="GKG-UM-Zfb">
-                    <rect key="frame" x="27" y="237" width="324" height="46"/>
-                    <view key="contentView" id="UNf-az-8zB">
-                        <rect key="frame" x="4" y="5" width="316" height="38"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mmA-gH-boM">
-                                <rect key="frame" x="0.0" y="3" width="158" height="35"/>
-                                <buttonCell key="cell" type="bevel" title="Text Stamp" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="Sha-gH-eRW">
-                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                    <font key="font" metaFont="system"/>
-                                </buttonCell>
-                                <connections>
-                                    <action selector="textStampButton_Click:" target="-2" id="zXb-f6-E5V"/>
-                                </connections>
-                            </button>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="h7i-TG-AHz">
-                                <rect key="frame" x="0.0" y="0.0" width="158" height="3"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="3" id="2fy-27-I8D"/>
-                                </constraints>
-                            </customView>
-                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ABE-yw-dWd">
-                                <rect key="frame" x="158" y="3" width="158" height="35"/>
-                                <buttonCell key="cell" type="bevel" title="Image Stamp" bezelStyle="rounded" alignment="center" imageScaling="proportionallyDown" inset="2" id="CXf-6q-PhP">
-                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                    <font key="font" metaFont="system"/>
-                                </buttonCell>
-                                <connections>
-                                    <action selector="imageStampButton_Click:" target="-2" id="5v7-ZY-OWY"/>
-                                </connections>
-                            </button>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="ABE-yw-dWd" firstAttribute="top" secondItem="UNf-az-8zB" secondAttribute="top" id="0sq-TP-a2e"/>
-                            <constraint firstItem="h7i-TG-AHz" firstAttribute="top" secondItem="mmA-gH-boM" secondAttribute="bottom" id="E1o-MH-Rtf"/>
-                            <constraint firstAttribute="bottom" secondItem="h7i-TG-AHz" secondAttribute="bottom" id="GYd-LR-Btq"/>
-                            <constraint firstAttribute="bottom" secondItem="ABE-yw-dWd" secondAttribute="bottom" constant="3" id="GjL-p1-dlD"/>
-                            <constraint firstAttribute="trailing" secondItem="ABE-yw-dWd" secondAttribute="trailing" id="HQF-Oj-RiX"/>
-                            <constraint firstItem="h7i-TG-AHz" firstAttribute="leading" secondItem="UNf-az-8zB" secondAttribute="leading" id="Lbg-g8-csv"/>
-                            <constraint firstItem="h7i-TG-AHz" firstAttribute="width" secondItem="UNf-az-8zB" secondAttribute="width" multiplier="0.5" id="VYd-fk-0m3"/>
-                            <constraint firstItem="ABE-yw-dWd" firstAttribute="leading" secondItem="mmA-gH-boM" secondAttribute="trailing" id="eBY-u2-SSX"/>
-                            <constraint firstItem="mmA-gH-boM" firstAttribute="top" secondItem="UNf-az-8zB" secondAttribute="top" id="gB0-wB-e52"/>
-                            <constraint firstItem="mmA-gH-boM" firstAttribute="leading" secondItem="UNf-az-8zB" secondAttribute="leading" id="grV-Tj-cOp"/>
-                            <constraint firstItem="mmA-gH-boM" firstAttribute="width" secondItem="UNf-az-8zB" secondAttribute="width" multiplier="0.5" id="v50-jn-kp1"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="40" id="eil-9U-z7J"/>
-                    </constraints>
-                </box>
-                <box borderType="none" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="lBO-ea-4YE">
-                    <rect key="frame" x="10" y="58" width="358" height="173"/>
-                    <view key="contentView" id="N7Y-Q2-RaB">
-                        <rect key="frame" x="0.0" y="0.0" width="358" height="173"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="173" id="rw4-hn-eLG"/>
-                    </constraints>
-                </box>
-                <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="KaT-em-W9U">
-                    <rect key="frame" x="0.0" y="40" width="378" height="5"/>
-                </box>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8wh-Ai-Kag">
-                    <rect key="frame" x="300" y="4" width="75" height="32"/>
-                    <buttonCell key="cell" type="push" title="Button" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="YBY-de-7Vq">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <connections>
-                        <action selector="createButton_Click:" target="-2" id="O0V-W6-i6H"/>
-                    </connections>
-                </button>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="V8X-Q7-GMd">
-                    <rect key="frame" x="228" y="4" width="76" height="32"/>
-                    <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="gYN-T2-AI3">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                        <string key="keyEquivalent" base64-UTF8="YES">
-Gw
-</string>
-                    </buttonCell>
-                    <connections>
-                        <action selector="cancelButton_Click:" target="-2" id="Xmi-kN-GIO"/>
-                    </connections>
-                </button>
-            </subviews>
-            <constraints>
-                <constraint firstItem="8wh-Ai-Kag" firstAttribute="leading" secondItem="V8X-Q7-GMd" secondAttribute="trailing" constant="10" id="0fc-f1-Sz8"/>
-                <constraint firstAttribute="trailing" secondItem="lBO-ea-4YE" secondAttribute="trailing" constant="10" id="5f4-fB-klY"/>
-                <constraint firstAttribute="bottom" secondItem="8wh-Ai-Kag" secondAttribute="bottom" constant="11" id="6F3-ol-Hru"/>
-                <constraint firstAttribute="trailing" secondItem="4e6-qt-FrJ" secondAttribute="trailing" constant="15" id="BGK-bb-xsO"/>
-                <constraint firstItem="8wh-Ai-Kag" firstAttribute="top" secondItem="KaT-em-W9U" secondAttribute="bottom" constant="11" id="FVD-ga-3sr"/>
-                <constraint firstItem="4e6-qt-FrJ" firstAttribute="top" secondItem="7mu-SC-Ah8" secondAttribute="bottom" constant="15" id="HoA-fH-ELR"/>
-                <constraint firstItem="KaT-em-W9U" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="Kcg-he-PZw"/>
-                <constraint firstAttribute="trailing" secondItem="GKG-UM-Zfb" secondAttribute="trailing" constant="30" id="OEG-BQ-JGw"/>
-                <constraint firstItem="lBO-ea-4YE" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="10" id="QWc-RQ-pLa"/>
-                <constraint firstItem="lBO-ea-4YE" firstAttribute="top" secondItem="GKG-UM-Zfb" secondAttribute="bottom" constant="10" id="RcM-RG-481"/>
-                <constraint firstItem="GKG-UM-Zfb" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="30" id="SSk-sy-THD"/>
-                <constraint firstAttribute="trailing" secondItem="KaT-em-W9U" secondAttribute="trailing" id="ZMw-Zz-sVt"/>
-                <constraint firstItem="4e6-qt-FrJ" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="15" id="Zuu-Lh-rNp"/>
-                <constraint firstItem="KaT-em-W9U" firstAttribute="top" secondItem="lBO-ea-4YE" secondAttribute="bottom" constant="15" id="arK-Cb-AR7"/>
-                <constraint firstItem="V8X-Q7-GMd" firstAttribute="centerY" secondItem="8wh-Ai-Kag" secondAttribute="centerY" id="gCL-s7-XA5"/>
-                <constraint firstItem="7mu-SC-Ah8" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="15" id="igz-PM-5dx"/>
-                <constraint firstItem="7mu-SC-Ah8" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="15" id="qek-B0-Mea"/>
-                <constraint firstAttribute="trailing" secondItem="8wh-Ai-Kag" secondAttribute="trailing" constant="10" id="sYR-iA-oCH"/>
-                <constraint firstItem="GKG-UM-Zfb" firstAttribute="top" secondItem="4e6-qt-FrJ" secondAttribute="bottom" constant="15" id="vjL-bI-fUs"/>
-            </constraints>
-            <point key="canvasLocation" x="-67" y="142"/>
-        </customView>
-        <customView id="icg-01-r1f">
-            <rect key="frame" x="0.0" y="0.0" width="358" height="173"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <box title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="Le4-nu-TzQ">
-                    <rect key="frame" x="7" y="71" width="344" height="94"/>
-                    <view key="contentView" id="4ZG-Hs-G9z">
-                        <rect key="frame" x="4" y="5" width="336" height="86"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YdI-Zl-i7q">
-                                <rect key="frame" x="0.0" y="37" width="336" height="16"/>
-                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" alignment="center" title="Stamp Text" drawsBackground="YES" id="e8l-Wv-ls8">
-                                    <font key="font" usesAppearanceFont="YES"/>
-                                    <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                </textFieldCell>
-                            </textField>
-                            <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dKj-JI-wt8">
-                                <rect key="frame" x="0.0" y="24" width="336" height="13"/>
-                                <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" alignment="center" title="Stamp Text" drawsBackground="YES" id="AXj-OW-hjJ">
-                                    <font key="font" metaFont="system" size="10"/>
-                                    <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
-                                </textFieldCell>
-                            </textField>
-                        </subviews>
-                        <constraints>
-                            <constraint firstAttribute="bottom" secondItem="dKj-JI-wt8" secondAttribute="bottom" constant="24" id="FC0-tv-xgK"/>
-                            <constraint firstAttribute="trailing" secondItem="YdI-Zl-i7q" secondAttribute="trailing" id="GXw-zo-B4m"/>
-                            <constraint firstItem="YdI-Zl-i7q" firstAttribute="centerX" secondItem="4ZG-Hs-G9z" secondAttribute="centerX" id="HKm-s2-oDs"/>
-                            <constraint firstItem="dKj-JI-wt8" firstAttribute="leading" secondItem="4ZG-Hs-G9z" secondAttribute="leading" id="M6s-MF-cBX"/>
-                            <constraint firstItem="YdI-Zl-i7q" firstAttribute="leading" secondItem="4ZG-Hs-G9z" secondAttribute="leading" id="Z1q-CL-ngo"/>
-                            <constraint firstAttribute="trailing" secondItem="dKj-JI-wt8" secondAttribute="trailing" id="tQB-o1-Gqu"/>
-                            <constraint firstItem="dKj-JI-wt8" firstAttribute="top" secondItem="YdI-Zl-i7q" secondAttribute="bottom" id="uQi-Ci-OuF"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="88" id="sk1-wk-VHC"/>
-                    </constraints>
-                </box>
-                <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jao-ve-9UP">
-                    <rect key="frame" x="9" y="44" width="40" height="16"/>
-                    <textFieldCell key="cell" lineBreakMode="clipping" title="Stype" id="fiz-2U-bZt">
-                        <font key="font" usesAppearanceFont="YES"/>
-                        <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                        <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                    </textFieldCell>
-                </textField>
-                <button tag="1" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jYD-a2-U4T">
-                    <rect key="frame" x="55" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp1" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="a6O-pl-wiV">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="18" id="Hol-Qp-nn7"/>
-                        <constraint firstAttribute="height" constant="18" id="Pri-Le-exp"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="psA-EZ-xcz"/>
-                    </connections>
-                </button>
-                <button tag="2" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tck-dO-dSW">
-                    <rect key="frame" x="81" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp2" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="6Lw-AF-Fxd">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="kB0-5R-IUr"/>
-                        <constraint firstAttribute="width" constant="18" id="wI4-GT-Kpj"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="LfP-XX-yrS"/>
-                    </connections>
-                </button>
-                <button tag="3" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="6ZC-ge-vPv">
-                    <rect key="frame" x="107" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp3" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="fK5-JI-jcT">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="D2A-cB-Wc6"/>
-                        <constraint firstAttribute="width" constant="18" id="e8O-WS-n9w"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="joo-Fp-Ivh"/>
-                    </connections>
-                </button>
-                <button tag="4" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="KYW-Dy-lC0">
-                    <rect key="frame" x="133" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp4" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="zs1-iq-ifc">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="CW0-gE-7qt"/>
-                        <constraint firstAttribute="width" constant="18" id="iEb-kr-yZI"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="KMO-Vw-ePY"/>
-                    </connections>
-                </button>
-                <button tag="5" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pMv-wo-uq1">
-                    <rect key="frame" x="159" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp5" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="dcQ-ZV-HWp">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="18" id="gjw-3g-7HE"/>
-                        <constraint firstAttribute="height" constant="18" id="yPS-VV-6iA"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="9JK-d2-ycT"/>
-                    </connections>
-                </button>
-                <button tag="6" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZE8-gp-HVS">
-                    <rect key="frame" x="185" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp6" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="ezQ-yb-OFF">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="0Qs-xh-5ae"/>
-                        <constraint firstAttribute="width" constant="18" id="f7L-ko-tbI"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="Teg-nP-MkU"/>
-                    </connections>
-                </button>
-                <button tag="7" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jEA-O9-yI1">
-                    <rect key="frame" x="211" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp7" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="fkp-2H-wkY">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="dYi-sN-ygR"/>
-                        <constraint firstAttribute="width" constant="18" id="m5C-iX-brh"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="DFG-AH-BdA"/>
-                    </connections>
-                </button>
-                <button tag="8" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aKM-vb-hTB">
-                    <rect key="frame" x="237" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp8" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="5w7-nZ-F4L">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="HUT-AK-E1h"/>
-                        <constraint firstAttribute="width" constant="18" id="nld-Q6-xrS"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="CPh-Jk-6T7"/>
-                    </connections>
-                </button>
-                <button tag="9" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="CKW-of-DHj">
-                    <rect key="frame" x="263" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp9" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Xp8-It-uzA">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="18" id="AVo-OH-rsc"/>
-                        <constraint firstAttribute="height" constant="18" id="tPN-c2-smp"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="ehj-ol-QhI"/>
-                    </connections>
-                </button>
-                <button tag="10" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HAt-8V-MUY">
-                    <rect key="frame" x="289" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp10" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="Kb5-Om-0L7">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="18" id="0hI-oI-fpk"/>
-                        <constraint firstAttribute="height" constant="18" id="FHx-HL-Iiw"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="8BW-2y-1JE"/>
-                    </connections>
-                </button>
-                <button tag="11" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MeJ-op-Krm">
-                    <rect key="frame" x="315" y="43" width="18" height="18"/>
-                    <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNamePropertybarTextStamp11" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="r8i-P4-NIE">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="18" id="Q7Z-2Q-iZJ"/>
-                        <constraint firstAttribute="width" constant="18" id="dpO-hq-BoF"/>
-                    </constraints>
-                    <connections>
-                        <action selector="selectStyleButton_Click:" target="-2" id="Upe-GD-2D0"/>
-                    </connections>
-                </button>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="qn4-OC-4zD">
-                    <rect key="frame" x="106" y="12" width="146" height="16"/>
-                    <subviews>
-                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="HL7-wb-c4f">
-                            <rect key="frame" x="-2" y="-1" width="65" height="18"/>
-                            <buttonCell key="cell" type="check" title="Check" bezelStyle="regularSquare" imagePosition="left" inset="2" id="a30-41-iLy">
-                                <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                <font key="font" metaFont="system"/>
-                            </buttonCell>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="63" id="TPn-Tm-soW"/>
-                                <constraint firstAttribute="height" constant="16" id="fDV-3H-nGu"/>
-                            </constraints>
-                            <connections>
-                                <action selector="dateCheck_Click:" target="-2" id="cfu-dJ-mEO"/>
-                            </connections>
-                        </button>
-                        <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="d71-o2-Nvh">
-                            <rect key="frame" x="81" y="-1" width="65" height="18"/>
-                            <buttonCell key="cell" type="check" title="Check" bezelStyle="regularSquare" imagePosition="left" inset="2" id="GLo-R9-Dxn">
-                                <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                                <font key="font" metaFont="system"/>
-                            </buttonCell>
-                            <constraints>
-                                <constraint firstAttribute="width" constant="63" id="okr-9i-Hyc"/>
-                                <constraint firstAttribute="height" constant="16" id="qLd-Zt-VKi"/>
-                            </constraints>
-                            <connections>
-                                <action selector="timeCheck_Click:" target="-2" id="kNo-zB-U3I"/>
-                            </connections>
-                        </button>
-                    </subviews>
-                    <constraints>
-                        <constraint firstItem="d71-o2-Nvh" firstAttribute="leading" secondItem="HL7-wb-c4f" secondAttribute="trailing" constant="20" id="G3a-0H-bpz"/>
-                        <constraint firstItem="HL7-wb-c4f" firstAttribute="leading" secondItem="qn4-OC-4zD" secondAttribute="leading" id="Gie-jA-Efc"/>
-                        <constraint firstAttribute="bottom" secondItem="HL7-wb-c4f" secondAttribute="bottom" id="JvG-d8-FyA"/>
-                        <constraint firstAttribute="trailing" secondItem="d71-o2-Nvh" secondAttribute="trailing" id="PsD-Ww-cvd"/>
-                        <constraint firstItem="HL7-wb-c4f" firstAttribute="top" secondItem="qn4-OC-4zD" secondAttribute="top" id="fad-Cr-DXt"/>
-                        <constraint firstItem="d71-o2-Nvh" firstAttribute="centerY" secondItem="HL7-wb-c4f" secondAttribute="centerY" id="sGB-67-uso"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="MeJ-op-Krm" firstAttribute="centerY" secondItem="HAt-8V-MUY" secondAttribute="centerY" id="0ID-bh-4eE"/>
-                <constraint firstItem="tck-dO-dSW" firstAttribute="centerY" secondItem="jYD-a2-U4T" secondAttribute="centerY" id="8YC-ca-lnX"/>
-                <constraint firstItem="ZE8-gp-HVS" firstAttribute="centerY" secondItem="pMv-wo-uq1" secondAttribute="centerY" id="98t-b9-kJK"/>
-                <constraint firstItem="6ZC-ge-vPv" firstAttribute="centerY" secondItem="tck-dO-dSW" secondAttribute="centerY" id="9R7-bq-3Xf"/>
-                <constraint firstItem="MeJ-op-Krm" firstAttribute="leading" secondItem="HAt-8V-MUY" secondAttribute="trailing" constant="8" id="9jE-on-GuB"/>
-                <constraint firstItem="pMv-wo-uq1" firstAttribute="leading" secondItem="KYW-Dy-lC0" secondAttribute="trailing" constant="8" id="Az1-p1-bPH"/>
-                <constraint firstItem="CKW-of-DHj" firstAttribute="leading" secondItem="aKM-vb-hTB" secondAttribute="trailing" constant="8" id="CHo-dz-EFo"/>
-                <constraint firstItem="KYW-Dy-lC0" firstAttribute="centerY" secondItem="6ZC-ge-vPv" secondAttribute="centerY" id="EI2-yz-qaM"/>
-                <constraint firstItem="Jao-ve-9UP" firstAttribute="top" secondItem="Le4-nu-TzQ" secondAttribute="bottom" constant="15" id="HAw-cB-Nos"/>
-                <constraint firstItem="jYD-a2-U4T" firstAttribute="centerY" secondItem="Jao-ve-9UP" secondAttribute="centerY" id="HKA-ez-YgJ"/>
-                <constraint firstItem="CKW-of-DHj" firstAttribute="firstBaseline" secondItem="aKM-vb-hTB" secondAttribute="firstBaseline" id="IgA-eB-SyO"/>
-                <constraint firstItem="aKM-vb-hTB" firstAttribute="centerY" secondItem="jEA-O9-yI1" secondAttribute="centerY" id="JZL-1k-iKH"/>
-                <constraint firstItem="6ZC-ge-vPv" firstAttribute="leading" secondItem="tck-dO-dSW" secondAttribute="trailing" constant="8" id="K8h-k8-gSJ"/>
-                <constraint firstItem="jEA-O9-yI1" firstAttribute="leading" secondItem="ZE8-gp-HVS" secondAttribute="trailing" constant="8" id="Lwo-7O-WO6"/>
-                <constraint firstItem="qn4-OC-4zD" firstAttribute="centerX" secondItem="icg-01-r1f" secondAttribute="centerX" id="MhL-i6-xlR"/>
-                <constraint firstItem="Le4-nu-TzQ" firstAttribute="leading" secondItem="icg-01-r1f" secondAttribute="leading" constant="10" id="Peb-IK-geb"/>
-                <constraint firstItem="pMv-wo-uq1" firstAttribute="centerY" secondItem="KYW-Dy-lC0" secondAttribute="centerY" id="SUf-er-fea"/>
-                <constraint firstItem="HAt-8V-MUY" firstAttribute="leading" secondItem="CKW-of-DHj" secondAttribute="trailing" constant="8" id="TbO-me-qTM"/>
-                <constraint firstItem="HAt-8V-MUY" firstAttribute="centerY" secondItem="CKW-of-DHj" secondAttribute="centerY" id="TpV-TL-n3n"/>
-                <constraint firstAttribute="trailing" secondItem="Le4-nu-TzQ" secondAttribute="trailing" constant="10" id="YyQ-9t-Goj"/>
-                <constraint firstItem="KYW-Dy-lC0" firstAttribute="leading" secondItem="6ZC-ge-vPv" secondAttribute="trailing" constant="8" id="aUS-hw-j1g"/>
-                <constraint firstItem="Le4-nu-TzQ" firstAttribute="top" secondItem="icg-01-r1f" secondAttribute="top" constant="10" id="b5i-dO-zsN"/>
-                <constraint firstItem="tck-dO-dSW" firstAttribute="leading" secondItem="jYD-a2-U4T" secondAttribute="trailing" constant="8" id="beJ-pX-Nim"/>
-                <constraint firstItem="jYD-a2-U4T" firstAttribute="leading" secondItem="Jao-ve-9UP" secondAttribute="trailing" constant="8" id="hhk-HS-EX1"/>
-                <constraint firstItem="aKM-vb-hTB" firstAttribute="leading" secondItem="jEA-O9-yI1" secondAttribute="trailing" constant="8" id="izS-SA-nXM"/>
-                <constraint firstItem="qn4-OC-4zD" firstAttribute="top" secondItem="tck-dO-dSW" secondAttribute="bottom" constant="15" id="jwB-S8-DDE"/>
-                <constraint firstItem="Jao-ve-9UP" firstAttribute="leading" secondItem="4ZG-Hs-G9z" secondAttribute="leading" id="mgz-cG-iN1"/>
-                <constraint firstItem="ZE8-gp-HVS" firstAttribute="leading" secondItem="pMv-wo-uq1" secondAttribute="trailing" constant="8" id="oRR-uS-hsW"/>
-                <constraint firstItem="jEA-O9-yI1" firstAttribute="centerY" secondItem="ZE8-gp-HVS" secondAttribute="centerY" id="zT6-b3-YTM"/>
-            </constraints>
-            <point key="canvasLocation" x="396" y="56.5"/>
-        </customView>
-        <customView id="Msi-AY-uSg">
-            <rect key="frame" x="0.0" y="0.0" width="358" height="173"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="c7t-Se-u3P">
-                    <rect key="frame" x="0.0" y="0.0" width="358" height="173"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="173" id="aQx-A8-9tS"/>
-                        <constraint firstAttribute="width" constant="358" id="xaP-V9-m9v"/>
-                    </constraints>
-                    <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="PU7-L6-C4k"/>
-                </imageView>
-                <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="sYK-tA-a8s">
-                    <rect key="frame" x="272" y="136" width="83" height="32"/>
-                    <buttonCell key="cell" type="push" title="reselect" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="1s5-SP-k6m">
-                        <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                        <font key="font" metaFont="system"/>
-                    </buttonCell>
-                    <connections>
-                        <action selector="reselectButton_Click:" target="-2" id="QcZ-IA-Br1"/>
-                    </connections>
-                </button>
-                <box borderType="none" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="Azq-FB-w2y">
-                    <rect key="frame" x="94" y="32" width="171" height="110"/>
-                    <view key="contentView" id="zvE-ep-MW7">
-                        <rect key="frame" x="0.0" y="0.0" width="171" height="110"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Bww-Hi-1RW">
-                                <rect key="frame" x="75" y="50" width="20" height="20"/>
-                                <buttonCell key="cell" type="bevel" bezelStyle="rounded" image="KMImageNameMainToolbarUp" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="bkX-sC-n4N">
-                                    <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                                    <font key="font" metaFont="system"/>
-                                </buttonCell>
-                                <connections>
-                                    <action selector="selectImageButton_Click:" target="-2" id="FgF-1R-KId"/>
-                                </connections>
-                            </button>
-                            <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ZS6-14-hOj">
-                                <rect key="frame" x="67" y="29" width="37" height="16"/>
-                                <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Qmd-br-6tD">
-                                    <font key="font" metaFont="system"/>
-                                    <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                                    <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                                </textFieldCell>
-                            </textField>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="Bww-Hi-1RW" firstAttribute="centerX" secondItem="zvE-ep-MW7" secondAttribute="centerX" id="GFf-5u-48H"/>
-                            <constraint firstItem="ZS6-14-hOj" firstAttribute="top" secondItem="Bww-Hi-1RW" secondAttribute="bottom" constant="5" id="IBT-GS-qVG"/>
-                            <constraint firstItem="ZS6-14-hOj" firstAttribute="centerX" secondItem="Bww-Hi-1RW" secondAttribute="centerX" id="dNe-aA-g3s"/>
-                            <constraint firstItem="Bww-Hi-1RW" firstAttribute="centerY" secondItem="zvE-ep-MW7" secondAttribute="centerY" multiplier="0.9" id="u5Z-3O-QI2"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="110" id="8jl-hC-3aL"/>
-                        <constraint firstAttribute="width" constant="171" id="ytZ-EU-Nw3"/>
-                    </constraints>
-                </box>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="trailing" secondItem="c7t-Se-u3P" secondAttribute="trailing" id="Ncw-yq-BQJ"/>
-                <constraint firstItem="c7t-Se-u3P" firstAttribute="top" secondItem="Msi-AY-uSg" secondAttribute="top" id="V1h-25-uiI"/>
-                <constraint firstAttribute="trailing" secondItem="sYK-tA-a8s" secondAttribute="trailing" constant="10" id="dXx-hi-L8B"/>
-                <constraint firstItem="Azq-FB-w2y" firstAttribute="centerY" secondItem="Msi-AY-uSg" secondAttribute="centerY" id="fLp-Ht-Blt"/>
-                <constraint firstItem="sYK-tA-a8s" firstAttribute="top" secondItem="Msi-AY-uSg" secondAttribute="top" constant="10" id="gP0-yW-PUz"/>
-                <constraint firstItem="Azq-FB-w2y" firstAttribute="centerX" secondItem="Msi-AY-uSg" secondAttribute="centerX" id="tfu-VJ-9DO"/>
-            </constraints>
-            <point key="canvasLocation" x="399" y="281"/>
-        </customView>
-    </objects>
-    <resources>
-        <image name="KMImageNameMainToolbarUp" width="20" height="20"/>
-        <image name="KMImageNamePropertybarTextStamp1" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp10" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp11" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp2" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp3" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp4" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp5" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp6" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp7" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp8" width="18" height="18"/>
-        <image name="KMImageNamePropertybarTextStamp9" width="18" height="18"/>
-    </resources>
-</document>

+ 17 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampController.swift

@@ -0,0 +1,17 @@
+//
+//  KMStampController.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/12/2.
+//
+
+import Cocoa
+
+class KMStampController: NSViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+    }
+    
+}

+ 161 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampController.xib

@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="22505"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMStampController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="648" height="512"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Jk0-Av-o2m">
+                    <rect key="frame" x="0.0" y="0.0" width="648" height="512"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="INw-fB-83T">
+                            <rect key="frame" x="208" y="440" width="232" height="72"/>
+                            <subviews>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="19d-JF-Dyv">
+                                    <rect key="frame" x="0.0" y="32" width="232" height="40"/>
+                                    <subviews>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aUf-b0-emf">
+                                            <rect key="frame" x="-2" y="12" width="37" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Color" id="0ca-BC-gTP">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="aUf-b0-emf" firstAttribute="leading" secondItem="19d-JF-Dyv" secondAttribute="leading" id="QpD-RR-bPP"/>
+                                        <constraint firstAttribute="height" constant="40" id="WXB-mg-JaL"/>
+                                        <constraint firstItem="aUf-b0-emf" firstAttribute="centerY" secondItem="19d-JF-Dyv" secondAttribute="centerY" id="fI3-nw-q0O"/>
+                                    </constraints>
+                                </customView>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="dyY-M2-Rpg" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                    <rect key="frame" x="0.0" y="0.0" width="112" height="32"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="112" id="Tfr-up-1oj"/>
+                                        <constraint firstAttribute="height" constant="32" id="pYl-FH-9Np"/>
+                                    </constraints>
+                                </customView>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="XbM-O9-8cv" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                    <rect key="frame" x="120" y="0.0" width="112" height="32"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="32" id="1eb-Ex-sOg"/>
+                                        <constraint firstAttribute="width" constant="112" id="tJ1-Bv-9yx"/>
+                                    </constraints>
+                                </customView>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="19d-JF-Dyv" secondAttribute="trailing" id="2dy-eh-2eS"/>
+                                <constraint firstItem="19d-JF-Dyv" firstAttribute="leading" secondItem="INw-fB-83T" secondAttribute="leading" id="67J-zl-w7V"/>
+                                <constraint firstAttribute="height" constant="72" id="Aaa-Pf-bRt"/>
+                                <constraint firstItem="dyY-M2-Rpg" firstAttribute="leading" secondItem="INw-fB-83T" secondAttribute="leading" id="HcF-MX-Wzy"/>
+                                <constraint firstItem="XbM-O9-8cv" firstAttribute="top" secondItem="19d-JF-Dyv" secondAttribute="bottom" id="QXa-x2-NSr"/>
+                                <constraint firstItem="19d-JF-Dyv" firstAttribute="top" secondItem="INw-fB-83T" secondAttribute="top" id="RJN-q5-Rwq"/>
+                                <constraint firstItem="dyY-M2-Rpg" firstAttribute="top" secondItem="19d-JF-Dyv" secondAttribute="bottom" id="U1U-ym-hcG"/>
+                                <constraint firstAttribute="trailing" secondItem="XbM-O9-8cv" secondAttribute="trailing" id="dPQ-DV-uvP"/>
+                                <constraint firstAttribute="width" constant="232" id="kui-Iv-SPc"/>
+                            </constraints>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="jT7-lP-HLy">
+                            <rect key="frame" x="208" y="352" width="232" height="72"/>
+                            <subviews>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="2VW-uI-aAt">
+                                    <rect key="frame" x="0.0" y="32" width="232" height="40"/>
+                                    <subviews>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PKa-LJ-RaU">
+                                            <rect key="frame" x="-2" y="12" width="51" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Opacity" id="IEW-m9-uH6">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="PKa-LJ-RaU" firstAttribute="leading" secondItem="2VW-uI-aAt" secondAttribute="leading" id="i6k-m5-rYO"/>
+                                        <constraint firstItem="PKa-LJ-RaU" firstAttribute="centerY" secondItem="2VW-uI-aAt" secondAttribute="centerY" id="nNf-Qp-0Pl"/>
+                                        <constraint firstAttribute="height" constant="40" id="sbs-gO-xlq"/>
+                                    </constraints>
+                                </customView>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="rv9-oe-9Lx">
+                                    <rect key="frame" x="0.0" y="0.0" width="232" height="32"/>
+                                    <subviews>
+                                        <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="NE8-37-B27">
+                                            <rect key="frame" x="0.0" y="6" width="20" height="20"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="20" id="7Ca-0q-DDX"/>
+                                                <constraint firstAttribute="height" constant="20" id="gJg-Gq-jGV"/>
+                                            </constraints>
+                                            <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="edit_ocapity" id="Cyl-fz-tnx"/>
+                                        </imageView>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="prO-Cm-wen" customClass="ComponentSlider" customModule="KMComponentLibrary">
+                                            <rect key="frame" x="28" y="10" width="116" height="12"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="12" id="Ryh-bN-bjA"/>
+                                            </constraints>
+                                        </customView>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="4hY-ul-qSF" customClass="ComponentSelect" customModule="KMComponentLibrary">
+                                            <rect key="frame" x="152" y="0.0" width="80" height="32"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="32" id="voY-5a-h0r"/>
+                                                <constraint firstAttribute="width" constant="80" id="zzO-v8-BXV"/>
+                                            </constraints>
+                                        </customView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="prO-Cm-wen" firstAttribute="leading" secondItem="rv9-oe-9Lx" secondAttribute="leading" constant="28" id="7km-ws-oZ7"/>
+                                        <constraint firstAttribute="trailing" secondItem="4hY-ul-qSF" secondAttribute="trailing" id="GfT-RQ-BP5"/>
+                                        <constraint firstItem="4hY-ul-qSF" firstAttribute="top" secondItem="rv9-oe-9Lx" secondAttribute="top" id="b9e-3A-dQO"/>
+                                        <constraint firstItem="NE8-37-B27" firstAttribute="centerY" secondItem="rv9-oe-9Lx" secondAttribute="centerY" id="hhi-Fi-jFG"/>
+                                        <constraint firstAttribute="height" constant="32" id="i3N-Hj-LvZ"/>
+                                        <constraint firstItem="4hY-ul-qSF" firstAttribute="leading" secondItem="prO-Cm-wen" secondAttribute="trailing" constant="8" id="jPJ-0J-qW9"/>
+                                        <constraint firstItem="prO-Cm-wen" firstAttribute="centerY" secondItem="rv9-oe-9Lx" secondAttribute="centerY" id="lCO-e9-cyU"/>
+                                        <constraint firstItem="NE8-37-B27" firstAttribute="leading" secondItem="rv9-oe-9Lx" secondAttribute="leading" id="oEh-wZ-lVD"/>
+                                    </constraints>
+                                </customView>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="rv9-oe-9Lx" secondAttribute="trailing" id="ASf-cw-Mi4"/>
+                                <constraint firstAttribute="width" constant="232" id="BHE-kH-0Ui"/>
+                                <constraint firstItem="2VW-uI-aAt" firstAttribute="leading" secondItem="jT7-lP-HLy" secondAttribute="leading" id="QKY-Zz-N6R"/>
+                                <constraint firstAttribute="height" constant="72" id="WkL-cz-mBi"/>
+                                <constraint firstItem="2VW-uI-aAt" firstAttribute="top" secondItem="jT7-lP-HLy" secondAttribute="top" id="crB-d7-XKb"/>
+                                <constraint firstItem="rv9-oe-9Lx" firstAttribute="top" secondItem="2VW-uI-aAt" secondAttribute="bottom" id="fnV-Fd-Iok"/>
+                                <constraint firstItem="rv9-oe-9Lx" firstAttribute="leading" secondItem="jT7-lP-HLy" secondAttribute="leading" id="p8u-Yo-7zR"/>
+                                <constraint firstAttribute="trailing" secondItem="2VW-uI-aAt" secondAttribute="trailing" id="sjd-Tc-Q0O"/>
+                            </constraints>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="jT7-lP-HLy" firstAttribute="top" secondItem="INw-fB-83T" secondAttribute="bottom" constant="16" id="O3n-tZ-OE4"/>
+                        <constraint firstItem="INw-fB-83T" firstAttribute="top" secondItem="Jk0-Av-o2m" secondAttribute="top" id="R9Q-TG-9e3"/>
+                        <constraint firstItem="INw-fB-83T" firstAttribute="centerX" secondItem="Jk0-Av-o2m" secondAttribute="centerX" id="UN6-RS-KO1"/>
+                        <constraint firstItem="jT7-lP-HLy" firstAttribute="centerX" secondItem="Jk0-Av-o2m" secondAttribute="centerX" id="WgL-QM-NE1"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="Jk0-Av-o2m" secondAttribute="trailing" id="ZHM-Ic-e19"/>
+                <constraint firstItem="Jk0-Av-o2m" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="lOB-sJ-7wR"/>
+                <constraint firstItem="Jk0-Av-o2m" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="qMC-wm-IdU"/>
+                <constraint firstAttribute="bottom" secondItem="Jk0-Av-o2m" secondAttribute="bottom" id="yDG-Me-whf"/>
+            </constraints>
+            <point key="canvasLocation" x="216" y="48"/>
+        </customView>
+    </objects>
+    <resources>
+        <image name="edit_ocapity" width="16" height="16"/>
+    </resources>
+</document>

+ 17 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampListController.swift

@@ -0,0 +1,17 @@
+//
+//  KMStampListController.swift
+//  PDF Reader Pro
+//
+//  Created by Niehaoyu on 2024/12/2.
+//
+
+import Cocoa
+
+class KMStampListController: NSViewController {
+
+    override func viewDidLoad() {
+        super.viewDidLoad()
+        // Do view setup here.
+    }
+    
+}

+ 92 - 0
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampListController.xib

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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="22505"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMStampListController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <customView id="Hz6-mo-xeY">
+            <rect key="frame" x="0.0" y="0.0" width="343" height="442"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="6ZJ-3s-joE">
+                    <rect key="frame" x="0.0" y="0.0" width="343" height="442"/>
+                    <subviews>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="6zf-53-4LV">
+                            <rect key="frame" x="40" y="386" width="264" height="56"/>
+                            <subviews>
+                                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Sdy-TY-6De" customClass="ComponentTabs" customModule="KMComponentLibrary">
+                                    <rect key="frame" x="16" y="16" width="232" height="32"/>
+                                    <constraints>
+                                        <constraint firstAttribute="width" constant="232" id="1r7-r5-deh"/>
+                                        <constraint firstAttribute="height" constant="32" id="YL8-mJ-4dt"/>
+                                    </constraints>
+                                </customView>
+                            </subviews>
+                            <constraints>
+                                <constraint firstAttribute="height" constant="56" id="0bW-MT-jjy"/>
+                                <constraint firstItem="Sdy-TY-6De" firstAttribute="top" secondItem="6zf-53-4LV" secondAttribute="top" constant="8" id="3yZ-9M-UT8"/>
+                                <constraint firstItem="Sdy-TY-6De" firstAttribute="centerX" secondItem="6zf-53-4LV" secondAttribute="centerX" id="YXU-Ei-95O"/>
+                                <constraint firstAttribute="width" constant="264" id="hrU-lD-de1"/>
+                            </constraints>
+                        </customView>
+                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="riV-Sk-dpT">
+                            <rect key="frame" x="0.0" y="0.0" width="343" height="386"/>
+                            <subviews>
+                                <scrollView wantsLayer="YES" fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AvK-bG-Ffl">
+                                    <rect key="frame" x="10" y="41" width="322" height="305"/>
+                                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+                                    <clipView key="contentView" id="X8W-xi-xSN">
+                                        <rect key="frame" x="0.0" y="0.0" width="307" height="305"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                        <subviews>
+                                            <collectionView selectable="YES" allowsMultipleSelection="YES" id="jhY-gc-7af">
+                                                <rect key="frame" x="0.0" y="0.0" width="307" height="307"/>
+                                                <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
+                                                <collectionViewFlowLayout key="collectionViewLayout" id="Oz2-dn-342">
+                                                    <size key="itemSize" width="1" height="1"/>
+                                                </collectionViewFlowLayout>
+                                                <color key="primaryBackgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </collectionView>
+                                        </subviews>
+                                    </clipView>
+                                    <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="9D1-og-jiV">
+                                        <rect key="frame" x="-100" y="-100" width="233" height="15"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                    </scroller>
+                                    <scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="djg-ka-iT9">
+                                        <rect key="frame" x="307" y="0.0" width="15" height="305"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                    </scroller>
+                                </scrollView>
+                            </subviews>
+                        </customView>
+                    </subviews>
+                    <constraints>
+                        <constraint firstItem="riV-Sk-dpT" firstAttribute="top" secondItem="6zf-53-4LV" secondAttribute="bottom" id="7Va-Y2-Sau"/>
+                        <constraint firstAttribute="bottom" secondItem="riV-Sk-dpT" secondAttribute="bottom" id="Prt-TU-Vhs"/>
+                        <constraint firstItem="6zf-53-4LV" firstAttribute="centerX" secondItem="6ZJ-3s-joE" secondAttribute="centerX" id="Uzq-gJ-xgQ"/>
+                        <constraint firstAttribute="trailing" secondItem="riV-Sk-dpT" secondAttribute="trailing" id="XXz-QG-Jqe"/>
+                        <constraint firstItem="riV-Sk-dpT" firstAttribute="leading" secondItem="6ZJ-3s-joE" secondAttribute="leading" id="aRg-AE-Lde"/>
+                        <constraint firstItem="6zf-53-4LV" firstAttribute="top" secondItem="6ZJ-3s-joE" secondAttribute="top" id="lhb-Fd-pch"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="6ZJ-3s-joE" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" id="DrB-dD-09r"/>
+                <constraint firstAttribute="bottom" secondItem="6ZJ-3s-joE" secondAttribute="bottom" id="cJS-2V-wbl"/>
+                <constraint firstAttribute="trailing" secondItem="6ZJ-3s-joE" secondAttribute="trailing" id="e4B-xa-zWS"/>
+                <constraint firstItem="6ZJ-3s-joE" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" id="eeU-rF-90X"/>
+            </constraints>
+            <point key="canvasLocation" x="136.5" y="-4"/>
+        </customView>
+    </objects>
+</document>

+ 147 - 141
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/StampList/KMStampManager.swift

@@ -25,6 +25,24 @@ let kStampNeedExchangKey = "kStampNeedExchangKey"
 let CPDFDynamicStampDateStyleKey1 = "km_pdfview_dynamic_stamp_date_style"
 let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
 
+enum KMCreateStampType: UInt {
+    case standard = 0
+    case custom
+    case dynamic
+}
+
+enum KMAnnotationStampCreateType: UInt {
+    case type_default = 0
+    case signature
+}
+
+struct KMPDFAnnotationSignatureType: OptionSet {
+    let rawValue: UInt
+    static let ink = KMPDFAnnotationSignatureType(rawValue: 1 << 0)
+    static let text = KMPDFAnnotationSignatureType(rawValue: 1 << 1)
+    static let image = KMPDFAnnotationSignatureType(rawValue: 1 << 2)
+}
+
 @objcMembers class KMStampManager: NSObject {
     static let defaultManager = KMStampManager()
     
@@ -36,8 +54,133 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         return "\(dateFormatter.string(from: Date()))\(Int.random(in: 0..<10000))"
     }
     
+    func dateStyleArray() -> [String] {
+        return ["m/d", "m/d/yy", "m/d/yyyy", "mm/dd/yy", "mm/dd/yyyy", "d/m/yy", "d/m/yyyy", "dd/mm/yy", "dd/mm/yyyy", "mm/yy", "mm/yyyy", "m.d.yy", "m.d.yyyy", "mm.dd.yy", "mm.dd.yyyy", "mm.yy", "mm.yyyy", "d.m.yy", "d.m.yyyy", "dd.mm.yy", "dd.mm.yyyy", "yy-mm-dd", "yyyy-mm-dd", NSLocalizedString("Default", comment: "Default")]
+    }
+    
+    func defaultStandardStamps() -> [CStampObject] {
+        var dynamic: [CStampObject] = []
+        let standarArray: [Int] = [
+            CStandardStampType.Notapproved.rawValue,
+            CStandardStampType.Approved.rawValue,
+            CStandardStampType.Completed.rawValue,
+            CStandardStampType.Final.rawValue,
+            CStandardStampType.Draft.rawValue,
+            CStandardStampType.Confidential.rawValue,
+            CStandardStampType.Notforpublicrelease.rawValue,
+            CStandardStampType.Forpublicrelease.rawValue,
+            CStandardStampType.Forcomment.rawValue,
+            CStandardStampType.Void.rawValue,
+            CStandardStampType.Preliminaryresults.rawValue,
+            CStandardStampType.Informationonly.rawValue,
+            CStandardStampType.Revised.rawValue,
+            CStandardStampType.Emergency.rawValue,
+            CStandardStampType.Expired.rawValue,
+            CStandardStampType.Received.rawValue,
+            CStandardStampType.Reviewed.rawValue,
+            CStandardStampType.Verified.rawValue,
+            CStandardStampType.Accepteder.rawValue,
+            CStandardStampType.Rejecteder.rawValue,
+            CStandardStampType.Witness.rawValue,
+            CStandardStampType.Initialhere.rawValue,
+            CStandardStampType.Signhere.rawValue,
+            CStandardStampType.Circle.rawValue,
+            CStandardStampType.Accepted.rawValue,
+            CStandardStampType.Rejected.rawValue,
+            CStandardStampType.Chick.rawValue,
+            CStandardStampType.Cross.rawValue
+        ]
+        
+        for index in standarArray {
+            let object = CStampObject(standardStampType: CStandardStampType(rawValue: index) ?? .Approved)
+            dynamic.append(object)
+        }
+        
+        return dynamic
+    }
+    
+    func getNameAndDateString() -> String {
+        
+        let dateStyleIndicate = UserDefaults.standard.string(forKey: CPDFDynamicStampDateStyleKey1)
+        var dateFormatterString = ""
+        
+        if dateStyleIndicate?.isEmpty ?? true {
+            dateFormatterString = dateStyleArray().last ?? ""
+        } else {
+            if let index = dateStyleArray().firstIndex(of: dateStyleIndicate!) {
+                dateFormatterString = dateStyleIndicate!
+            }
+        }
+        
+        var dateString = setDynamicStampDateStringWithDateStyle(dateFormatterString)
+        
+        let dynamicArray = ["REVISED", "REVIEWED", "RECEIVED", "APPROVED", "CONFIDENTIAL"]
+        var author = KMDataManager.ud_string(forKey: KMUserNameKey) ?? ""
+        
+        // Retrieve need author flag from UserDefaults
+        let isNeedAuthor = UserDefaults.standard.bool(forKey: CPDFDynamicStampNeedAuthorKey1)
+        
+        if !isNeedAuthor {
+            author = author.isEmpty ? NSFullUserName() : author
+            dateString = "By \(author) at \(dateString)"
+        }else{
+            dateString = ""
+        }
+        return dateString
+    }
+    
+    func dynamicStamps() -> [CStampObject] {
+        var dynamicStampArray: [CStampObject] = []
+        
+        // Retrieve date style from UserDefaults
+        let dateStyleIndicate = UserDefaults.standard.string(forKey: CPDFDynamicStampDateStyleKey1)
+        var dateFormatterString = ""
+        
+        if dateStyleIndicate?.isEmpty ?? true {
+            dateFormatterString = dateStyleArray().last ?? ""
+        } else {
+            if let index = dateStyleArray().firstIndex(of: dateStyleIndicate!) {
+                dateFormatterString = dateStyleIndicate!
+            }
+        }
+        
+        var dateString = setDynamicStampDateStringWithDateStyle(dateFormatterString)
+        
+        let dynamicArray = ["REVISED", "REVIEWED", "RECEIVED", "APPROVED", "CONFIDENTIAL"]
+        var author = KMDataManager.ud_string(forKey: KMUserNameKey) ?? ""
+        
+        // Retrieve need author flag from UserDefaults
+        let isNeedAuthor = UserDefaults.standard.bool(forKey: CPDFDynamicStampNeedAuthorKey1)
+        
+        if !isNeedAuthor {
+            author = author.isEmpty ? NSFullUserName() : author
+            dateString = "By \(author) at \(dateString)"
+        }
+        
+        dynamicArray.enumerated().forEach { (idx, obj) in
+            var style: CPDFStampStyle = .red
+            
+            if idx > 0 && idx < 4 {
+                style = .green
+            }
+            
+            var stamp: CStampObject
+            
+            if idx == 4 {
+                stamp = CStampObject(dynamicText: obj, dynamicDetailText: dateString, dynamicStyle: style, needExchangeFontSize: true, dynamicShape: .rectangle)
+            } else {
+                stamp = CStampObject(dynamicText: obj, dynamicDetailText: dateString, dynamicStyle: style, needExchangeFontSize: false, dynamicShape: .rectangle)
+            }
+            
+            dynamicStampArray.append(stamp)
+        }
+        
+        return dynamicStampArray
+    }
+    
     override init() {
         super.init()
+        
         stamps = []
         stamps.append(contentsOf: defaultStandardStamps())
         stamps.append(contentsOf: dynamicStamps())
@@ -185,127 +328,7 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         }
     }
     
-    
-    func defaultStandardStamps() -> [CStampObject] {
-        var dynamic: [CStampObject] = []
-        let standarArray: [Int] = [
-            CStandardStampType.Notapproved.rawValue,
-            CStandardStampType.Approved.rawValue,
-            CStandardStampType.Completed.rawValue,
-            CStandardStampType.Final.rawValue,
-            CStandardStampType.Draft.rawValue,
-            CStandardStampType.Confidential.rawValue,
-            CStandardStampType.Notforpublicrelease.rawValue,
-            CStandardStampType.Forpublicrelease.rawValue,
-            CStandardStampType.Forcomment.rawValue,
-            CStandardStampType.Void.rawValue,
-            CStandardStampType.Preliminaryresults.rawValue,
-            CStandardStampType.Informationonly.rawValue,
-            CStandardStampType.Revised.rawValue,
-            CStandardStampType.Emergency.rawValue,
-            CStandardStampType.Expired.rawValue,
-            CStandardStampType.Received.rawValue,
-            CStandardStampType.Reviewed.rawValue,
-            CStandardStampType.Verified.rawValue,
-            CStandardStampType.Accepteder.rawValue,
-            CStandardStampType.Rejecteder.rawValue,
-            CStandardStampType.Witness.rawValue,
-            CStandardStampType.Initialhere.rawValue,
-            CStandardStampType.Signhere.rawValue,
-            CStandardStampType.Circle.rawValue,
-            CStandardStampType.Accepted.rawValue,
-            CStandardStampType.Rejected.rawValue,
-            CStandardStampType.Chick.rawValue,
-            CStandardStampType.Cross.rawValue
-        ]
-        
-        for index in standarArray {
-            let object = CStampObject(standardStampType: CStandardStampType(rawValue: index) ?? .Approved)
-            dynamic.append(object)
-        }
-        
-        return dynamic
-    }
-    
-    func getNameAndDateString() -> String {
-        
-        let dateStyleIndicate = UserDefaults.standard.string(forKey: CPDFDynamicStampDateStyleKey1)
-        var dateFormatterString = ""
-        
-        if dateStyleIndicate?.isEmpty ?? true {
-            dateFormatterString = dateStyleArray().last ?? ""
-        } else {
-            if let index = dateStyleArray().firstIndex(of: dateStyleIndicate!) {
-                dateFormatterString = dateStyleIndicate!
-            }
-        }
-        
-        var dateString = setDynamicStampDateStringWithDateStyle(dateFormatterString)
-        
-        let dynamicArray = ["REVISED", "REVIEWED", "RECEIVED", "APPROVED", "CONFIDENTIAL"]
-        var author = KMDataManager.ud_string(forKey: KMUserNameKey) ?? ""
-        
-        // Retrieve need author flag from UserDefaults
-        let isNeedAuthor = UserDefaults.standard.bool(forKey: CPDFDynamicStampNeedAuthorKey1)
-        
-        if !isNeedAuthor {
-            author = author.isEmpty ? NSFullUserName() : author
-            dateString = "By \(author) at \(dateString)"
-        }else{
-            dateString = ""
-        }
-        return dateString
-    }
-    
-    func dynamicStamps() -> [CStampObject] {
-        var dynamicStampArray: [CStampObject] = []
-        
-        // Retrieve date style from UserDefaults
-        let dateStyleIndicate = UserDefaults.standard.string(forKey: CPDFDynamicStampDateStyleKey1)
-        var dateFormatterString = ""
-        
-        if dateStyleIndicate?.isEmpty ?? true {
-            dateFormatterString = dateStyleArray().last ?? ""
-        } else {
-            if let index = dateStyleArray().firstIndex(of: dateStyleIndicate!) {
-                dateFormatterString = dateStyleIndicate!
-            }
-        }
-        
-        var dateString = setDynamicStampDateStringWithDateStyle(dateFormatterString)
-        
-        let dynamicArray = ["REVISED", "REVIEWED", "RECEIVED", "APPROVED", "CONFIDENTIAL"]
-        var author = KMDataManager.ud_string(forKey: KMUserNameKey) ?? ""
-        
-        // Retrieve need author flag from UserDefaults
-        let isNeedAuthor = UserDefaults.standard.bool(forKey: CPDFDynamicStampNeedAuthorKey1)
-        
-        if !isNeedAuthor {
-            author = author.isEmpty ? NSFullUserName() : author
-            dateString = "By \(author) at \(dateString)"
-        }
-        
-        dynamicArray.enumerated().forEach { (idx, obj) in
-            var style: CPDFStampStyle = .red
-            
-            if idx > 0 && idx < 4 {
-                style = .green
-            }
-            
-            var stamp: CStampObject
-            
-            if idx == 4 {
-                stamp = CStampObject(dynamicText: obj, dynamicDetailText: dateString, dynamicStyle: style, needExchangeFontSize: true, dynamicShape: .rectangle)
-            } else {
-                stamp = CStampObject(dynamicText: obj, dynamicDetailText: dateString, dynamicStyle: style, needExchangeFontSize: false, dynamicShape: .rectangle)
-            }
-            
-            dynamicStampArray.append(stamp)
-        }
-        
-        return dynamicStampArray
-    }
-    
+    //MARK: - 增删改查
     func addStamp(withString string: String?, categoryString: CPDFStampType, nameString: String?, dateString: String?, needExchangeFontSize: Bool, color: CPDFStampStyle, shape: CPDFStampShape, date: String?, time: String?) -> Bool {
         if !FileManager.default.fileExists(atPath: kStampFolderPath.path) {
             do {
@@ -396,20 +419,6 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         } else {
             colorV = 14
         }
-        //            else if color == 3 { // KMAnnotationStampBlackColor
-        ////                                style = .black
-        //                shape = .rectangle
-        //            } else if color == 4 { // KMAnnotationStampLightRedColor
-        //                style = .red
-        //                shape = .rectangle
-        //            } else if color == 5 { // KMAnnotationStampDarkRedColor
-        //                style = .red
-        //                shape = .rectangle
-        //            } else if color == 6 { // KMAnnotationStampPurpleColor
-        ////                                style = .purple
-        //                shape = .rectangle
-        //            }
-        
         
         stampDictionary[kStampOfColorKey] = colorV
         stampDictionary[kStampOfDateKey] = Date()
@@ -535,7 +544,7 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
     
     func removeStamps(array: [CStampObject]) {
         for object in array {
-            self.removeStamp(object)
+            _ = self.removeStamp(object)
         }
     }
     
@@ -547,9 +556,9 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
 
     func addStamp(_ stamp: CStampObject) {
         if stamp.stampCategoryType == .text {
-            addStamp(withString: stamp.text, categoryString: .text, nameString: "", dateString: stamp.detailText, needExchangeFontSize: false, color: stamp.style, shape: stamp.shape, date: stamp.dateString, time: stamp.timeString)
+           _ = addStamp(withString: stamp.text, categoryString: .text, nameString: "", dateString: stamp.detailText, needExchangeFontSize: false, color: stamp.style, shape: stamp.shape, date: stamp.dateString, time: stamp.timeString)
         } else if stamp.stampCategoryType == .image {
-            addStamp(withImagePath: stamp.imagePath, categoryString: .image, nameString: "")
+            _ = addStamp(withImagePath: stamp.imagePath, categoryString: .image, nameString: "")
         }
     }
     
@@ -612,8 +621,5 @@ let CPDFDynamicStampNeedAuthorKey1 = "km_pdfview_dynamic_stamp_need_author"
         return formatter.string(from: now)
     }
 
-    func dateStyleArray() -> [String] {
-        return ["m/d", "m/d/yy", "m/d/yyyy", "mm/dd/yy", "mm/dd/yyyy", "d/m/yy", "d/m/yyyy", "dd/mm/yy", "dd/mm/yyyy", "mm/yy", "mm/yyyy", "m.d.yy", "m.d.yyyy", "mm.dd.yy", "mm.dd.yyyy", "mm.yy", "mm.yyyy", "d.m.yy", "d.m.yyyy", "dd.mm.yy", "dd.mm.yyyy", "yy-mm-dd", "yyyy-mm-dd", NSLocalizedString("Default", comment: "Default")]
-    }
 }
            

+ 38 - 32
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -478,12 +478,6 @@
 		89E4E77C2967B370002DBA6F /* KMDynamicStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */; };
 		89E4E77D2967B370002DBA6F /* KMDynamicStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */; };
 		89E4E77E2967B370002DBA6F /* KMDynamicStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */; };
-		89E4E7822967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7802967BF5A002DBA6F /* KMCustomizeStampViewController.m */; };
-		89E4E7832967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7802967BF5A002DBA6F /* KMCustomizeStampViewController.m */; };
-		89E4E7842967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 89E4E7802967BF5A002DBA6F /* KMCustomizeStampViewController.m */; };
-		89E4E7852967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7812967BF5A002DBA6F /* KMCustomizeStampViewController.xib */; };
-		89E4E7862967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7812967BF5A002DBA6F /* KMCustomizeStampViewController.xib */; };
-		89E4E7872967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E4E7812967BF5A002DBA6F /* KMCustomizeStampViewController.xib */; };
 		89E9B3F9295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E9B3F8295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib */; };
 		89E9B3FA295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E9B3F8295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib */; };
 		89E9B3FB295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 89E9B3F8295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib */; };
@@ -3416,6 +3410,18 @@
 		BB4D02A92C22D17B0001474A /* KMEditPDFPopGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4D02A82C22D17B0001474A /* KMEditPDFPopGuideView.swift */; };
 		BB4D02AA2C22D17B0001474A /* KMEditPDFPopGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4D02A82C22D17B0001474A /* KMEditPDFPopGuideView.swift */; };
 		BB4D02AB2C22D17B0001474A /* KMEditPDFPopGuideView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4D02A82C22D17B0001474A /* KMEditPDFPopGuideView.swift */; };
+		BB4DFD5A2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
+		BB4DFD5B2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
+		BB4DFD5C2CFDA9E600026C8B /* KMStampListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */; };
+		BB4DFD5D2CFDA9E600026C8B /* KMStampListController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */; };
+		BB4DFD5E2CFDA9E600026C8B /* KMStampListController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */; };
+		BB4DFD5F2CFDA9E600026C8B /* KMStampListController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */; };
+		BB4DFD632CFDAA3100026C8B /* KMStampController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD612CFDAA3100026C8B /* KMStampController.swift */; };
+		BB4DFD642CFDAA3100026C8B /* KMStampController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD612CFDAA3100026C8B /* KMStampController.swift */; };
+		BB4DFD652CFDAA3100026C8B /* KMStampController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4DFD612CFDAA3100026C8B /* KMStampController.swift */; };
+		BB4DFD662CFDAA3100026C8B /* KMStampController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD622CFDAA3100026C8B /* KMStampController.xib */; };
+		BB4DFD672CFDAA3100026C8B /* KMStampController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD622CFDAA3100026C8B /* KMStampController.xib */; };
+		BB4DFD682CFDAA3100026C8B /* KMStampController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB4DFD622CFDAA3100026C8B /* KMStampController.xib */; };
 		BB4EEF2D29763EE7003A3537 /* KMRedactBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4EEF2B29763EE7003A3537 /* KMRedactBaseWindowController.swift */; };
 		BB4EEF2E29763EE7003A3537 /* KMRedactBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4EEF2B29763EE7003A3537 /* KMRedactBaseWindowController.swift */; };
 		BB4EEF2F29763EE7003A3537 /* KMRedactBaseWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB4EEF2B29763EE7003A3537 /* KMRedactBaseWindowController.swift */; };
@@ -5693,9 +5699,6 @@
 		89E4E753296427E5002DBA6F /* NSImage_SKExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSImage_SKExtensions.m; sourceTree = "<group>"; };
 		89E4E754296427E5002DBA6F /* NSImage_SKExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSImage_SKExtensions.h; sourceTree = "<group>"; };
 		89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMDynamicStampViewController.xib; sourceTree = "<group>"; };
-		89E4E77F2967BF5A002DBA6F /* KMCustomizeStampViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KMCustomizeStampViewController.h; sourceTree = "<group>"; };
-		89E4E7802967BF5A002DBA6F /* KMCustomizeStampViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KMCustomizeStampViewController.m; sourceTree = "<group>"; };
-		89E4E7812967BF5A002DBA6F /* KMCustomizeStampViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCustomizeStampViewController.xib; sourceTree = "<group>"; };
 		89E9B3F8295BE2EC00AEFA61 /* KMEditPDFTextPropertyViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMEditPDFTextPropertyViewController.xib; sourceTree = "<group>"; };
 		9F00CCB32A2F1E0100AC462E /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
 		9F00CCB72A2F1E0F00AC462E /* dsa_priv.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dsa_priv.pem; sourceTree = "<group>"; };
@@ -6865,6 +6868,10 @@
 		BB4A949F2B04D8EC00940F8B /* KMGOCRManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = KMGOCRManager.m; sourceTree = "<group>"; };
 		BB4A94A32B04DA0C00940F8B /* KMGOCRManagerNew.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMGOCRManagerNew.swift; sourceTree = "<group>"; };
 		BB4D02A82C22D17B0001474A /* KMEditPDFPopGuideView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMEditPDFPopGuideView.swift; sourceTree = "<group>"; };
+		BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMStampListController.swift; sourceTree = "<group>"; };
+		BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMStampListController.xib; sourceTree = "<group>"; };
+		BB4DFD612CFDAA3100026C8B /* KMStampController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMStampController.swift; sourceTree = "<group>"; };
+		BB4DFD622CFDAA3100026C8B /* KMStampController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMStampController.xib; sourceTree = "<group>"; };
 		BB4EEF2B29763EE7003A3537 /* KMRedactBaseWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactBaseWindowController.swift; sourceTree = "<group>"; };
 		BB4EEF2C29763EE7003A3537 /* KMRedactBaseWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMRedactBaseWindowController.xib; sourceTree = "<group>"; };
 		BB4EEF3329764166003A3537 /* KMRedactPropertyWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactPropertyWindowController.swift; sourceTree = "<group>"; };
@@ -8516,15 +8523,13 @@
 		89E4E75D29656A88002DBA6F /* StampList */ = {
 			isa = PBXGroup;
 			children = (
-				BBF19E8D2B0B301F007154C8 /* CreateStamp */,
-				AD5999412AD8DC2000412F8B /* KMDynamicStampViewController.swift */,
-				89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */,
-				89E4E77F2967BF5A002DBA6F /* KMCustomizeStampViewController.h */,
-				89E4E7802967BF5A002DBA6F /* KMCustomizeStampViewController.m */,
-				89E4E7812967BF5A002DBA6F /* KMCustomizeStampViewController.xib */,
 				AD59993D2AD7E88600412F8B /* KMStampManager.swift */,
-				9FB220DD2B10850400A5B208 /* KMAnnotationStampViewController.swift */,
-				9FB220DE2B10850400A5B208 /* KMAnnotationStampViewController.xib */,
+				BBF19E982B0B3218007154C8 /* KMAnnotationStamp.swift */,
+				BB4DFD582CFDA9E600026C8B /* KMStampListController.swift */,
+				BB4DFD592CFDA9E600026C8B /* KMStampListController.xib */,
+				BB4DFD612CFDAA3100026C8B /* KMStampController.swift */,
+				BB4DFD622CFDAA3100026C8B /* KMStampController.xib */,
+				BBF19E8D2B0B301F007154C8 /* CreateStamp */,
 			);
 			path = StampList;
 			sourceTree = "<group>";
@@ -12998,13 +13003,6 @@
 			path = Common;
 			sourceTree = "<group>";
 		};
-		BB89318B2B0C92DC0054F58B /* Model */ = {
-			isa = PBXGroup;
-			children = (
-			);
-			path = Model;
-			sourceTree = "<group>";
-		};
 		BB897213294AED3E0045787C /* Watermark */ = {
 			isa = PBXGroup;
 			children = (
@@ -13788,9 +13786,12 @@
 			isa = PBXGroup;
 			children = (
 				BBB376942B10A7EA009539CC /* images */,
-				BB89318B2B0C92DC0054F58B /* Model */,
 				BBF19E972B0B31F7007154C8 /* View */,
 				BBF19E962B0B31DF007154C8 /* Controller */,
+				AD5999412AD8DC2000412F8B /* KMDynamicStampViewController.swift */,
+				89E4E7782967B370002DBA6F /* KMDynamicStampViewController.xib */,
+				9FB220DD2B10850400A5B208 /* KMAnnotationStampViewController.swift */,
+				9FB220DE2B10850400A5B208 /* KMAnnotationStampViewController.xib */,
 			);
 			path = CreateStamp;
 			sourceTree = "<group>";
@@ -13807,7 +13808,6 @@
 		BBF19E972B0B31F7007154C8 /* View */ = {
 			isa = PBXGroup;
 			children = (
-				BBF19E982B0B3218007154C8 /* KMAnnotationStamp.swift */,
 				9FB220EB2B185B3100A5B208 /* KMButtomCell.swift */,
 			);
 			path = View;
@@ -14692,6 +14692,7 @@
 				BB19A7632CB7CFBC008204DC /* KMHomeQuickToolsView.xib in Resources */,
 				AD1CA3FA2A05FCB60070541F /* KMAnnotationScreenViewController.xib in Resources */,
 				BB35732D2AF4F07B004CDA92 /* BatchImage.xcassets in Resources */,
+				BB4DFD662CFDAA3100026C8B /* KMStampController.xib in Resources */,
 				9FDD0F67294AB645000C4DAD /* KMMainViewController.xib in Resources */,
 				ADB2D6E9294740F30029D2B3 /* KMPrintPaperSetWindowController.xib in Resources */,
 				BBA2109029ACBFDB00E6B346 /* nosign.pdf in Resources */,
@@ -14767,6 +14768,7 @@
 				ADDF838F2B391A5D00A81A4E /* DSignDetailTypeACellView.xib in Resources */,
 				BB9599C72B3164B40062D346 /* KMRedactPropertiesWindowController.xib in Resources */,
 				BBFE6E822930EBD400142C01 /* KMCompressWindowController.xib in Resources */,
+				BB4DFD5D2CFDA9E600026C8B /* KMStampListController.xib in Resources */,
 				BB5F8A1C29BB15AD00365ADB /* KMEmailSubWindowController.xib in Resources */,
 				9F221EDA29A9EC0900978A59 /* KMFillSignTextPanel.xib in Resources */,
 				BBB2ACE02B5943F800098854 /* Quick Start Guide.pdf in Resources */,
@@ -14819,7 +14821,6 @@
 				653647BF2CDCA5DE00CDB13E /* KMBatchOperateSplitViewController.xib in Resources */,
 				ADCFFC0629C04617007D3657 /* BOTA.xcassets in Resources */,
 				ADDF837A2B391A5D00A81A4E /* CDSignatureTextViewController.xib in Resources */,
-				89E4E7852967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */,
 				BBFDFAA22AF3815C00E08AA2 /* KMTextHintWindowController.xib in Resources */,
 				AD1CA4032A06040B0070541F /* KMAnnotationScreenCollectionView.xib in Resources */,
 				BBE788B42CBD2463008086E2 /* DividerDemoVC.xib in Resources */,
@@ -15288,6 +15289,7 @@
 				9FF371D82C69B92F005F9CC5 /* CAreaMeasureInfoWindowController.xib in Resources */,
 				ADE86A972B0226BB00414DFA /* KMRemovePasswordView.xib in Resources */,
 				F30B22892CB8D9630041002E /* KMNQuickToolCollectionViewItem.xib in Resources */,
+				BB4DFD672CFDAA3100026C8B /* KMStampController.xib in Resources */,
 				89316856296E45CA0073EA59 /* KMImageAccessoryController.xib in Resources */,
 				9FF371D42C69B8C6005F9CC5 /* CPerimeterMeasureInfoWindowController.xib in Resources */,
 				9FA693AC2987C0590055488A /* KMStepperView.xib in Resources */,
@@ -15362,7 +15364,6 @@
 				ADE86AA92B031FFA00414DFA /* KMCompareView.xib in Resources */,
 				9FF94F1D29A770B500B1EF69 /* KMFillSignShapePanel.xib in Resources */,
 				BB1B0AC32B4FC6E900889528 /* KMFunctionGuideWindowController.xib in Resources */,
-				89E4E7862967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */,
 				AD85D1BE2AF0D2DD000F4D28 /* KMHomeQuickToolsCollectionView.xib in Resources */,
 				BB03D6A12B024AC8008C9976 /* KMPDFEditInsertPageWindow.xib in Resources */,
 				BBA19F3729ADACC5001A285A /* signPicture_nor.pdf in Resources */,
@@ -15459,6 +15460,7 @@
 				9F853A092947137500DF644E /* newtab.pdf in Resources */,
 				BBDF18082CD482D100ACDB15 /* KMWatermarkController.xib in Resources */,
 				BBF62C6D2B033B5B007B7E86 /* KMPDFEditExtractWindow.xib in Resources */,
+				BB4DFD5E2CFDA9E600026C8B /* KMStampListController.xib in Resources */,
 				9F0CB4A329683E2600007028 /* KMPropertiesPanelSizeSubVC.xib in Resources */,
 				AD58F41B2B1DAC1500299EE0 /* KMPrintSettingView.xib in Resources */,
 				BB9007222B8DE85B00623B78 /* GeneralPreferences.xib in Resources */,
@@ -15855,6 +15857,7 @@
 				BBE788A12CBD2463008086E2 /* TreeVC.xib in Resources */,
 				AD1D48402AFB81F4007AC1F0 /* KMMergeBlankView.xib in Resources */,
 				BB986AE92AD5376100ADF172 /* WelcomeWindowController.xib in Resources */,
+				BB4DFD682CFDAA3100026C8B /* KMStampController.xib in Resources */,
 				AD3AAD582B0D87E500DE5FE7 /* KMCompareThumbItem.xib in Resources */,
 				9F1F82D7292F6D510092C4B4 /* KMPDFInsertPreviewViewController.xib in Resources */,
 				BB234F062BA3D798008B3754 /* KMAIIconGuideView.xib in Resources */,
@@ -16025,6 +16028,7 @@
 				BBD14F5C2CDA02640077D52E /* KMEditToolbarView.xib in Resources */,
 				899700FB28F4051B009AF911 /* KMAnnotationViewController.xib in Resources */,
 				BBC821E52B0D9F72004B7E8E /* KMStampCreaterWindowController.xib in Resources */,
+				BB4DFD5F2CFDA9E600026C8B /* KMStampListController.xib in Resources */,
 				BB7F7C0229AA586900A3E4E7 /* signAdd.png in Resources */,
 				ADD1B6CD2942E85300C3FFF7 /* KMPrintBottomView.xib in Resources */,
 				BB1B0AF12B4FC6E900889528 /* KMFunctionGuideNameItemView.xib in Resources */,
@@ -16050,7 +16054,6 @@
 				65FABB372C9AFB1F00AA92E5 /* KMSectionCellView.xib in Resources */,
 				BBD8EE922B8EC86900EB05FE /* AutoSavePopController.xib in Resources */,
 				BB072D632C05AC8F00779B45 /* KMToolbarConfigViewItem.xib in Resources */,
-				89E4E7872967BF5A002DBA6F /* KMCustomizeStampViewController.xib in Resources */,
 				BBBE20912B2164CD00509C4E /* KMPDFEditWindowController.xib in Resources */,
 				BBE788DA2CBD2464008086E2 /* CardVC.xib in Resources */,
 				ADDF83642B391A5C00A81A4E /* DSignatureFromFileViewController.xib in Resources */,
@@ -16898,6 +16901,7 @@
 				89E4E755296427E5002DBA6F /* NSImage_SKExtensions.m in Sources */,
 				BB4A94A02B04D8EC00940F8B /* KMGOCRManager.m in Sources */,
 				BB6DD821293497B6001F0544 /* KMSecureEncryptModel.swift in Sources */,
+				BB4DFD632CFDAA3100026C8B /* KMStampController.swift in Sources */,
 				AD1FE8172BD7C98300AA4A9B /* KMPDFMultiplePrintWindowController.m in Sources */,
 				9FCFEC802AD0E74C00EAD2CB /* KMPopMenuButtonCell.swift in Sources */,
 				ADDF83AD2B391A5D00A81A4E /* DSignatureConfig.swift in Sources */,
@@ -17174,7 +17178,6 @@
 				BBBE209B2B21E5F100509C4E /* KMAlertTool.swift in Sources */,
 				9FF0D05C2B6A4C210018A732 /* KMPDFAnnotationChoiceWidgetSub.swift in Sources */,
 				BB78EAAA2B561F9700121691 /* KMFullScreenWindow.swift in Sources */,
-				89E4E7822967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */,
 				BBFEF72F2B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */,
 				9FCFEC902AD11E5F00EAD2CB /* KMSplitView.swift in Sources */,
 				9F0CB529298656C900007028 /* KMDesignToken+BorderWidthTop.swift in Sources */,
@@ -17182,6 +17185,7 @@
 				AD9527D32952D51A0039D2BC /* KMPrintPresenter.swift in Sources */,
 				ADEC7A7E299397F8009A8256 /* NSFont+SFProText.swift in Sources */,
 				ADDF83952B391A5D00A81A4E /* DSignDetailTypeACellView.swift in Sources */,
+				BB4DFD5A2CFDA9E600026C8B /* KMStampListController.swift in Sources */,
 				BBE0689A2CDDF137000512BC /* KMBatesTemplateController.swift in Sources */,
 				ADE86A922B0226AD00414DFA /* KMRemovePasswordView.swift in Sources */,
 				9F221ECF29A85D3700978A59 /* KMDesignBase.swift in Sources */,
@@ -18273,6 +18277,7 @@
 				BBFD225E2CBE16AB00DA4ABD /* KMHistoryEmptyView.swift in Sources */,
 				BB8810D72B4F984000AFA63E /* JSONKit.m in Sources */,
 				ADDF83242B391A5C00A81A4E /* CDSDrawView.m in Sources */,
+				BB4DFD5B2CFDA9E600026C8B /* KMStampListController.swift in Sources */,
 				ADFCEB722B4FC1410001EBAF /* KMAdsManager.swift in Sources */,
 				BBEDC22C2B98407000970C54 /* CPDFAction+KMExtension.swift in Sources */,
 				BB135C2B29B6CD9A00FD5965 /* KMTools.swift in Sources */,
@@ -18388,7 +18393,6 @@
 				9FF371E22C69D2F4005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift in Sources */,
 				BBBBB49A2B6F714000C7205E /* NSObject+OCExtensions.m in Sources */,
 				BB853C872AF8BC12009C20C1 /* KMAddPasswordOperationQueue.swift in Sources */,
-				89E4E7832967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */,
 				9FCFEC912AD11E5F00EAD2CB /* KMSplitView.swift in Sources */,
 				9F1FE4CD29406E4700E952CA /* CTTabContentsController.m in Sources */,
 				AD7D5CE52B96B394006562CD /* KMBookmarkOutlineSeparatorCellView.swift in Sources */,
@@ -18641,6 +18645,7 @@
 				BB90E4F72AF3B71800B04B9F /* KMPDFWatermarkData.swift in Sources */,
 				9F1FE4F729406E4700E952CA /* CTFloatingBarBackingView.m in Sources */,
 				F352428F2CCB768B0000A901 /* KMNFileAttribute.swift in Sources */,
+				BB4DFD642CFDAA3100026C8B /* KMStampController.swift in Sources */,
 				BB9695B329BDA46500FD68D3 /* SKLocalization.m in Sources */,
 				BB716D712CDDB73B009787ED /* KMHeaderFooterController.swift in Sources */,
 				BB13314F2AD78DC0008F6791 /* KMPDFMergeSizeTabelViewCell.swift in Sources */,
@@ -19315,7 +19320,6 @@
 				BB6EA2992B70AF48000D4490 /* KMConvertCompareViewController.m in Sources */,
 				F337CC472CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.swift in Sources */,
 				BB146FE6299DC0D100784A6A /* GTLRURITemplate.m in Sources */,
-				89E4E7842967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */,
 				BBFA1CD82B60A0670053AD4A /* KMScreenShotMaskView.swift in Sources */,
 				BB146FFB299DC0D100784A6A /* OIDExternalUserAgentMac.m in Sources */,
 				BB451ADF2CF5AF9A003E1565 /* KMLineController.swift in Sources */,
@@ -19411,6 +19415,7 @@
 				BB451AC72CF5AF68003E1565 /* KMEraserController.swift in Sources */,
 				ADDF83672B391A5C00A81A4E /* DSignatureFromFileViewController.swift in Sources */,
 				BB7648EE29ECEEF400931039 /* KMAppearance.swift in Sources */,
+				BB4DFD5C2CFDA9E600026C8B /* KMStampListController.swift in Sources */,
 				BB4A94932B04926700940F8B /* KMGOCROperation.swift in Sources */,
 				BB8B9A032B355EFB00A066EC /* KMLeftSideViewController+Outline.swift in Sources */,
 				BBD9222D2B50D50A00DB9585 /* iRate.m in Sources */,
@@ -19430,6 +19435,7 @@
 				BBA922342B4E97540061057A /* KMPurchaseLimitWindowController.swift in Sources */,
 				BB147022299DC0D100784A6A /* OIDServiceDiscovery.m in Sources */,
 				ADE86A8C2B02269400414DFA /* KMRemovePasswordWindowController.swift in Sources */,
+				BB4DFD652CFDAA3100026C8B /* KMStampController.swift in Sources */,
 				ADDF83312B391A5C00A81A4E /* NSGeometry+PDFListView.m in Sources */,
 				9FAAA327290A69920046FFCE /* KMToolSetScroller.swift in Sources */,
 				BB0A823429C00400002C5C1B /* KMCommonEnum.swift in Sources */,

+ 0 - 48
PDF Office/PDF Reader Pro.xcodeproj/xcuserdata/kdanmobile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -3459,54 +3459,6 @@
             landmarkType = "3">
          </BreakpointContent>
       </BreakpointProxy>
-      <BreakpointProxy
-         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
-         <BreakpointContent
-            uuid = "76A27C4D-5AF5-48C1-BD55-869F07F57A9F"
-            shouldBeEnabled = "Yes"
-            ignoreCount = "0"
-            continueAfterRunningActions = "No"
-            filePath = "PDF Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFStampAnnotation+PDFListView.swift"
-            startingColumnNumber = "9223372036854775807"
-            endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "17"
-            endingLineNumber = "17"
-            landmarkName = "annotationImage(annotationModel:)"
-            landmarkType = "7">
-            <Locations>
-               <Location
-                  uuid = "76A27C4D-5AF5-48C1-BD55-869F07F57A9F - 85f5a68034bf728c"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "static __C.CPDFStampAnnotation.annotationImage(annotationModel: __C.CPDFAnnotationModel) -&gt; Swift.Optional&lt;__C.NSImage&gt;"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFStampAnnotation+PDFListView.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "17"
-                  endingLineNumber = "17"
-                  offsetFromSymbolStart = "504">
-               </Location>
-               <Location
-                  uuid = "76A27C4D-5AF5-48C1-BD55-869F07F57A9F - 85f5a68034bf728c"
-                  shouldBeEnabled = "Yes"
-                  ignoreCount = "0"
-                  continueAfterRunningActions = "No"
-                  symbolName = "static __C.CPDFStampAnnotation.annotationImage(annotationModel: __C.CPDFAnnotationModel) -&gt; Swift.Optional&lt;__C.NSImage&gt;"
-                  moduleName = "PDF Reader Pro"
-                  usesParentBreakpointCondition = "Yes"
-                  urlString = "file:///Users/kdanmobile/Documents/Git/PDF_Office/PDF%20Office/PDF%20Master/Class/PDFWindowController/PDFListView/CPDFKitExtensions/CPDFAnnotationExtensions/CPDFStampAnnotation+PDFListView.swift"
-                  startingColumnNumber = "9223372036854775807"
-                  endingColumnNumber = "9223372036854775807"
-                  startingLineNumber = "17"
-                  endingLineNumber = "17"
-                  offsetFromSymbolStart = "624">
-               </Location>
-            </Locations>
-         </BreakpointContent>
-      </BreakpointProxy>
       <BreakpointProxy
          BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
          <BreakpointContent