Просмотр исходного кода

Merge branch 'develop_2025' of git.kdan.cc:Mac_PDF/PDF_Office into develop_2025

niehaoyu 1 месяц назад
Родитель
Сommit
a8426b2b14
16 измененных файлов с 1491 добавлено и 1317 удалено
  1. 51 52
      PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift
  2. 2 6
      PDF Office/PDF Master/KMClass/NewBatch/Manager/KMBatchManager.swift
  3. 9 7
      PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ImageToPDF/KMBatchImageToPDFView.swift
  4. 134 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNAnnotationPopToolbarWindow.swift
  5. 99 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNContentEditPopToolbarWindow.swift
  6. 95 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNOperationPopToolbarWindow.swift
  7. 37 91
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationWindowController.swift
  8. 480 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationViewController.xib
  9. 0 489
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationWindowController.xib
  10. 27 71
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditWindowController.swift
  11. 320 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditViewController.xib
  12. 0 329
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditWindowController.xib
  13. 9 59
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationWindowController.swift
  14. 156 0
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationViewController.xib
  15. 0 165
      PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationWindowController.xib
  16. 72 48
      PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

+ 51 - 52
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController.swift

@@ -1948,56 +1948,56 @@ struct KMNMWCFlags {
     }
     
     func toggleClosePopUIWindow() {
-        let popWindow = KMNPopAnnotationWindowController.shared
-        if popWindow.window?.isVisible  == true {
+        let popWindow = KMNAnnotationPopToolbarWindow.shared
+        if popWindow.isVisible  == true {
             closeAnnotationPopWindow()
         }
-        let editPopWindow = KMNPopContentEditWindowController.shared
-        if editPopWindow.window?.isVisible  == true {
+        let editPopWindow = KMNContentEditPopToolbarWindow.shared
+        if editPopWindow.isVisible  == true {
             closePopContentEditWindow()
         }
         
-        let operationWindow = KMNPopOperationWindowController.shared
-        if operationWindow.window?.isVisible  == true {
+        let operationWindow = KMNOperationPopToolbarWindow.shared
+        if operationWindow.isVisible  == true {
             closePopOperationWindow()
         }
     }
     
     func closeAnnotationPopWindow() {
-        KMNPopAnnotationWindowController.shared.closeWindow(listView: listView)
+        KMNAnnotationPopToolbarWindow.shared.closeWindow(listView: listView)
     }
     
     func closePopContentEditWindow() {
-        KMNPopContentEditWindowController.shared.closeWindow(listView: listView)
+        KMNContentEditPopToolbarWindow.shared.closeWindow(listView: listView)
     }
     
     func closePopOperationWindow() {
-        KMNPopOperationWindowController.shared.closeWindow(listView: listView)
+        KMNOperationPopToolbarWindow.shared.closeWindow(listView: listView)
     }
     
     func reloadPopUIOperation() {
         if listView.selectionRect != CGRectZero {
-            let popWindow = KMNPopOperationWindowController.shared
-            popWindow.window?.makeKeyAndOrderFront(nil)
-            if popWindow.window?.isVisible == false {
-                listView.window?.addChildWindow(popWindow.window ?? NSWindow(), ordered: .above)
-            }
-            popWindow.listView = listView
+            let popWindow = KMNOperationPopToolbarWindow.shared
+            popWindow.show(relativeTo: CGRectZero, of: self.listView, preferredEdge: .maxY)
+            self.listView.window?.addChildWindow(popWindow, ordered: .above)
+            let operationViewController = KMNPopOperationViewController.shared
+
+            operationViewController.listView = listView
             if listView.toolMode == .CSelectToolMode {
-                popWindow.popType = .crop
-                popWindow.cropCurrentCallback = {[weak self] in
+                operationViewController.popType = .crop
+                operationViewController.cropCurrentCallback = {[weak self] in
                     let rect = self?.listView.currentSelectionRect() ?? CGRect.zero
                     let orgPage : CPDFPage = self?.listView.currentSelectionPage() ?? CPDFPage()
                     self?.cropPages(atIndexs: [orgPage.pageIndex()], to: [rect])
                     self?.closePopOperationWindow()
                 }
             } else if listView.toolMode == .COCRToolMode {
-                popWindow.popType = .ocr
-                popWindow.OCRAction = { [weak self] in
+                operationViewController.popType = .ocr
+                operationViewController.OCRAction = { [weak self] in
                     self?.convertSelectionRectOCR(rect: self?.listView.currentSelectionRect() ?? CGRectZero)
                 }
             }
-            popWindow.updatePDFViewCallback = {[weak self] in
+            operationViewController.updatePDFViewCallback = {[weak self] in
                 self?.closePopOperationWindow()
                 self?.listView.setNeedsDisplayForVisiblePages()
             }
@@ -2010,26 +2010,27 @@ struct KMNMWCFlags {
     
     func reloadPopUIActiveAnnotations(activeAnnotations:[CPDFAnnotation]) {
         let annotationMode = KMNAnnotationPopMode(pdfAnnotations: activeAnnotations )
-        let popWindow = KMNPopAnnotationWindowController.shared
+        let popVC = KMNPopAnnotationViewController.shared
         if annotationMode.popType == .popTypeNone || !SettingsManager.sharedInstance.showQuickActionBar {
             closeAnnotationPopWindow()
         } else {
-            popWindow.window?.makeKeyAndOrderFront(nil)
-            if popWindow.window?.isVisible == false {
-                listView.window?.addChildWindow(popWindow.window ?? NSWindow(), ordered: .above)
-            }
-            popWindow.listView = listView
-            popWindow.annotationPopMode = annotationMode
-            popWindow.isOpenPane = viewManager.showRightSide
+            let win = KMNAnnotationPopToolbarWindow.shared
+            win.annotationPopMode = annotationMode
+            win.show(relativeTo: CGRectZero, of: self.listView, preferredEdge: .maxY)
+            self.listView.window?.addChildWindow(win, ordered: .above)
+            
+            popVC.listView = listView
+            popVC.annotationPopMode = annotationMode
+            popVC.isOpenPane = viewManager.showRightSide
             updateAnnotationsPopWinodwFrame()
             
-            popWindow.updatePDFViewCallback = {[weak self] in
+            popVC.updatePDFViewCallback = {[weak self] in
                 self?.rightSideController?.reloadDataWithPDFView(pdfView: self?.listView ?? CPDFListView())
                 self?.listView.setNeedsDisplayMultiAnnotations(annotationMode.annotations)
                 NotificationCenter.default.post(name: toolbarImageColorChangedNotificationName, object: nil)
             }
             
-            popWindow.paneCallback = {[weak self] isOpen in
+            popVC.paneCallback = {[weak self] isOpen in
                 if isOpen == true {
                     self?.viewManager.showRightSide = true
                 } else {
@@ -2043,19 +2044,23 @@ struct KMNMWCFlags {
     func reloadPopUIContentEdits(editAreas:[CPDFEditArea]) {
         let editingAreas = listView.km_EditingAreas()
         let editMode = KMNEditContentPopMode(currentEditAreas: editingAreas)
-        let popWindow = KMNPopContentEditWindowController.shared
+        let popVC = KMNPopContentEditViewController.shared
+
         if editMode.popType == .editNone || !SettingsManager.sharedInstance.showQuickActionBar {
             closePopContentEditWindow()
         } else {
-            popWindow.window?.makeKeyAndOrderFront(nil)
-            listView.window?.addChildWindow(popWindow.window ?? NSWindow(), ordered: .above)
-            
-            popWindow.listView = listView
-            popWindow.editContentPopMode = editMode
-            popWindow.isOpenPane = viewManager.showRightSide
+            let win = KMNContentEditPopToolbarWindow.shared
+            win.editContentPopMode = editMode
+            win.show(relativeTo: CGRectZero, of: self.listView, preferredEdge: .maxY)
+            self.listView.window?.addChildWindow(win, ordered: .above)
+            
+            popVC.listView = listView
+            popVC.editContentPopMode = editMode
+            popVC.isOpenPane = viewManager.showRightSide
+            popVC.editContentPopMode = editMode
             updateContentEditPopWinodwFrame()
             
-            popWindow.paneCallback = {[weak self] isOpen in
+            popVC.paneCallback = {[weak self] isOpen in
                 if isOpen == true && self?.viewManager.showRightSide == false {
                     self?.viewManager.showRightSide = false
                 } else {
@@ -2067,24 +2072,18 @@ struct KMNMWCFlags {
     }
     
     func updateAnnotationsPopWinodwFrame() {
-        let popWindow = KMNPopAnnotationWindowController.shared
-        if popWindow.window?.isVisible == true {
-            popWindow.updateFrame(listView: listView)
-        }
+        let popWindow = KMNAnnotationPopToolbarWindow.shared
+        popWindow.updateFrame(listView: listView)
     }
     
     func updateContentEditPopWinodwFrame() {
-        let popWindow = KMNPopContentEditWindowController.shared
-        if popWindow.window?.isVisible == true {
-            popWindow.updateFrame(listView: listView)
-        }
+        let popWindow = KMNContentEditPopToolbarWindow.shared
+        popWindow.updateFrame(listView: listView)
     }
     
     func updatePopOperationPopWinodwFrame() {
-        let popWindow = KMNPopOperationWindowController.shared
-        if popWindow.window?.isVisible == true {
-            popWindow.updateFrame(listView: listView,page: listView.currentSelectionPage())
-        }
+        let popWindow = KMNOperationPopToolbarWindow.shared
+        popWindow.updateFrame(listView: listView,page: listView.currentSelectionPage())
     }
     
     //MARK: - 安全
@@ -6096,9 +6095,9 @@ extension KMMainViewController: CPDFViewDelegate,CPDFListViewDelegate {
     }
     
     func pdfListViewShowTipView() -> Bool {
-        let popWindow = KMNPopAnnotationWindowController.shared
+        let popWindow = KMNAnnotationPopToolbarWindow.shared
 
-        if popWindow.window?.isVisible  == true {
+        if popWindow.isVisible  == true {
             return true
         }
         

+ 2 - 6
PDF Office/PDF Master/KMClass/NewBatch/Manager/KMBatchManager.swift

@@ -47,7 +47,6 @@ class KMBatchManager: NSObject {
             let outputFolderPath = (panel.url?.path)!
             //
             self.batchUnkown()
-            
             switch type {
             case .convertPDF:
                 self.convertPDFExport(data: data, outputFolderPath: outputFolderPath)
@@ -83,9 +82,6 @@ class KMBatchManager: NSObject {
                 KMPrint("找不到")
                 break
             }
-            
-            //
-            self.batchProgress()
         }
     }
 }
@@ -674,10 +670,10 @@ extension KMBatchManager {
             if data.isNewPDF {
                 if data.isMergeAll {
                     let item = filesData[0]
-                    var path = self.fetchFilePath(type: .imageToPDF, filePath: item.filePath, outputFolderPath: outputFolderPath)
+                    let path = self.fetchFilePath(type: .imageToPDF, filePath: item.filePath, outputFolderPath: outputFolderPath)
                     
                     
-                    var pdfDocument = CPDFDocument()
+                    let pdfDocument = CPDFDocument()
                     for item in filesData {
                         pdfDocument?.km_insert(image: item.image, at: pdfDocument?.pageCount ?? 0)
                     }

+ 9 - 7
PDF Office/PDF Master/KMClass/NewBatch/View/Setting/ImageToPDF/KMBatchImageToPDFView.swift

@@ -284,13 +284,15 @@ extension KMBatchImageToPDFView {
     @objc func saveButtonClicked(_ sender: ComponentButton) {
         self.model.selectFilePath = self.selectFileInputButton.properties.text
         
-        let selectFilePath = self.model.selectFilePath
-        if selectFilePath.count == 0 {
-            let alert = NSAlert()
-            alert.alertStyle = .critical
-            alert.messageText = KMLocalizedString("文件未选择")
-            alert.runModal()
-            return
+        if !self.model.isNewPDF {
+            let selectFilePath = self.model.selectFilePath
+            if selectFilePath.count == 0 {
+                let alert = NSAlert()
+                alert.alertStyle = .critical
+                alert.messageText = KMLocalizedString("文件未选择")
+                alert.runModal()
+                return
+            }
         }
         
         guard let callBack = self.batchExport else { return }

+ 134 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNAnnotationPopToolbarWindow.swift

@@ -0,0 +1,134 @@
+//
+//  KMNPopToolbarWindow.swift
+//  PDF Reader Pro
+//
+//  Created by 丁林圭 on 2025/2/6.
+//
+
+import Cocoa
+
+class KMNAnnotationPopToolbarWindow: NSWindow {
+    
+    static let shared = KMNAnnotationPopToolbarWindow()
+    
+    public var annotationPopMode:KMNAnnotationPopMode = KMNAnnotationPopMode(pdfAnnotations: [])
+    
+    convenience init() {
+        let rect = NSRect(x: 0, y: 0, width: 400, height: 44)
+        let styleMask: NSWindow.StyleMask = [.fullSizeContentView]
+        self.init(contentRect: rect, styleMask: styleMask, backing: .buffered, defer: false)
+    }
+    
+    override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) {
+        super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag)
+        
+        let contentViewC = KMNPopAnnotationViewController.shared
+        
+        self.contentViewController = contentViewC
+        
+        self.titlebarAppearsTransparent = true
+        self.titleVisibility = .hidden
+        self.isMovable = false
+        
+        self.contentView?.wantsLayer = true
+        self.contentView?.layer?.cornerRadius = 4
+        self.contentView?.layer?.masksToBounds = true
+        
+        self.backgroundColor = .clear
+    }
+    
+    func show(relativeTo positioningRect: NSRect, of positioningView: CPDFListView, preferredEdge: NSRectEdge) {
+        self.orderFront(nil)
+        let contentViewC = KMNPopAnnotationViewController.shared
+        contentViewC.closeWindowCallback = {[weak self] in
+            self?.closeWindow(listView: positioningView)
+        }
+        contentViewC.frameCallback = {[weak self] in
+            self?.updateFrame(listView: positioningView)
+        }
+            
+        if(annotationPopMode.popType == .formRadioAnnotation || annotationPopMode.popType == .formAnnotation) {
+            DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
+                self.makeFirstResponder(contentViewC.fildNameInput)
+                contentViewC.fildNameInput.beginEditing()
+            }
+        }
+    }
+    
+    
+    //MARK: - Public
+    public func updateFrame(listView:CPDFListView) {
+        let activeAnnotations = annotationPopMode.annotations
+        let page = activeAnnotations.first?.page
+        let windowFram = listView.window?.frame ?? CGRectZero
+        
+        if(page != nil) {
+            let pageRect = listView.selectionMultipleBounds(with: activeAnnotations)
+            let positioningRect = listView.convert(pageRect, from: page!)
+            if (CGRectIntersectsRect(positioningRect, listView.frame)) {
+                let view: NSView? = nil
+                let position = listView.convert(positioningRect, to: view)
+                var positionNew = position.origin
+                
+                positionNew.x += windowFram.origin.x + position.width/2
+                positionNew.y += windowFram.origin.y + position.height
+                
+                var positionRect = self.frame
+                positionRect.origin.x = positionNew.x - positionRect.width/2
+                positionRect.origin.y = positionNew.y + popOffSet
+                
+                var listViewWindRect = listView.convert(listView.frame, to: view)
+                listViewWindRect.origin.x += windowFram.origin.x
+                listViewWindRect.origin.y += windowFram.origin.y
+                
+                if CGRectGetMaxY(positionRect) > CGRectGetMaxY(listViewWindRect) {
+                    positionRect.origin.y = positionNew.y - popOffSet - position.height - positionRect.size.height
+                }
+                
+                if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
+                    positionRect.origin.x = CGRectGetMinX(listViewWindRect)
+                }
+                
+                if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
+                    positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
+                }
+                
+                self.setFrame(positionRect, display: true)
+                let popA = KMNPopAnnotationViewController.shared
+
+                popA.updateUILanguage()
+            } else {
+                
+            }
+        }
+    }
+    
+    public func closeWindow(listView:CPDFListView?) {
+        if self.isVisible == true {
+            listView?.window?.removeChildWindow(self)
+            self.orderBack(nil)
+        }
+        
+        let popA = KMNPopAnnotationViewController.shared
+        popA.closePopView()
+    }
+   
+    override var canBecomeKey: Bool {
+        if(annotationPopMode.popType == .formRadioAnnotation || annotationPopMode.popType == .formAnnotation ||
+           annotationPopMode.popType == .linkAnnotation) {
+            return true
+        } else {
+            return false
+        }
+    }
+    
+    override var canBecomeMain: Bool {
+        if(annotationPopMode.popType == .formRadioAnnotation || annotationPopMode.popType == .formAnnotation ||
+           annotationPopMode.popType == .linkAnnotation) {
+            return true
+        } else {
+            return false
+        }
+    }
+    
+}

+ 99 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNContentEditPopToolbarWindow.swift

@@ -0,0 +1,99 @@
+//
+//  KMNContentEditPopToolbarWindow.swift
+//  PDF Reader Pro
+//
+//  Created by 丁林圭 on 2025/2/6.
+//
+
+import Cocoa
+
+class KMNContentEditPopToolbarWindow: NSWindow {
+    
+    static let shared = KMNContentEditPopToolbarWindow()
+    
+    public var editContentPopMode:KMNEditContentPopMode = KMNEditContentPopMode(currentEditAreas: [])
+    
+    convenience init() {
+        let rect = NSRect(x: 0, y: 0, width: 400, height: 44)
+        let styleMask: NSWindow.StyleMask = [.fullSizeContentView]
+        self.init(contentRect: rect, styleMask: styleMask, backing: .buffered, defer: false)
+    }
+    
+    override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) {
+        super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag)
+        
+        let contentViewC = KMNPopContentEditViewController.shared
+        
+        self.contentViewController = contentViewC
+        
+        self.titlebarAppearsTransparent = true
+        self.titleVisibility = .hidden
+        self.isMovable = false
+        
+        self.contentView?.wantsLayer = true
+        self.contentView?.layer?.cornerRadius = 4
+        self.contentView?.layer?.masksToBounds = true
+        
+        self.backgroundColor = .clear
+    }
+    
+    func show(relativeTo positioningRect: NSRect, of positioningView: CPDFListView, preferredEdge: NSRectEdge) {
+        self.orderFront(nil)
+        let contentViewC = KMNPopContentEditViewController.shared
+       
+    }
+    
+    //MARK: - Public
+    public func updateFrame(listView:CPDFListView) {
+        let editingAreas = listView.km_EditingAreas()
+        let page = editingAreas.first?.page
+        let windowFram = listView.window?.frame ?? CGRectZero
+        
+        if(page != nil) {
+            let pageRect = listView.selectionMultipleBounds(withEditArea: editingAreas)
+            let positioningRect = listView.convert(pageRect, from: page!)
+            let view: NSView? = nil
+            let position = listView.convert(positioningRect, to: view)
+            var positionNew = position.origin
+            
+            positionNew.x += windowFram.origin.x + position.width/2
+            positionNew.y += windowFram.origin.y + position.height
+            
+            var positionRect = self.frame
+            positionRect.origin.x = positionNew.x - positionRect.width/2
+            positionRect.origin.y = positionNew.y + popOffSet + CGFloat(truncating: listView.editingConfig().editAreaMargin)
+            
+            var listViewWindRect = listView.convert(listView.frame, to: view)
+            listViewWindRect.origin.x += windowFram.origin.x
+            listViewWindRect.origin.y += windowFram.origin.y
+
+            if CGRectGetMaxY(positionRect) > CGRectGetMaxY(listViewWindRect) {
+                positionRect.origin.y = positionNew.y - popOffSet - position.height - positionRect.size.height
+            }
+            
+            if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
+                positionRect.origin.x = CGRectGetMinX(listViewWindRect)
+            }
+
+            if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
+                positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
+            }
+            
+            self.setFrame(positionRect, display: true)
+            
+            let popA = KMNPopAnnotationViewController.shared
+            popA.updateUILanguage()
+        }
+    }
+    
+    public func closeWindow(listView:CPDFListView?) {
+        if self.isVisible == true {
+            listView?.window?.removeChildWindow(self)
+            self.orderBack(nil)
+        }
+        
+        let contentViewC = KMNPopContentEditViewController.shared
+        contentViewC.closePopView()
+    }
+    
+}

+ 95 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNOperationPopToolbarWindow.swift

@@ -0,0 +1,95 @@
+//
+//  KMNOperationPopToolbarWindow.swift
+//  PDF Reader Pro
+//
+//  Created by 丁林圭 on 2025/2/6.
+//
+
+import Cocoa
+
+class KMNOperationPopToolbarWindow: NSWindow {
+    
+    static let shared = KMNOperationPopToolbarWindow()
+    
+    public var annotationPopMode:KMNAnnotationPopMode = KMNAnnotationPopMode(pdfAnnotations: [])
+    
+    convenience init() {
+        let rect = NSRect(x: 0, y: 0, width: 400, height: 44)
+        let styleMask: NSWindow.StyleMask = [.fullSizeContentView]
+        self.init(contentRect: rect, styleMask: styleMask, backing: .buffered, defer: false)
+    }
+    
+    override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) {
+        super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag)
+        
+        let contentViewC = KMNPopOperationViewController.shared
+        
+        self.contentViewController = contentViewC
+        
+        self.titlebarAppearsTransparent = true
+        self.titleVisibility = .hidden
+        self.isMovable = false
+        
+        self.contentView?.wantsLayer = true
+        self.contentView?.layer?.cornerRadius = 4
+        self.contentView?.layer?.masksToBounds = true
+        
+        self.backgroundColor = .clear
+    }
+    
+    func show(relativeTo positioningRect: NSRect, of positioningView: CPDFListView, preferredEdge: NSRectEdge) {
+        self.orderFront(nil)
+       
+    }
+    
+    //MARK: - Public
+    public func updateFrame(listView:CPDFListView?,page:CPDFPage?) {
+        let windowFram = listView?.window?.frame ?? CGRectZero
+        
+        let pageRect = listView?.currentSelectionRect() ?? NSRect.zero
+        
+        if page != nil {
+            let positioningRect = listView?.convert(pageRect, from: page!) ?? NSRect.zero
+            if (CGRectIntersectsRect(positioningRect, listView?.frame ?? CGRectZero)) {
+                let view: NSView? = nil
+                let position = listView?.convert(positioningRect, to: view) ?? NSRect.zero
+                var positionNew = position.origin
+                
+                positionNew.x += windowFram.origin.x + position.width
+                positionNew.y += windowFram.origin.y
+                
+                var positionRect = self.frame
+                positionRect.origin.x = positionNew.x - positionRect.width
+                positionRect.origin.y = positionNew.y - popOffSet - positionRect.height
+                
+                var listViewWindRect = listView?.convert(listView?.frame ?? CGRect.zero, to: view) ?? CGRect.zero
+                listViewWindRect.origin.x += windowFram.origin.x
+                listViewWindRect.origin.y += windowFram.origin.y
+                
+                if CGRectGetMinY(positionRect) < CGRectGetMinY(listViewWindRect) {
+                    positionRect.origin.y = positionNew.y + popOffSet + position.height
+                }
+                
+                if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
+                    positionRect.origin.x = CGRectGetMinX(listViewWindRect)
+                }
+                
+                if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
+                    positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
+                }
+                self.setFrame(positionRect, display: true)
+                let contentViewC = KMNPopOperationViewController.shared
+                contentViewC.updateUILanguage()
+            }
+        }
+        
+    }
+    
+    public func closeWindow(listView:CPDFListView?) {
+        if self.isVisible == true {
+            listView?.window?.removeChildWindow(self)
+            self.orderBack(nil)
+        }
+    }
+    
+}

+ 37 - 91
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationWindowController.swift

@@ -15,17 +15,11 @@ typealias PaneCallback = (_ isOpenPane: Bool) -> ()
 
 typealias UpdatePDFViewCallback = () -> ()
 
-class KMNPopOperationWindow: NSWindow {
-    override var canBecomeKey: Bool {
-        return true
-    }
-    
-    override var canBecomeMain: Bool {
-        return true
-    }
-}
+typealias FrameCallback = () -> ()
+
+typealias CloseWindowCallback = () -> ()
 
-class KMNPopAnnotationWindowController: KMNBaseWindowController {
+class KMNPopAnnotationViewController: KMNBaseViewController {
     
     public var popType:ListViewPopType = .popTypeNone {
         didSet {
@@ -37,7 +31,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
             case .generaAnnotation :
                 generaPopView.layoutSubtreeIfNeeded()
                 operationWidthConstraint.constant = generaPopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = generaPopView
                 congfigGeneraPopUI()
                 break
@@ -45,7 +39,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 fontPopView.layoutSubtreeIfNeeded()
 
                 operationWidthConstraint.constant = fontPopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = fontPopView
                 break
             case .shapeAnnotation:
@@ -74,7 +68,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
 
 //                operationWidthConstraint.constant = shapeView.bounds.width //刷新后未更新最后的宽度,暂时写死宽度
                 operationWidthConstraint.constant = width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = shapeView
                 
                 congfigShapePopUI()
@@ -90,7 +84,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 formView.layoutSubtreeIfNeeded()
                 
                 operationWidthConstraint.constant = formView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = formView
                 break
             case .formRadioAnnotation:
@@ -99,14 +93,14 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 formView.layoutSubtreeIfNeeded()
                 
                 operationWidthConstraint.constant = formView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = formView
                 break
             case .multpleAnnotation:
                 alightView.layoutSubtreeIfNeeded()
 
                 operationWidthConstraint.constant = alightView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = alightView
                 break
             case .popTypeNone:
@@ -156,7 +150,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 fildNameString = annotationPopMode.annotationFieldName() ?? ""
 
             } else if annotationPopType == .formRadioAnnotation {
-                fildNameString = annotationPopMode.annotationFieldName() ?? ""                
+                fildNameString = annotationPopMode.annotationFieldName() ?? ""
                 gropNameString = annotationPopMode.annotationGropName() ?? ""
 
             }
@@ -287,9 +281,11 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
     
     var paneCallback: PaneCallback?
     var updatePDFViewCallback: UpdatePDFViewCallback?
-    
-    static let shared: KMNPopAnnotationWindowController = {
-        let windowC = KMNPopAnnotationWindowController(windowNibName: "KMNPopAnnotationWindowController")
+    var frameCallback: FrameCallback?
+    var closeWindowCallback: CloseWindowCallback?
+
+    static let shared: KMNPopAnnotationViewController = {
+        let windowC = KMNPopAnnotationViewController(nibName: "KMNPopAnnotationViewController", bundle: nil)
         return windowC
     }()
     
@@ -301,7 +297,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 rightOffsetConstraint.constant = 45.0
                 operationHeightConstraint.constant = 32.0
                 operationWidthConstraint.constant = linkView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = linkView
                 
                 paneBox.isHidden = false
@@ -311,7 +307,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 rightOffsetConstraint.constant = 8
                 operationWidthConstraint.constant = linkPageDetailView.bounds.width
                 operationHeightConstraint.constant = 224
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = linkPageDetailView
                 
                 paneBox.isHidden = true
@@ -329,7 +325,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 rightOffsetConstraint.constant = 8
                 operationWidthConstraint.constant = linkUrlDetailView.bounds.width
                 operationHeightConstraint.constant = linkUrlDetailView.bounds.height
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = linkUrlDetailView
                 
                 paneBox.isHidden = true
@@ -354,7 +350,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 rightOffsetConstraint.constant = 8
                 operationWidthConstraint.constant = linkUrlDetailView.bounds.width
                 operationHeightConstraint.constant = linkUrlDetailView.bounds.height
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = linkUrlDetailView
                 
                 paneBox.isHidden = true
@@ -376,7 +372,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
                 urlInput.beginEditing()
                 urlInput.reloadData()
             }
-            updateFrame(listView: listView ?? CPDFListView())
+            frameCallback?()
         }
     }
     
@@ -445,8 +441,8 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
         }
     }
     
-    override func windowDidLoad() {
-        super.windowDidLoad()
+    override func viewDidLoad() {
+        super.viewDidLoad()
     }
     
     override func initContentView() {
@@ -607,64 +603,14 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
     }
     
     //MARK: - Public
-    public func updateFrame(listView:CPDFListView) {
-        let activeAnnotations = annotationPopMode.annotations
-        let page = activeAnnotations.first?.page
-        let windowFram = listView.window?.frame ?? CGRectZero
-        
-        if(page != nil) {
-            let pageRect = listView.selectionMultipleBounds(with: activeAnnotations)
-            let positioningRect = listView.convert(pageRect, from: page!)
-            if (CGRectIntersectsRect(positioningRect, listView.frame)) {
-                let view: NSView? = nil
-                let position = listView.convert(positioningRect, to: view)
-                var positionNew = position.origin
-                
-                positionNew.x += windowFram.origin.x + position.width/2
-                positionNew.y += windowFram.origin.y + position.height
-                
-                var positionRect = self.window?.frame ?? CGRectZero
-                positionRect.origin.x = positionNew.x - positionRect.width/2
-                positionRect.origin.y = positionNew.y + popOffSet
-                
-                var listViewWindRect = listView.convert(listView.frame, to: view)
-                listViewWindRect.origin.x += windowFram.origin.x
-                listViewWindRect.origin.y += windowFram.origin.y
-
-                if CGRectGetMaxY(positionRect) > CGRectGetMaxY(listViewWindRect) {
-                    positionRect.origin.y = positionNew.y - popOffSet - position.height - positionRect.size.height
-                }
-                
-                if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
-                    positionRect.origin.x = CGRectGetMinX(listViewWindRect)
-                }
-
-                if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
-                    positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
-                }
-                
-                self.window?.setFrame(positionRect, display: true)
-                
-                updateUILanguage()
-            } else {
-                
-            }
-        }
-    }
-    
-    public func closeWindow(listView:CPDFListView?) {
-        if self.window?.isVisible == true {
-            listView?.window?.removeChildWindow(self.window ?? NSWindow())
-            self.window?.close()
-        }
-        
-        if ObjectPopover?.isShown == true {
-            ObjectPopover?.close()
-        }
-        
-        if fontPopover?.isShown == true {
-            fontPopover?.close()
-        }
+   public func closePopView() {
+       if ObjectPopover?.isShown == true {
+           ObjectPopover?.close()
+       }
+       
+       if fontPopover?.isShown == true {
+           fontPopover?.close()
+       }
     }
     
     //MARK: - private
@@ -958,7 +904,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
         } else if linkType == .page {
             if let destination = linkAnnotation.destination() {
                 listView?.go(to: destination)
-                closeWindow(listView: listView)
+                closeWindowCallback?()
             }
         }
     }
@@ -984,7 +930,7 @@ class KMNPopAnnotationWindowController: KMNBaseWindowController {
 }
 
 //MARK: - ComponentCColorDelegate
-extension KMNPopAnnotationWindowController: ComponentCColorDelegate {
+extension KMNPopAnnotationViewController: ComponentCColorDelegate {
     func componentCColorDidChooseColor(_ view: NSView, _ color: NSColor?) {
         if(view == generaColorGroup) {
             
@@ -1008,7 +954,7 @@ extension KMNPopAnnotationWindowController: ComponentCColorDelegate {
 }
 
 //MARK: - ComponentInputDelegate
-extension KMNPopAnnotationWindowController: ComponentInputDelegate {
+extension KMNPopAnnotationViewController: ComponentInputDelegate {
     func componentInputDidChanged(inputView: ComponentInput) {
         if (inputView == fildNameInput) {
             for i in 0 ..< annotationPopMode.annotations.count {
@@ -1062,7 +1008,7 @@ extension KMNPopAnnotationWindowController: ComponentInputDelegate {
 }
 
 //MARK: - ComponentSelectDelegate
-extension KMNPopAnnotationWindowController: ComponentSelectDelegate {
+extension KMNPopAnnotationViewController: ComponentSelectDelegate {
     func componentSelectDidSelect(view: ComponentSelect?, menuItemProperty: ComponentMenuitemProperty?) {
         if(view == fontNameSelect) {
             if menuItemProperty?.identifier == "1" {
@@ -1083,7 +1029,7 @@ extension KMNPopAnnotationWindowController: ComponentSelectDelegate {
 }
 
 //MARK: - ComponentSelectDelegate
-extension KMNPopAnnotationWindowController: NSPopoverDelegate {
+extension KMNPopAnnotationViewController: NSPopoverDelegate {
     func popoverWillClose(_ notification: Notification) {
         if fontPopover == (notification.object as? NSPopover) {
             if(fontAlightButton.properties.state == .pressed) {
@@ -1101,7 +1047,7 @@ extension KMNPopAnnotationWindowController: NSPopoverDelegate {
 }
 
 //MARK: - ComponentPaginationDelegate
-extension KMNPopAnnotationWindowController: ComponentPaginationDelegate {
+extension KMNPopAnnotationViewController: ComponentPaginationDelegate {
     public func componentPaginationDidValueChanged(pagination: ComponentPagination) {
         let pageIndex = pagination.properties.currentIndex
         if let page = listView?.document.page(at: UInt(pageIndex)) {

+ 480 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationViewController.xib

@@ -0,0 +1,480 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopAnnotationViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="alightButton" destination="bAW-G4-DgT" id="rD7-cg-EEB"/>
+                <outlet property="alightView" destination="dpV-TB-fEP" id="2AV-zV-VUS"/>
+                <outlet property="backPageLinkButton" destination="mwq-is-u1K" id="vHK-L6-ik3"/>
+                <outlet property="backPageWidthConstraint" destination="bPv-Ti-XnZ" id="z1N-Wd-RqM"/>
+                <outlet property="backUrlLinkButton" destination="lRh-Y2-uwc" id="qgz-CL-Mcx"/>
+                <outlet property="backUrlWidthConstraint" destination="GCL-52-Zqi" id="iWK-fd-5Ee"/>
+                <outlet property="contentBox" destination="U9Q-li-np9" id="9VU-gy-BKG"/>
+                <outlet property="emailLinkButton" destination="sHX-2b-0JH" id="G8h-F9-NQF"/>
+                <outlet property="emailLinkWidthConstraint" destination="h7T-5M-70F" id="JKB-6i-2bB"/>
+                <outlet property="fildNameInput" destination="28E-FV-H6c" id="ogM-cv-DEu"/>
+                <outlet property="fontAlightButton" destination="JhX-m1-2je" id="leb-N7-kus"/>
+                <outlet property="fontColorItem" destination="QWN-5o-6Wa" id="S3p-hG-FMU"/>
+                <outlet property="fontNameSelect" destination="bMr-XL-2kW" id="12x-xM-G9A"/>
+                <outlet property="fontPopView" destination="02q-Et-3xI" id="4Qw-3Y-9BL"/>
+                <outlet property="fontSizeZoomInButton" destination="1kJ-8n-vhM" id="QQu-jB-sxM"/>
+                <outlet property="fontSizeZoomOutButton" destination="AMn-21-gvf" id="jwF-e6-htX"/>
+                <outlet property="formRightConstraint" destination="u42-WV-ITu" id="pEF-BI-77P"/>
+                <outlet property="formView" destination="LPw-ie-60F" id="npe-8Q-QKy"/>
+                <outlet property="generaColorGroup" destination="fKq-zf-udC" id="mEq-1t-EJE"/>
+                <outlet property="generaPopView" destination="EaV-bw-2Vs" id="t1A-kj-bmG"/>
+                <outlet property="goPageLinkButton" destination="x04-Wc-Jbv" id="eWo-7z-oH6"/>
+                <outlet property="goUrlLinkButton" destination="lmh-7j-mVp" id="4ap-p1-ExJ"/>
+                <outlet property="gropNameInput" destination="SMx-yT-IGE" id="YSK-IR-d5c"/>
+                <outlet property="lineBox" destination="m8t-zE-wGT" id="BQ0-Pe-AD0"/>
+                <outlet property="linkPageDetailView" destination="GqZ-0O-3I4" id="K1v-YL-gI0"/>
+                <outlet property="linkUrlDetailView" destination="lBx-2p-5CA" id="68X-wl-Nnp"/>
+                <outlet property="linkView" destination="EXr-rY-JSo" id="unu-JJ-qPa"/>
+                <outlet property="operationBox" destination="6vJ-If-Lav" id="dxd-kb-2Y9"/>
+                <outlet property="operationHeightConstraint" destination="CIn-fk-4m5" id="veC-Ds-vYb"/>
+                <outlet property="operationWidthConstraint" destination="c1o-c5-2QW" id="y3K-02-9hQ"/>
+                <outlet property="pageLinkButton" destination="BiW-FM-LGn" id="vOE-MT-vvD"/>
+                <outlet property="pageLinkWidthConstraint" destination="RYs-kx-vms" id="R5o-Pl-Sf8"/>
+                <outlet property="pageThumImageView" destination="oZL-w6-kJh" id="ewM-ZH-BUB"/>
+                <outlet property="paginationDesBox" destination="fKm-6o-VyI" id="G94-lr-879"/>
+                <outlet property="paginationView" destination="egX-pQ-3og" id="K2c-8p-dIa"/>
+                <outlet property="paneBox" destination="kVT-h1-q6W" id="9Ln-l6-W8j"/>
+                <outlet property="paneSelectorItem" destination="5Oh-3I-XHe" id="iB3-0q-GoK"/>
+                <outlet property="rightOffsetConstraint" destination="RLn-Tk-wfw" id="6wH-Vq-YAm"/>
+                <outlet property="shapeColorGroup" destination="Tg3-tT-5EC" id="hoD-I8-Aqf"/>
+                <outlet property="shapeRightConstraint" destination="WBN-ci-kiK" id="xrg-Ne-8Aq"/>
+                <outlet property="shapeView" destination="TNy-Ii-xfS" id="JXI-Fc-vAc"/>
+                <outlet property="urlInput" destination="fgu-8y-ap9" id="GMp-X4-i29"/>
+                <outlet property="urlLinkButton" destination="D56-f6-j51" id="lwM-fJ-cB9"/>
+                <outlet property="urlLinkWidthConstraint" destination="N6a-7p-DjQ" id="VYS-fN-GGu"/>
+                <outlet property="view" destination="JdB-yp-Kcj" id="zKL-bp-8gp"/>
+                <outlet property="widthZoomInButton" destination="55D-pd-ARA" id="AT7-c5-5Mw"/>
+                <outlet property="widthZoomOutButton" destination="GbE-QY-Ku7" id="iue-6f-cah"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <view id="JdB-yp-Kcj">
+            <rect key="frame" x="0.0" y="0.0" width="501" height="40"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="U9Q-li-np9">
+                    <rect key="frame" x="0.0" y="0.0" width="501" height="40"/>
+                    <view key="contentView" id="DJb-m2-RWr">
+                        <rect key="frame" x="0.0" y="0.0" width="501" height="40"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="6vJ-If-Lav">
+                                <rect key="frame" x="8" y="3" width="452" height="34"/>
+                                <view key="contentView" id="ayP-PJ-8ts">
+                                    <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                </view>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="34" id="CIn-fk-4m5"/>
+                                    <constraint firstAttribute="width" constant="452" id="c1o-c5-2QW"/>
+                                </constraints>
+                            </box>
+                            <box boxType="custom" borderType="none" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="kVT-h1-q6W">
+                                <rect key="frame" x="452" y="3" width="41" height="34"/>
+                                <view key="contentView" id="2U3-T5-IKG">
+                                    <rect key="frame" x="0.0" y="0.0" width="41" height="34"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                    <subviews>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="5Oh-3I-XHe" customClass="ComponentCSelector" customModule="KMComponentLibrary">
+                                            <rect key="frame" x="9" y="0.0" width="32" height="34"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="32" id="APA-B5-fDt"/>
+                                            </constraints>
+                                        </customView>
+                                        <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="m8t-zE-wGT">
+                                            <rect key="frame" x="4" y="9" width="1" height="16"/>
+                                            <view key="contentView" id="FJZ-16-UlP">
+                                                <rect key="frame" x="0.0" y="0.0" width="1" height="16"/>
+                                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                            </view>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="1" id="Fu2-PD-VVC"/>
+                                                <constraint firstAttribute="height" constant="16" id="HJc-yy-A7p"/>
+                                            </constraints>
+                                            <color key="fillColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                        </box>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="5Oh-3I-XHe" secondAttribute="trailing" id="1Se-Xp-pna"/>
+                                        <constraint firstItem="5Oh-3I-XHe" firstAttribute="leading" secondItem="m8t-zE-wGT" secondAttribute="trailing" constant="4" id="8v0-66-XvU"/>
+                                        <constraint firstItem="5Oh-3I-XHe" firstAttribute="top" secondItem="2U3-T5-IKG" secondAttribute="top" id="HbD-bS-Pdz"/>
+                                        <constraint firstItem="m8t-zE-wGT" firstAttribute="centerY" secondItem="2U3-T5-IKG" secondAttribute="centerY" id="Qvo-8F-BUw"/>
+                                        <constraint firstItem="m8t-zE-wGT" firstAttribute="leading" secondItem="2U3-T5-IKG" secondAttribute="leading" constant="4" id="eG3-pT-jiO"/>
+                                        <constraint firstAttribute="bottom" secondItem="5Oh-3I-XHe" secondAttribute="bottom" id="p0W-mJ-D8m"/>
+                                    </constraints>
+                                </view>
+                            </box>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="kVT-h1-q6W" firstAttribute="top" secondItem="DJb-m2-RWr" secondAttribute="top" constant="3" id="1yc-hC-IIa"/>
+                            <constraint firstAttribute="bottom" secondItem="kVT-h1-q6W" secondAttribute="bottom" constant="3" id="878-p4-ROk"/>
+                            <constraint firstItem="6vJ-If-Lav" firstAttribute="top" secondItem="DJb-m2-RWr" secondAttribute="top" constant="3" id="AKf-PA-jdd"/>
+                            <constraint firstAttribute="trailing" secondItem="kVT-h1-q6W" secondAttribute="trailing" constant="8" id="GPd-r3-tg1"/>
+                            <constraint firstAttribute="trailing" secondItem="6vJ-If-Lav" secondAttribute="trailing" constant="41" id="RLn-Tk-wfw"/>
+                            <constraint firstItem="6vJ-If-Lav" firstAttribute="leading" secondItem="DJb-m2-RWr" secondAttribute="leading" constant="8" id="e2c-k3-QMc"/>
+                            <constraint firstAttribute="bottom" secondItem="6vJ-If-Lav" secondAttribute="bottom" constant="3" id="yTj-Nw-Upv"/>
+                        </constraints>
+                    </view>
+                </box>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="U9Q-li-np9" secondAttribute="trailing" id="4ip-Tj-bLy"/>
+                <constraint firstAttribute="bottom" secondItem="U9Q-li-np9" secondAttribute="bottom" id="AGn-G2-DCF"/>
+                <constraint firstItem="U9Q-li-np9" firstAttribute="top" secondItem="JdB-yp-Kcj" secondAttribute="top" id="OxQ-uL-hSf"/>
+                <constraint firstItem="U9Q-li-np9" firstAttribute="leading" secondItem="JdB-yp-Kcj" secondAttribute="leading" id="tzs-T7-eac"/>
+            </constraints>
+            <point key="canvasLocation" x="114" y="154"/>
+        </view>
+        <customView id="EaV-bw-2Vs">
+            <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="fKq-zf-udC" customClass="ComponentCColorGroup" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="Tjg-5w-Qs7"/>
+                        <constraint firstAttribute="width" constant="200" id="ZXA-UQ-p08"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="fKq-zf-udC" firstAttribute="top" secondItem="EaV-bw-2Vs" secondAttribute="top" id="538-nw-02U"/>
+                <constraint firstItem="fKq-zf-udC" firstAttribute="leading" secondItem="EaV-bw-2Vs" secondAttribute="leading" id="Bi1-Ie-WvU"/>
+                <constraint firstAttribute="bottom" secondItem="fKq-zf-udC" secondAttribute="bottom" id="UzH-fb-7Hu"/>
+                <constraint firstAttribute="trailing" secondItem="fKq-zf-udC" secondAttribute="trailing" id="hK2-zb-aQt"/>
+            </constraints>
+            <point key="canvasLocation" x="65" y="239"/>
+        </customView>
+        <customView id="02q-Et-3xI">
+            <rect key="frame" x="0.0" y="0.0" width="304" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="QWN-5o-6Wa" customClass="ComponentCColorItem" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="31K-xE-sZg"/>
+                        <constraint firstAttribute="height" constant="34" id="GdR-Ka-K46"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="bMr-XL-2kW" customClass="ComponentSelect" customModule="KMComponentLibrary">
+                    <rect key="frame" x="36" y="0.0" width="160" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="160" id="iEF-zO-JS9"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="1kJ-8n-vhM" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="200" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="cev-2C-eAk"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="AMn-21-gvf" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="236" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="6Fu-2O-4E7"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="JhX-m1-2je" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="272" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="mFJ-ms-vYz"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="bMr-XL-2kW" firstAttribute="top" secondItem="02q-Et-3xI" secondAttribute="top" id="8ra-q7-tDw"/>
+                <constraint firstAttribute="trailing" secondItem="JhX-m1-2je" secondAttribute="trailing" id="B8Q-0g-zym"/>
+                <constraint firstAttribute="bottom" secondItem="JhX-m1-2je" secondAttribute="bottom" id="BW2-hH-XO0"/>
+                <constraint firstItem="1kJ-8n-vhM" firstAttribute="top" secondItem="02q-Et-3xI" secondAttribute="top" id="E4i-Aj-IgY"/>
+                <constraint firstItem="JhX-m1-2je" firstAttribute="top" secondItem="02q-Et-3xI" secondAttribute="top" id="MTb-Lp-m42"/>
+                <constraint firstItem="bMr-XL-2kW" firstAttribute="leading" secondItem="QWN-5o-6Wa" secondAttribute="trailing" constant="4" id="MbB-OS-xuN"/>
+                <constraint firstItem="1kJ-8n-vhM" firstAttribute="leading" secondItem="bMr-XL-2kW" secondAttribute="trailing" constant="4" id="R9N-IE-6MT"/>
+                <constraint firstAttribute="bottom" secondItem="bMr-XL-2kW" secondAttribute="bottom" id="ScV-so-EU3"/>
+                <constraint firstAttribute="bottom" secondItem="1kJ-8n-vhM" secondAttribute="bottom" id="TVl-q0-SN0"/>
+                <constraint firstItem="JhX-m1-2je" firstAttribute="leading" secondItem="AMn-21-gvf" secondAttribute="trailing" constant="4" id="avk-j3-GQt"/>
+                <constraint firstItem="AMn-21-gvf" firstAttribute="leading" secondItem="1kJ-8n-vhM" secondAttribute="trailing" constant="4" id="dbm-dS-UgP"/>
+                <constraint firstAttribute="bottom" secondItem="QWN-5o-6Wa" secondAttribute="bottom" id="don-1L-azO"/>
+                <constraint firstItem="AMn-21-gvf" firstAttribute="top" secondItem="02q-Et-3xI" secondAttribute="top" id="isF-ke-Zcf"/>
+                <constraint firstAttribute="bottom" secondItem="AMn-21-gvf" secondAttribute="bottom" id="nVF-rL-z6Q"/>
+                <constraint firstItem="QWN-5o-6Wa" firstAttribute="top" secondItem="02q-Et-3xI" secondAttribute="top" id="svi-So-OaS"/>
+                <constraint firstItem="QWN-5o-6Wa" firstAttribute="leading" secondItem="02q-Et-3xI" secondAttribute="leading" id="uef-qH-FzG"/>
+            </constraints>
+            <point key="canvasLocation" x="101" y="330"/>
+        </customView>
+        <customView id="TNy-Ii-xfS">
+            <rect key="frame" x="0.0" y="0.0" width="272" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Tg3-tT-5EC" customClass="ComponentCColorGroup" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="17f-8u-EAl"/>
+                        <constraint firstAttribute="width" constant="200" id="b64-DW-zaR"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="55D-pd-ARA" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="240" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="h6K-Dn-9tB"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="GbE-QY-Ku7" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="204" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="MPY-7B-KbT"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="GbE-QY-Ku7" secondAttribute="bottom" id="7qH-wx-ltQ"/>
+                <constraint firstItem="GbE-QY-Ku7" firstAttribute="top" secondItem="TNy-Ii-xfS" secondAttribute="top" id="Aag-XQ-MfX"/>
+                <constraint firstItem="55D-pd-ARA" firstAttribute="leading" secondItem="GbE-QY-Ku7" secondAttribute="trailing" constant="4" id="Jxn-KV-CAo"/>
+                <constraint firstAttribute="bottom" secondItem="Tg3-tT-5EC" secondAttribute="bottom" id="Mdj-5Q-Lrc"/>
+                <constraint firstAttribute="trailing" secondItem="55D-pd-ARA" secondAttribute="trailing" id="UYC-EZ-yWn"/>
+                <constraint firstAttribute="trailing" secondItem="Tg3-tT-5EC" secondAttribute="trailing" constant="72" id="WBN-ci-kiK"/>
+                <constraint firstItem="Tg3-tT-5EC" firstAttribute="leading" secondItem="TNy-Ii-xfS" secondAttribute="leading" id="ep1-2U-5s7"/>
+                <constraint firstAttribute="bottom" secondItem="55D-pd-ARA" secondAttribute="bottom" id="fKo-tk-AJa"/>
+                <constraint firstItem="55D-pd-ARA" firstAttribute="top" secondItem="TNy-Ii-xfS" secondAttribute="top" id="g9n-CC-gX1"/>
+                <constraint firstItem="Tg3-tT-5EC" firstAttribute="top" secondItem="TNy-Ii-xfS" secondAttribute="top" id="hGT-cK-zaC"/>
+            </constraints>
+            <point key="canvasLocation" x="89" y="418"/>
+        </customView>
+        <customView id="EXr-rY-JSo">
+            <rect key="frame" x="0.0" y="0.0" width="240" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="BiW-FM-LGn" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="80" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="80" id="RYs-kx-vms"/>
+                        <constraint firstAttribute="height" constant="34" id="oS3-gv-Jee"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="D56-f6-j51" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="80" y="0.0" width="80" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="80" id="N6a-7p-DjQ"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="sHX-2b-0JH" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="160" y="0.0" width="80" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="80" id="h7T-5M-70F"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="sHX-2b-0JH" firstAttribute="top" secondItem="EXr-rY-JSo" secondAttribute="top" id="7dv-8F-6vD"/>
+                <constraint firstAttribute="trailing" secondItem="sHX-2b-0JH" secondAttribute="trailing" id="LTQ-WK-xAy"/>
+                <constraint firstItem="sHX-2b-0JH" firstAttribute="leading" secondItem="D56-f6-j51" secondAttribute="trailing" id="RTE-4e-PhM"/>
+                <constraint firstAttribute="bottom" secondItem="BiW-FM-LGn" secondAttribute="bottom" id="UOJ-i0-V5P"/>
+                <constraint firstAttribute="bottom" secondItem="sHX-2b-0JH" secondAttribute="bottom" id="hTp-3J-1Wp"/>
+                <constraint firstItem="BiW-FM-LGn" firstAttribute="leading" secondItem="EXr-rY-JSo" secondAttribute="leading" id="jKQ-Nh-hTM"/>
+                <constraint firstItem="D56-f6-j51" firstAttribute="leading" secondItem="BiW-FM-LGn" secondAttribute="trailing" id="ouc-b0-5mM"/>
+                <constraint firstItem="D56-f6-j51" firstAttribute="top" secondItem="EXr-rY-JSo" secondAttribute="top" id="rkX-je-qnu"/>
+                <constraint firstItem="BiW-FM-LGn" firstAttribute="top" secondItem="EXr-rY-JSo" secondAttribute="top" id="uj5-Yn-dzZ"/>
+                <constraint firstAttribute="bottom" secondItem="D56-f6-j51" secondAttribute="bottom" id="vIs-Qz-54F"/>
+            </constraints>
+            <point key="canvasLocation" x="73" y="528"/>
+        </customView>
+        <customView id="GqZ-0O-3I4">
+            <rect key="frame" x="0.0" y="0.0" width="240" height="224"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="zDH-Uy-9JA">
+                    <rect key="frame" x="0.0" y="192" width="240" height="32"/>
+                    <view key="contentView" id="n7y-Pa-2kr">
+                        <rect key="frame" x="0.0" y="0.0" width="240" height="32"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="mwq-is-u1K" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                <rect key="frame" x="0.0" y="0.0" width="65" height="32"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="65" id="bPv-Ti-XnZ"/>
+                                </constraints>
+                            </customView>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="x04-Wc-Jbv" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                <rect key="frame" x="208" y="0.0" width="32" height="32"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="32" id="wcq-ib-lEK"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="mwq-is-u1K" firstAttribute="leading" secondItem="n7y-Pa-2kr" secondAttribute="leading" id="1zt-8c-9c9"/>
+                            <constraint firstAttribute="bottom" secondItem="x04-Wc-Jbv" secondAttribute="bottom" id="9sg-Eu-sqq"/>
+                            <constraint firstAttribute="bottom" secondItem="mwq-is-u1K" secondAttribute="bottom" id="GyH-HW-QKi"/>
+                            <constraint firstItem="mwq-is-u1K" firstAttribute="top" secondItem="n7y-Pa-2kr" secondAttribute="top" id="Ygc-CK-64l"/>
+                            <constraint firstAttribute="trailing" secondItem="x04-Wc-Jbv" secondAttribute="trailing" id="nH4-lW-iX6"/>
+                            <constraint firstItem="x04-Wc-Jbv" firstAttribute="top" secondItem="n7y-Pa-2kr" secondAttribute="top" id="zn8-BX-Ol3"/>
+                        </constraints>
+                    </view>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="240" id="HyR-al-82n"/>
+                        <constraint firstAttribute="height" constant="32" id="rvj-6P-bvH"/>
+                    </constraints>
+                    <color key="fillColor" red="0.98039215690000003" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                </box>
+                <box boxType="custom" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="fKm-6o-VyI">
+                    <rect key="frame" x="0.0" y="0.0" width="240" height="192"/>
+                    <view key="contentView" id="v7K-AM-W5t">
+                        <rect key="frame" x="1" y="1" width="238" height="190"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="oZL-w6-kJh">
+                                <rect key="frame" x="75" y="55" width="88" height="120"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="120" id="6Ne-G1-dV4"/>
+                                    <constraint firstAttribute="width" constant="88" id="qAR-IF-K2L"/>
+                                </constraints>
+                                <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="50E-vx-9Ml"/>
+                            </imageView>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="egX-pQ-3og" customClass="ComponentPagination" customModule="KMComponentLibrary">
+                                <rect key="frame" x="29" y="16" width="180" height="24"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="24" id="LwH-I3-wic"/>
+                                    <constraint firstAttribute="width" constant="180" id="mYi-K3-nsc"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="egX-pQ-3og" firstAttribute="centerX" secondItem="v7K-AM-W5t" secondAttribute="centerX" id="0dW-yb-fwY"/>
+                            <constraint firstAttribute="bottom" secondItem="egX-pQ-3og" secondAttribute="bottom" constant="16" id="7sa-Nj-e6j"/>
+                            <constraint firstItem="oZL-w6-kJh" firstAttribute="centerX" secondItem="v7K-AM-W5t" secondAttribute="centerX" id="Abh-4S-MJv"/>
+                            <constraint firstItem="oZL-w6-kJh" firstAttribute="centerY" secondItem="v7K-AM-W5t" secondAttribute="centerY" constant="-20" id="wXL-ls-Ot5"/>
+                        </constraints>
+                    </view>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="192" id="htf-5t-OKz"/>
+                    </constraints>
+                </box>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="trailing" secondItem="fKm-6o-VyI" secondAttribute="trailing" id="1Kg-7s-bFk"/>
+                <constraint firstItem="zDH-Uy-9JA" firstAttribute="top" secondItem="GqZ-0O-3I4" secondAttribute="top" id="1RK-VG-QSM"/>
+                <constraint firstItem="zDH-Uy-9JA" firstAttribute="leading" secondItem="GqZ-0O-3I4" secondAttribute="leading" id="4Mc-D1-ny0"/>
+                <constraint firstItem="fKm-6o-VyI" firstAttribute="top" secondItem="zDH-Uy-9JA" secondAttribute="bottom" id="GcS-Oh-vxd"/>
+                <constraint firstItem="fKm-6o-VyI" firstAttribute="leading" secondItem="GqZ-0O-3I4" secondAttribute="leading" id="Qqc-HX-iV7"/>
+                <constraint firstAttribute="bottom" secondItem="fKm-6o-VyI" secondAttribute="bottom" id="S4B-Gt-hpn"/>
+                <constraint firstAttribute="trailing" secondItem="zDH-Uy-9JA" secondAttribute="trailing" id="Sb4-OY-Y6l"/>
+            </constraints>
+            <point key="canvasLocation" x="369" y="598"/>
+        </customView>
+        <customView id="lBx-2p-5CA">
+            <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Ydp-fI-qeP">
+                    <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
+                    <view key="contentView" id="xCB-F8-UEC">
+                        <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="fgu-8y-ap9" customClass="ComponentInput" customModule="KMComponentLibrary">
+                                <rect key="frame" x="65" y="0.0" width="207" height="32"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="207" id="DV8-JI-IzA"/>
+                                </constraints>
+                            </customView>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="lRh-Y2-uwc" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                <rect key="frame" x="0.0" y="0.0" width="65" height="32"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="65" id="GCL-52-Zqi"/>
+                                </constraints>
+                            </customView>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="lmh-7j-mVp" customClass="ComponentButton" customModule="KMComponentLibrary">
+                                <rect key="frame" x="274" y="0.0" width="32" height="32"/>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="32" id="qqT-ED-N0r"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="fgu-8y-ap9" firstAttribute="top" secondItem="xCB-F8-UEC" secondAttribute="top" id="2Ui-Ve-otn"/>
+                            <constraint firstAttribute="bottom" secondItem="lRh-Y2-uwc" secondAttribute="bottom" id="84b-x4-YE2"/>
+                            <constraint firstAttribute="bottom" secondItem="lmh-7j-mVp" secondAttribute="bottom" id="9Zm-JZ-Vgd"/>
+                            <constraint firstItem="lRh-Y2-uwc" firstAttribute="leading" secondItem="xCB-F8-UEC" secondAttribute="leading" id="Dzp-eW-YRc"/>
+                            <constraint firstAttribute="bottom" secondItem="fgu-8y-ap9" secondAttribute="bottom" id="HC8-Gy-ELs"/>
+                            <constraint firstAttribute="trailing" secondItem="lmh-7j-mVp" secondAttribute="trailing" id="Ldd-Dt-OfR"/>
+                            <constraint firstItem="lRh-Y2-uwc" firstAttribute="top" secondItem="xCB-F8-UEC" secondAttribute="top" id="RZ7-p2-sAr"/>
+                            <constraint firstItem="lmh-7j-mVp" firstAttribute="leading" secondItem="fgu-8y-ap9" secondAttribute="trailing" constant="2" id="agv-XN-RWq"/>
+                            <constraint firstItem="fgu-8y-ap9" firstAttribute="leading" secondItem="lRh-Y2-uwc" secondAttribute="trailing" id="lEs-R6-ycc"/>
+                            <constraint firstItem="lmh-7j-mVp" firstAttribute="top" secondItem="xCB-F8-UEC" secondAttribute="top" id="vvN-lA-lzx"/>
+                        </constraints>
+                    </view>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="32" id="iXY-jv-ZEf"/>
+                    </constraints>
+                    <color key="fillColor" red="0.98039215690000003" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                </box>
+            </subviews>
+            <constraints>
+                <constraint firstItem="Ydp-fI-qeP" firstAttribute="top" secondItem="lBx-2p-5CA" secondAttribute="top" id="1Uz-iS-4ek"/>
+                <constraint firstAttribute="trailing" secondItem="Ydp-fI-qeP" secondAttribute="trailing" id="cQA-df-25e"/>
+                <constraint firstAttribute="bottom" secondItem="Ydp-fI-qeP" secondAttribute="bottom" id="eHl-ik-Q0S"/>
+                <constraint firstItem="Ydp-fI-qeP" firstAttribute="leading" secondItem="lBx-2p-5CA" secondAttribute="leading" id="gSu-jx-dBs"/>
+            </constraints>
+            <point key="canvasLocation" x="716" y="528"/>
+        </customView>
+        <customView id="LPw-ie-60F">
+            <rect key="frame" x="0.0" y="0.0" width="216" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="28E-FV-H6c" customClass="ComponentInput" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="106" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="106" id="6Yi-lj-uzf"/>
+                        <constraint firstAttribute="height" constant="34" id="Evb-My-t11"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="SMx-yT-IGE" customClass="ComponentInput" customModule="KMComponentLibrary">
+                    <rect key="frame" x="110" y="0.0" width="106" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="106" id="V6P-w8-MUV"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="SMx-yT-IGE" secondAttribute="bottom" id="Ngf-2A-vEm"/>
+                <constraint firstAttribute="trailing" secondItem="SMx-yT-IGE" secondAttribute="trailing" id="NhP-od-hSp"/>
+                <constraint firstAttribute="bottom" secondItem="28E-FV-H6c" secondAttribute="bottom" id="hwG-rd-Wm1"/>
+                <constraint firstItem="28E-FV-H6c" firstAttribute="leading" secondItem="LPw-ie-60F" secondAttribute="leading" id="lOs-UJ-Jxb"/>
+                <constraint firstItem="SMx-yT-IGE" firstAttribute="top" secondItem="LPw-ie-60F" secondAttribute="top" id="rCU-t1-ceT"/>
+                <constraint firstAttribute="trailing" secondItem="28E-FV-H6c" secondAttribute="trailing" constant="110" id="u42-WV-ITu"/>
+                <constraint firstItem="28E-FV-H6c" firstAttribute="top" secondItem="LPw-ie-60F" secondAttribute="top" id="wR3-u1-6ro"/>
+            </constraints>
+            <point key="canvasLocation" x="73" y="754"/>
+        </customView>
+        <customView id="dpV-TB-fEP">
+            <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="bAW-G4-DgT" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="fhK-uj-nsn"/>
+                        <constraint firstAttribute="height" constant="34" id="wXn-hc-rtI"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="bAW-G4-DgT" firstAttribute="leading" secondItem="dpV-TB-fEP" secondAttribute="leading" id="27G-SI-WFd"/>
+                <constraint firstAttribute="bottom" secondItem="bAW-G4-DgT" secondAttribute="bottom" id="2Mq-9g-5uy"/>
+                <constraint firstItem="bAW-G4-DgT" firstAttribute="top" secondItem="dpV-TB-fEP" secondAttribute="top" id="bsq-8c-lzR"/>
+                <constraint firstAttribute="trailing" secondItem="bAW-G4-DgT" secondAttribute="trailing" id="dGO-1c-naq"/>
+            </constraints>
+            <point key="canvasLocation" x="79" y="827"/>
+        </customView>
+    </objects>
+</document>

+ 0 - 489
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopAnnotationWindowController.xib

@@ -1,489 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopAnnotationWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <connections>
-                <outlet property="alightButton" destination="0t5-jg-ujy" id="fX5-yx-OHF"/>
-                <outlet property="alightView" destination="oSY-rJ-702" id="pOL-h4-AoB"/>
-                <outlet property="backPageLinkButton" destination="tyA-mK-XkE" id="2u9-bo-ZB6"/>
-                <outlet property="backPageWidthConstraint" destination="NJ3-Ch-hj2" id="PRn-y4-Aoh"/>
-                <outlet property="backUrlLinkButton" destination="qTR-QO-PlG" id="nIB-V7-H8B"/>
-                <outlet property="backUrlWidthConstraint" destination="Shm-AT-EDN" id="qGh-A1-L8L"/>
-                <outlet property="contentBox" destination="iV9-GQ-NJE" id="MaT-Wc-g6P"/>
-                <outlet property="emailLinkButton" destination="KwU-gg-WMl" id="ej4-pM-hwr"/>
-                <outlet property="emailLinkWidthConstraint" destination="AQo-8z-B3b" id="p5o-sm-B5a"/>
-                <outlet property="fildNameInput" destination="1N7-B1-3Nx" id="KPn-C4-XvZ"/>
-                <outlet property="fontAlightButton" destination="d4n-gC-WKa" id="fqW-s0-c4E"/>
-                <outlet property="fontColorItem" destination="4fg-CE-2Ak" id="S76-bi-LXm"/>
-                <outlet property="fontNameSelect" destination="uVm-yx-ayt" id="OWM-1u-ZZK"/>
-                <outlet property="fontPopView" destination="e0X-Fm-9s1" id="ilx-hn-4ar"/>
-                <outlet property="fontSizeZoomInButton" destination="PhS-9n-Efv" id="X4d-OC-HLy"/>
-                <outlet property="fontSizeZoomOutButton" destination="C2z-tn-74c" id="noS-So-fR9"/>
-                <outlet property="formRightConstraint" destination="7aE-o1-HB9" id="iWQ-7T-Evx"/>
-                <outlet property="formView" destination="LQy-CR-O3V" id="bID-pW-UfV"/>
-                <outlet property="generaColorGroup" destination="AMl-8z-nXr" id="5ak-5d-8jo"/>
-                <outlet property="generaPopView" destination="bBj-uu-aMr" id="AEe-f3-FNt"/>
-                <outlet property="goPageLinkButton" destination="DbS-a6-m7k" id="xzf-3h-UMd"/>
-                <outlet property="goUrlLinkButton" destination="deR-fi-kea" id="3MF-xJ-jkk"/>
-                <outlet property="gropNameInput" destination="64L-ht-BB8" id="PU0-jl-tS0"/>
-                <outlet property="lineBox" destination="9xa-JY-EhU" id="zsC-QX-fdB"/>
-                <outlet property="linkPageDetailView" destination="hWw-Or-e2I" id="nIt-jx-2e2"/>
-                <outlet property="linkUrlDetailView" destination="G0S-ZV-bZe" id="Ujg-fq-0Is"/>
-                <outlet property="linkView" destination="ppn-TH-8Io" id="7rU-HR-hfJ"/>
-                <outlet property="operationBox" destination="hK7-nm-yiB" id="xrh-Gx-y5I"/>
-                <outlet property="operationHeightConstraint" destination="AzC-X8-gDb" id="Y1j-Ws-xcA"/>
-                <outlet property="operationWidthConstraint" destination="PmJ-AM-Kgc" id="yM2-8Y-nB5"/>
-                <outlet property="pageLinkButton" destination="B4D-FR-TIx" id="eGH-fj-YYd"/>
-                <outlet property="pageLinkWidthConstraint" destination="8TW-7S-GG9" id="pkf-1W-BMY"/>
-                <outlet property="pageThumImageView" destination="iPw-OS-fTj" id="DBs-Fi-AGg"/>
-                <outlet property="paginationDesBox" destination="LGk-72-nOx" id="vWE-b9-Yq5"/>
-                <outlet property="paginationView" destination="TcP-Wz-fFq" id="3Cf-Bg-cWG"/>
-                <outlet property="paneBox" destination="34L-Tp-WUP" id="g2P-zc-oOo"/>
-                <outlet property="paneSelectorItem" destination="pfZ-VY-VTh" id="0hz-zY-KKP"/>
-                <outlet property="rightOffsetConstraint" destination="TYz-c7-EYo" id="3jY-WY-4JO"/>
-                <outlet property="shapeColorGroup" destination="iMW-Yw-Qr1" id="KTl-HV-r0w"/>
-                <outlet property="shapeRightConstraint" destination="rdP-EY-2Ep" id="4eb-Rk-UiB"/>
-                <outlet property="shapeView" destination="fNe-3E-tHx" id="peC-YT-RFb"/>
-                <outlet property="urlInput" destination="uD5-qC-LES" id="EFf-gb-5Kp"/>
-                <outlet property="urlLinkButton" destination="JpI-5T-pBC" id="M2D-dd-ufE"/>
-                <outlet property="urlLinkWidthConstraint" destination="hdb-ca-Oi3" id="tSa-gU-jYW"/>
-                <outlet property="widthZoomInButton" destination="wQe-BH-R8L" id="zoj-g8-MCU"/>
-                <outlet property="widthZoomOutButton" destination="ALM-CP-Hsi" id="cfJ-RS-e5e"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="F0z-JX-Cv5" customClass="KMNPopOperationWindow" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <windowStyleMask key="styleMask" titled="YES" fullSizeContentView="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="511" height="42"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <view key="contentView" misplaced="YES" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="511" height="42"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="iV9-GQ-NJE">
-                        <rect key="frame" x="0.0" y="0.0" width="501" height="40"/>
-                        <view key="contentView" id="9j5-uh-fjw">
-                            <rect key="frame" x="0.0" y="0.0" width="501" height="40"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="hK7-nm-yiB">
-                                    <rect key="frame" x="8" y="3" width="452" height="34"/>
-                                    <view key="contentView" id="cJm-Sf-LL5">
-                                        <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
-                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                    </view>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="34" id="AzC-X8-gDb"/>
-                                        <constraint firstAttribute="width" constant="452" id="PmJ-AM-Kgc"/>
-                                    </constraints>
-                                </box>
-                                <box boxType="custom" borderType="none" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="34L-Tp-WUP">
-                                    <rect key="frame" x="452" y="3" width="41" height="34"/>
-                                    <view key="contentView" id="PYw-kY-DK4">
-                                        <rect key="frame" x="0.0" y="0.0" width="41" height="34"/>
-                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                        <subviews>
-                                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="pfZ-VY-VTh" customClass="ComponentCSelector" customModule="KMComponentLibrary">
-                                                <rect key="frame" x="9" y="0.0" width="32" height="34"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" constant="32" id="NAx-PC-y22"/>
-                                                </constraints>
-                                            </customView>
-                                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="9xa-JY-EhU">
-                                                <rect key="frame" x="4" y="9" width="1" height="16"/>
-                                                <view key="contentView" id="QmK-oA-Zno">
-                                                    <rect key="frame" x="0.0" y="0.0" width="1" height="16"/>
-                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                </view>
-                                                <constraints>
-                                                    <constraint firstAttribute="height" constant="16" id="50Z-db-De2"/>
-                                                    <constraint firstAttribute="width" constant="1" id="oaa-6t-v0u"/>
-                                                </constraints>
-                                                <color key="fillColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                            </box>
-                                        </subviews>
-                                        <constraints>
-                                            <constraint firstItem="pfZ-VY-VTh" firstAttribute="leading" secondItem="9xa-JY-EhU" secondAttribute="trailing" constant="4" id="3Sg-wz-EGj"/>
-                                            <constraint firstItem="9xa-JY-EhU" firstAttribute="leading" secondItem="PYw-kY-DK4" secondAttribute="leading" constant="4" id="AMb-Wj-EcT"/>
-                                            <constraint firstItem="9xa-JY-EhU" firstAttribute="centerY" secondItem="PYw-kY-DK4" secondAttribute="centerY" id="Dyx-bM-HEA"/>
-                                            <constraint firstAttribute="trailing" secondItem="pfZ-VY-VTh" secondAttribute="trailing" id="S3H-Jd-e8p"/>
-                                            <constraint firstAttribute="bottom" secondItem="pfZ-VY-VTh" secondAttribute="bottom" id="cwN-Ux-8ga"/>
-                                            <constraint firstItem="pfZ-VY-VTh" firstAttribute="top" secondItem="PYw-kY-DK4" secondAttribute="top" id="zjn-AY-B5B"/>
-                                        </constraints>
-                                    </view>
-                                </box>
-                            </subviews>
-                            <constraints>
-                                <constraint firstAttribute="bottom" secondItem="hK7-nm-yiB" secondAttribute="bottom" constant="3" id="JqZ-ne-c2S"/>
-                                <constraint firstItem="hK7-nm-yiB" firstAttribute="top" secondItem="9j5-uh-fjw" secondAttribute="top" constant="3" id="Okw-o9-mpa"/>
-                                <constraint firstAttribute="trailing" secondItem="hK7-nm-yiB" secondAttribute="trailing" constant="41" id="TYz-c7-EYo"/>
-                                <constraint firstItem="hK7-nm-yiB" firstAttribute="leading" secondItem="9j5-uh-fjw" secondAttribute="leading" constant="8" id="aAB-Id-B5f"/>
-                                <constraint firstItem="34L-Tp-WUP" firstAttribute="top" secondItem="9j5-uh-fjw" secondAttribute="top" constant="3" id="cwk-Hx-a5r"/>
-                                <constraint firstAttribute="bottom" secondItem="34L-Tp-WUP" secondAttribute="bottom" constant="3" id="feA-Nd-fVt"/>
-                                <constraint firstAttribute="trailing" secondItem="34L-Tp-WUP" secondAttribute="trailing" constant="8" id="sUj-xQ-GOL"/>
-                            </constraints>
-                        </view>
-                    </box>
-                </subviews>
-                <constraints>
-                    <constraint firstItem="iV9-GQ-NJE" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="13e-sI-Xmx"/>
-                    <constraint firstAttribute="trailing" secondItem="iV9-GQ-NJE" secondAttribute="trailing" id="KIl-Lj-257"/>
-                    <constraint firstAttribute="bottom" secondItem="iV9-GQ-NJE" secondAttribute="bottom" id="Z8K-WI-hjq"/>
-                    <constraint firstItem="iV9-GQ-NJE" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="o5e-1l-mMw"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="104.5" y="39"/>
-        </window>
-        <customView id="bBj-uu-aMr">
-            <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="AMl-8z-nXr" customClass="ComponentCColorGroup" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="NgO-vf-9bV"/>
-                        <constraint firstAttribute="width" constant="200" id="zVe-na-t80"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="bottom" secondItem="AMl-8z-nXr" secondAttribute="bottom" id="Bos-Bu-3Ch"/>
-                <constraint firstItem="AMl-8z-nXr" firstAttribute="leading" secondItem="bBj-uu-aMr" secondAttribute="leading" id="E5v-sB-e86"/>
-                <constraint firstItem="AMl-8z-nXr" firstAttribute="top" secondItem="bBj-uu-aMr" secondAttribute="top" id="EE0-9F-crY"/>
-                <constraint firstAttribute="trailing" secondItem="AMl-8z-nXr" secondAttribute="trailing" id="ExD-g3-dqt"/>
-            </constraints>
-            <point key="canvasLocation" x="65" y="239"/>
-        </customView>
-        <customView id="e0X-Fm-9s1">
-            <rect key="frame" x="0.0" y="0.0" width="304" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="4fg-CE-2Ak" customClass="ComponentCColorItem" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="FaH-oc-Bb7"/>
-                        <constraint firstAttribute="height" constant="34" id="cFY-CA-fjy"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="uVm-yx-ayt" customClass="ComponentSelect" customModule="KMComponentLibrary">
-                    <rect key="frame" x="36" y="0.0" width="160" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="160" id="web-YB-5WN"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="PhS-9n-Efv" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="200" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="ZxM-Fn-5Q3"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="C2z-tn-74c" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="236" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="54g-dE-sRL"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="d4n-gC-WKa" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="272" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="O7Z-jC-fiY"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="d4n-gC-WKa" firstAttribute="top" secondItem="e0X-Fm-9s1" secondAttribute="top" id="G7w-3Y-6P6"/>
-                <constraint firstItem="uVm-yx-ayt" firstAttribute="leading" secondItem="4fg-CE-2Ak" secondAttribute="trailing" constant="4" id="OLG-dt-Ysc"/>
-                <constraint firstItem="PhS-9n-Efv" firstAttribute="leading" secondItem="uVm-yx-ayt" secondAttribute="trailing" constant="4" id="PP8-SN-1GR"/>
-                <constraint firstAttribute="bottom" secondItem="d4n-gC-WKa" secondAttribute="bottom" id="SvU-pk-iUh"/>
-                <constraint firstItem="PhS-9n-Efv" firstAttribute="top" secondItem="e0X-Fm-9s1" secondAttribute="top" id="U1m-p2-Onr"/>
-                <constraint firstAttribute="bottom" secondItem="C2z-tn-74c" secondAttribute="bottom" id="XvY-i9-hvW"/>
-                <constraint firstAttribute="bottom" secondItem="PhS-9n-Efv" secondAttribute="bottom" id="Znh-iO-cQC"/>
-                <constraint firstItem="4fg-CE-2Ak" firstAttribute="leading" secondItem="e0X-Fm-9s1" secondAttribute="leading" id="a2K-bC-TZg"/>
-                <constraint firstAttribute="bottom" secondItem="uVm-yx-ayt" secondAttribute="bottom" id="fQ7-Dw-zy1"/>
-                <constraint firstItem="uVm-yx-ayt" firstAttribute="top" secondItem="e0X-Fm-9s1" secondAttribute="top" id="gvi-0g-HlV"/>
-                <constraint firstAttribute="trailing" secondItem="d4n-gC-WKa" secondAttribute="trailing" id="hRQ-Xx-toV"/>
-                <constraint firstItem="d4n-gC-WKa" firstAttribute="leading" secondItem="C2z-tn-74c" secondAttribute="trailing" constant="4" id="jmk-9e-JWg"/>
-                <constraint firstItem="C2z-tn-74c" firstAttribute="leading" secondItem="PhS-9n-Efv" secondAttribute="trailing" constant="4" id="kYI-8p-acw"/>
-                <constraint firstItem="C2z-tn-74c" firstAttribute="top" secondItem="e0X-Fm-9s1" secondAttribute="top" id="lPz-YA-JFP"/>
-                <constraint firstAttribute="bottom" secondItem="4fg-CE-2Ak" secondAttribute="bottom" id="pqX-yV-WBE"/>
-                <constraint firstItem="4fg-CE-2Ak" firstAttribute="top" secondItem="e0X-Fm-9s1" secondAttribute="top" id="wML-WM-5wk"/>
-            </constraints>
-            <point key="canvasLocation" x="101" y="330"/>
-        </customView>
-        <customView id="fNe-3E-tHx">
-            <rect key="frame" x="0.0" y="0.0" width="272" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="iMW-Yw-Qr1" customClass="ComponentCColorGroup" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="200" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="200" id="SHA-2q-YHA"/>
-                        <constraint firstAttribute="height" constant="34" id="wEl-wE-Rqa"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="wQe-BH-R8L" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="240" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="9fU-Qk-ONC"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="ALM-CP-Hsi" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="204" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="JE6-XM-w4P"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="bottom" secondItem="iMW-Yw-Qr1" secondAttribute="bottom" id="6ha-aC-hxy"/>
-                <constraint firstItem="iMW-Yw-Qr1" firstAttribute="top" secondItem="fNe-3E-tHx" secondAttribute="top" id="975-XT-fiS"/>
-                <constraint firstAttribute="bottom" secondItem="wQe-BH-R8L" secondAttribute="bottom" id="FEa-C3-N27"/>
-                <constraint firstAttribute="bottom" secondItem="ALM-CP-Hsi" secondAttribute="bottom" id="P91-fq-Wda"/>
-                <constraint firstItem="wQe-BH-R8L" firstAttribute="top" secondItem="fNe-3E-tHx" secondAttribute="top" id="WzN-UG-nBO"/>
-                <constraint firstItem="iMW-Yw-Qr1" firstAttribute="leading" secondItem="fNe-3E-tHx" secondAttribute="leading" id="gEj-Pt-8OL"/>
-                <constraint firstItem="wQe-BH-R8L" firstAttribute="leading" secondItem="ALM-CP-Hsi" secondAttribute="trailing" constant="4" id="hun-MS-DVm"/>
-                <constraint firstItem="ALM-CP-Hsi" firstAttribute="top" secondItem="fNe-3E-tHx" secondAttribute="top" id="irN-OH-H4H"/>
-                <constraint firstAttribute="trailing" secondItem="wQe-BH-R8L" secondAttribute="trailing" id="lhq-mL-Rvu"/>
-                <constraint firstAttribute="trailing" secondItem="iMW-Yw-Qr1" secondAttribute="trailing" constant="72" id="rdP-EY-2Ep"/>
-            </constraints>
-            <point key="canvasLocation" x="89" y="418"/>
-        </customView>
-        <customView id="ppn-TH-8Io">
-            <rect key="frame" x="0.0" y="0.0" width="240" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="B4D-FR-TIx" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="80" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="80" id="8TW-7S-GG9"/>
-                        <constraint firstAttribute="height" constant="34" id="ry6-EX-cdy"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="JpI-5T-pBC" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="80" y="0.0" width="80" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="80" id="hdb-ca-Oi3"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="KwU-gg-WMl" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="160" y="0.0" width="80" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="80" id="AQo-8z-B3b"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="B4D-FR-TIx" firstAttribute="leading" secondItem="ppn-TH-8Io" secondAttribute="leading" id="4ZF-jk-ExT"/>
-                <constraint firstAttribute="bottom" secondItem="B4D-FR-TIx" secondAttribute="bottom" id="7Ii-bM-XXV"/>
-                <constraint firstAttribute="bottom" secondItem="KwU-gg-WMl" secondAttribute="bottom" id="HO6-Vt-mUD"/>
-                <constraint firstItem="JpI-5T-pBC" firstAttribute="top" secondItem="ppn-TH-8Io" secondAttribute="top" id="HdW-Pg-Uoa"/>
-                <constraint firstAttribute="bottom" secondItem="JpI-5T-pBC" secondAttribute="bottom" id="Syo-Fd-B6T"/>
-                <constraint firstItem="B4D-FR-TIx" firstAttribute="top" secondItem="ppn-TH-8Io" secondAttribute="top" id="UGi-o4-gGw"/>
-                <constraint firstItem="KwU-gg-WMl" firstAttribute="top" secondItem="ppn-TH-8Io" secondAttribute="top" id="XJ6-Ea-b2E"/>
-                <constraint firstItem="JpI-5T-pBC" firstAttribute="leading" secondItem="B4D-FR-TIx" secondAttribute="trailing" id="lvv-CC-M45"/>
-                <constraint firstItem="KwU-gg-WMl" firstAttribute="leading" secondItem="JpI-5T-pBC" secondAttribute="trailing" id="qef-1x-sVI"/>
-                <constraint firstAttribute="trailing" secondItem="KwU-gg-WMl" secondAttribute="trailing" id="rwE-Be-Mm8"/>
-            </constraints>
-            <point key="canvasLocation" x="73" y="528"/>
-        </customView>
-        <customView id="LQy-CR-O3V">
-            <rect key="frame" x="0.0" y="0.0" width="216" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="1N7-B1-3Nx" customClass="ComponentInput" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="106" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="106" id="Ooy-kn-c06"/>
-                        <constraint firstAttribute="height" constant="34" id="Vuy-Wu-IJq"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="64L-ht-BB8" customClass="ComponentInput" customModule="KMComponentLibrary">
-                    <rect key="frame" x="110" y="0.0" width="106" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="106" id="SQx-rC-VkJ"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="bottom" secondItem="64L-ht-BB8" secondAttribute="bottom" id="4zN-R0-4C8"/>
-                <constraint firstAttribute="trailing" secondItem="1N7-B1-3Nx" secondAttribute="trailing" constant="110" id="7aE-o1-HB9"/>
-                <constraint firstItem="1N7-B1-3Nx" firstAttribute="top" secondItem="LQy-CR-O3V" secondAttribute="top" id="T4E-um-ndc"/>
-                <constraint firstAttribute="bottom" secondItem="1N7-B1-3Nx" secondAttribute="bottom" id="l5I-dE-lrM"/>
-                <constraint firstItem="1N7-B1-3Nx" firstAttribute="leading" secondItem="LQy-CR-O3V" secondAttribute="leading" id="sc6-cK-eNN"/>
-                <constraint firstItem="64L-ht-BB8" firstAttribute="top" secondItem="LQy-CR-O3V" secondAttribute="top" id="vyj-Co-PJg"/>
-                <constraint firstAttribute="trailing" secondItem="64L-ht-BB8" secondAttribute="trailing" id="y54-Em-h06"/>
-            </constraints>
-            <point key="canvasLocation" x="73" y="754"/>
-        </customView>
-        <customView id="oSY-rJ-702">
-            <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="0t5-jg-ujy" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="vK0-HX-YKH"/>
-                        <constraint firstAttribute="width" constant="32" id="veC-00-4pN"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="trailing" secondItem="0t5-jg-ujy" secondAttribute="trailing" id="IrY-7A-ZMP"/>
-                <constraint firstAttribute="bottom" secondItem="0t5-jg-ujy" secondAttribute="bottom" id="On8-wz-g6c"/>
-                <constraint firstItem="0t5-jg-ujy" firstAttribute="top" secondItem="oSY-rJ-702" secondAttribute="top" id="QuJ-Wd-dmg"/>
-                <constraint firstItem="0t5-jg-ujy" firstAttribute="leading" secondItem="oSY-rJ-702" secondAttribute="leading" id="UCh-2i-Rrl"/>
-            </constraints>
-            <point key="canvasLocation" x="79" y="827"/>
-        </customView>
-        <customView id="G0S-ZV-bZe">
-            <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="9V6-0c-I0c">
-                    <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
-                    <view key="contentView" id="h0f-Bx-OZp">
-                        <rect key="frame" x="0.0" y="0.0" width="306" height="32"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="uD5-qC-LES" customClass="ComponentInput" customModule="KMComponentLibrary">
-                                <rect key="frame" x="65" y="0.0" width="207" height="32"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="207" id="GnA-Mo-pkg"/>
-                                </constraints>
-                            </customView>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="qTR-QO-PlG" customClass="ComponentButton" customModule="KMComponentLibrary">
-                                <rect key="frame" x="0.0" y="0.0" width="65" height="32"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="65" id="Shm-AT-EDN"/>
-                                </constraints>
-                            </customView>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="deR-fi-kea" customClass="ComponentButton" customModule="KMComponentLibrary">
-                                <rect key="frame" x="274" y="0.0" width="32" height="32"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="32" id="Coe-Eb-jNq"/>
-                                </constraints>
-                            </customView>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="qTR-QO-PlG" firstAttribute="top" secondItem="h0f-Bx-OZp" secondAttribute="top" id="47E-et-Ukf"/>
-                            <constraint firstItem="deR-fi-kea" firstAttribute="top" secondItem="h0f-Bx-OZp" secondAttribute="top" id="7rB-by-ePP"/>
-                            <constraint firstAttribute="trailing" secondItem="deR-fi-kea" secondAttribute="trailing" id="KR4-CN-3xs"/>
-                            <constraint firstAttribute="bottom" secondItem="uD5-qC-LES" secondAttribute="bottom" id="LUx-NK-nnd"/>
-                            <constraint firstAttribute="bottom" secondItem="deR-fi-kea" secondAttribute="bottom" id="VBk-yc-cY0"/>
-                            <constraint firstItem="qTR-QO-PlG" firstAttribute="leading" secondItem="h0f-Bx-OZp" secondAttribute="leading" id="VgZ-hp-FSo"/>
-                            <constraint firstItem="deR-fi-kea" firstAttribute="leading" secondItem="uD5-qC-LES" secondAttribute="trailing" constant="2" id="Xus-bm-eFT"/>
-                            <constraint firstItem="uD5-qC-LES" firstAttribute="top" secondItem="h0f-Bx-OZp" secondAttribute="top" id="lQM-QH-5JI"/>
-                            <constraint firstItem="uD5-qC-LES" firstAttribute="leading" secondItem="qTR-QO-PlG" secondAttribute="trailing" id="meS-OC-rkX"/>
-                            <constraint firstAttribute="bottom" secondItem="qTR-QO-PlG" secondAttribute="bottom" id="pMJ-xf-ZQ7"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="32" id="Ulg-yp-6wd"/>
-                    </constraints>
-                    <color key="fillColor" red="0.98039215690000003" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
-                </box>
-            </subviews>
-            <constraints>
-                <constraint firstItem="9V6-0c-I0c" firstAttribute="top" secondItem="G0S-ZV-bZe" secondAttribute="top" id="5kU-hd-dyS"/>
-                <constraint firstItem="9V6-0c-I0c" firstAttribute="leading" secondItem="G0S-ZV-bZe" secondAttribute="leading" id="mtK-8b-juD"/>
-                <constraint firstAttribute="trailing" secondItem="9V6-0c-I0c" secondAttribute="trailing" id="pEe-IV-Gzy"/>
-                <constraint firstAttribute="bottom" secondItem="9V6-0c-I0c" secondAttribute="bottom" id="x2N-Eo-3yj"/>
-            </constraints>
-            <point key="canvasLocation" x="716" y="528"/>
-        </customView>
-        <customView id="hWw-Or-e2I">
-            <rect key="frame" x="0.0" y="0.0" width="240" height="224"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="PYI-mW-Hpz">
-                    <rect key="frame" x="0.0" y="192" width="240" height="32"/>
-                    <view key="contentView" id="2iA-5d-Js2">
-                        <rect key="frame" x="0.0" y="0.0" width="240" height="32"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="tyA-mK-XkE" customClass="ComponentButton" customModule="KMComponentLibrary">
-                                <rect key="frame" x="0.0" y="0.0" width="65" height="32"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="65" id="NJ3-Ch-hj2"/>
-                                </constraints>
-                            </customView>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="DbS-a6-m7k" customClass="ComponentButton" customModule="KMComponentLibrary">
-                                <rect key="frame" x="208" y="0.0" width="32" height="32"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="32" id="QPj-sL-jvz"/>
-                                </constraints>
-                            </customView>
-                        </subviews>
-                        <constraints>
-                            <constraint firstAttribute="bottom" secondItem="DbS-a6-m7k" secondAttribute="bottom" id="2Yx-jH-4DW"/>
-                            <constraint firstAttribute="bottom" secondItem="tyA-mK-XkE" secondAttribute="bottom" id="LjF-8r-YHq"/>
-                            <constraint firstItem="tyA-mK-XkE" firstAttribute="leading" secondItem="2iA-5d-Js2" secondAttribute="leading" id="ebA-SP-UCQ"/>
-                            <constraint firstItem="DbS-a6-m7k" firstAttribute="top" secondItem="2iA-5d-Js2" secondAttribute="top" id="icd-lg-sSx"/>
-                            <constraint firstAttribute="trailing" secondItem="DbS-a6-m7k" secondAttribute="trailing" id="klB-9w-GFU"/>
-                            <constraint firstItem="tyA-mK-XkE" firstAttribute="top" secondItem="2iA-5d-Js2" secondAttribute="top" id="xck-Xl-k5J"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="32" id="DH3-Sn-axy"/>
-                        <constraint firstAttribute="width" constant="240" id="ieR-re-IDp"/>
-                    </constraints>
-                    <color key="fillColor" red="0.98039215690000003" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
-                </box>
-                <box boxType="custom" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="LGk-72-nOx">
-                    <rect key="frame" x="0.0" y="0.0" width="240" height="192"/>
-                    <view key="contentView" id="KPL-P1-z2b">
-                        <rect key="frame" x="1" y="1" width="238" height="190"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="iPw-OS-fTj">
-                                <rect key="frame" x="75" y="55" width="88" height="120"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="88" id="a6U-1O-yez"/>
-                                    <constraint firstAttribute="height" constant="120" id="qCb-BG-BJg"/>
-                                </constraints>
-                                <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="TQ5-dP-3kw"/>
-                            </imageView>
-                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="TcP-Wz-fFq" customClass="ComponentPagination" customModule="KMComponentLibrary">
-                                <rect key="frame" x="29" y="16" width="180" height="24"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="24" id="Nr4-Ys-TSF"/>
-                                    <constraint firstAttribute="width" constant="180" id="fDW-Xq-gEL"/>
-                                </constraints>
-                            </customView>
-                        </subviews>
-                        <constraints>
-                            <constraint firstItem="TcP-Wz-fFq" firstAttribute="centerX" secondItem="KPL-P1-z2b" secondAttribute="centerX" id="1J8-08-6LZ"/>
-                            <constraint firstAttribute="bottom" secondItem="TcP-Wz-fFq" secondAttribute="bottom" constant="16" id="B4k-ie-r1y"/>
-                            <constraint firstItem="iPw-OS-fTj" firstAttribute="centerX" secondItem="KPL-P1-z2b" secondAttribute="centerX" id="IH7-i1-9bF"/>
-                            <constraint firstItem="iPw-OS-fTj" firstAttribute="centerY" secondItem="KPL-P1-z2b" secondAttribute="centerY" constant="-20" id="yYR-i9-62B"/>
-                        </constraints>
-                    </view>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="192" id="nHa-pK-tld"/>
-                    </constraints>
-                </box>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="trailing" secondItem="LGk-72-nOx" secondAttribute="trailing" id="2J0-1c-pDo"/>
-                <constraint firstItem="LGk-72-nOx" firstAttribute="leading" secondItem="hWw-Or-e2I" secondAttribute="leading" id="9ba-cJ-XYV"/>
-                <constraint firstItem="PYI-mW-Hpz" firstAttribute="leading" secondItem="hWw-Or-e2I" secondAttribute="leading" id="DXG-jU-GIy"/>
-                <constraint firstItem="PYI-mW-Hpz" firstAttribute="top" secondItem="hWw-Or-e2I" secondAttribute="top" id="FZJ-sA-b02"/>
-                <constraint firstAttribute="bottom" secondItem="LGk-72-nOx" secondAttribute="bottom" id="MrX-NP-Gtg"/>
-                <constraint firstItem="LGk-72-nOx" firstAttribute="top" secondItem="PYI-mW-Hpz" secondAttribute="bottom" id="aMH-ig-Gmc"/>
-                <constraint firstAttribute="trailing" secondItem="PYI-mW-Hpz" secondAttribute="trailing" id="yZe-Gw-Cqh"/>
-            </constraints>
-            <point key="canvasLocation" x="369" y="598"/>
-        </customView>
-    </objects>
-</document>

+ 27 - 71
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditWindowController.swift

@@ -9,7 +9,7 @@ import Cocoa
 
 import KMComponentLibrary
 
-class KMNPopContentEditWindowController: KMNBaseWindowController {
+class KMNPopContentEditViewController: KMNBaseViewController {
     public var editType:EditContentPopType = .editNone {
         didSet {
             rightOffsetConstraint.constant = 49.0
@@ -20,7 +20,7 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
                 textPopView.layoutSubtreeIfNeeded()
                 
                 operationWidthConstraint.constant = textPopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = textPopView
                 congfigFontPopUI()
                 
@@ -33,14 +33,14 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
                 congfigSignImageUI()
                 
                 operationWidthConstraint.constant = imagePopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = imagePopView
                 break
             case .multpleTextEdit:
                 textPopView.layoutSubtreeIfNeeded()
 
                 operationWidthConstraint.constant = textPopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = textPopView
                 congfigFontPopUI()
                 
@@ -53,14 +53,14 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
                 congfigMultpleImageUI()
                 
                 operationWidthConstraint.constant = imagePopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = imagePopView
                 break
             case .multpleImageAndText:
                 alightView.layoutSubtreeIfNeeded()
 
                 operationWidthConstraint.constant = alightView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = alightView
                 break
             case .cropImage:
@@ -69,7 +69,7 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
                 rightOffsetConstraint.constant = 0
                 paneBox.isHidden = true
                 operationWidthConstraint.constant = cropPopView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = cropPopView
                 break
             case .editNone:
@@ -287,7 +287,7 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
                 alightButton.properties.icon = NSImage(named: "KMNImageNameObjecAlignAverageHor")
                 break
             }
-            alightButton.reloadData()            
+            alightButton.reloadData()
         }
     }
     
@@ -315,8 +315,8 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
         }
     }
     
-    static let shared: KMNPopContentEditWindowController = {
-        let windowC = KMNPopContentEditWindowController(windowNibName: "KMNPopContentEditWindowController")
+    static let shared: KMNPopContentEditViewController = {
+        let windowC = KMNPopContentEditViewController(nibName: "KMNPopContentEditViewController", bundle: nil)
         return windowC
     }()
     
@@ -364,8 +364,8 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
     private var fontPopover:NSPopover?
     private var ObjectPopover:NSPopover?
 
-    override func windowDidLoad() {
-        super.windowDidLoad()
+    override func viewDidLoad() {
+        super.viewDidLoad()
     }
     
     override func initContentView() {
@@ -477,60 +477,14 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
     }
     
     //MARK: - Public
-    public func updateFrame(listView:CPDFListView) {
-        let editingAreas = listView.km_EditingAreas()
-        let page = editingAreas.first?.page
-        let windowFram = listView.window?.frame ?? CGRectZero
-        
-        if(page != nil) {
-            let pageRect = listView.selectionMultipleBounds(withEditArea: editingAreas)
-            let positioningRect = listView.convert(pageRect, from: page!)
-            let view: NSView? = nil
-            let position = listView.convert(positioningRect, to: view)
-            var positionNew = position.origin
-            
-            positionNew.x += windowFram.origin.x + position.width/2
-            positionNew.y += windowFram.origin.y + position.height
-            
-            var positionRect = self.window?.frame ?? CGRectZero
-            positionRect.origin.x = positionNew.x - positionRect.width/2
-            positionRect.origin.y = positionNew.y + popOffSet + CGFloat(truncating: listView.editingConfig().editAreaMargin)
-            
-            var listViewWindRect = listView.convert(listView.frame, to: view)
-            listViewWindRect.origin.x += windowFram.origin.x
-            listViewWindRect.origin.y += windowFram.origin.y
-
-            if CGRectGetMaxY(positionRect) > CGRectGetMaxY(listViewWindRect) {
-                positionRect.origin.y = positionNew.y - popOffSet - position.height - positionRect.size.height
-            }
-            
-            if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
-                positionRect.origin.x = CGRectGetMinX(listViewWindRect)
-            }
-
-            if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
-                positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
-            }
-            
-            self.window?.setFrame(positionRect, display: true)
-            
-            updateUILanguage()
-        }
-    }
-    
-    public func closeWindow(listView:CPDFListView?) {
-        if self.window?.isVisible == true {
-            listView?.window?.removeChildWindow(self.window ?? NSWindow())
-            self.window?.close()
-        }
-        
-        if ObjectPopover?.isShown == true {
-            ObjectPopover?.close()
-        }
-        
-        if fontPopover?.isShown == true {
-            fontPopover?.close()
-        }
+   public func closePopView() {
+       if ObjectPopover?.isShown == true {
+           ObjectPopover?.close()
+       }
+       
+       if fontPopover?.isShown == true {
+           fontPopover?.close()
+       }
     }
     
     //MARK: - private
@@ -742,6 +696,7 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
             }
             fontPopover = createFilePopover
             vc.fontAlight = fontAlight
+            
         }
     }
     
@@ -798,7 +753,8 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
             extractGroupView?.updateGroupInfo(menuItemArr)
             
             var point = CGPoint(x: sender.frame.origin.x + sender.frame.size.width/2, y: CGRectGetMaxY(sender.frame))
-            extractGroupView?.showWithPoint(point, relativeTo: self.window?.contentView)
+            point = self.view.convert(point, to: nil)
+            extractGroupView?.showWithPoint(point, relativeTo:sender)
             
             extractButton.properties.state = .pressed
             extractButton.reloadData()
@@ -823,7 +779,7 @@ class KMNPopContentEditWindowController: KMNBaseWindowController {
 }
 
 //MARK: - ComponentCColorDelegate
-extension KMNPopContentEditWindowController: ComponentCColorDelegate {
+extension KMNPopContentEditViewController: ComponentCColorDelegate {
     func componentCColorDidChooseColor(_ view: NSView, _ color: NSColor?) {
          if (view == fontColorItem) {
             fontColorItem.properties?.state = .normal
@@ -841,7 +797,7 @@ extension KMNPopContentEditWindowController: ComponentCColorDelegate {
 }
 
 //MARK: - ComponentSelectDelegate
-extension KMNPopContentEditWindowController: ComponentSelectDelegate {
+extension KMNPopContentEditViewController: ComponentSelectDelegate {
     func componentSelectDidSelect(view: ComponentSelect?, menuItemProperty: ComponentMenuitemProperty?) {
         if(view == fontNameSelect) {
             if menuItemProperty?.identifier == "1" {
@@ -860,7 +816,7 @@ extension KMNPopContentEditWindowController: ComponentSelectDelegate {
 
 
 //MARK: - ComponentSelectDelegate
-extension KMNPopContentEditWindowController: NSPopoverDelegate {
+extension KMNPopContentEditViewController: NSPopoverDelegate {
     func popoverWillClose(_ notification: Notification) {
         if fontPopover == (notification.object as? NSPopover) {
             if(fontAlightButton.properties.state == .pressed) {
@@ -877,7 +833,7 @@ extension KMNPopContentEditWindowController: NSPopoverDelegate {
     }
 }
 
-extension KMNPopContentEditWindowController: ComponentGroupDelegate {
+extension KMNPopContentEditViewController: ComponentGroupDelegate {
     func componentGroupDidDismiss(group: ComponentGroup?) {
         removeGroupView()
         

+ 320 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditViewController.xib

@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopContentEditViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="alightButton" destination="gR2-6O-7iZ" id="LzD-gu-ck4"/>
+                <outlet property="alightView" destination="e0p-xf-obP" id="7Cv-On-TcE"/>
+                <outlet property="contentBox" destination="oz9-lO-Fwi" id="Q9Z-wc-2zQ"/>
+                <outlet property="cropButton" destination="4bl-Db-fd2" id="KSV-1B-v95"/>
+                <outlet property="cropPopView" destination="0kf-l2-h19" id="43m-bs-EAa"/>
+                <outlet property="cropRestButton" destination="GRA-4z-nHX" id="NfU-e2-orY"/>
+                <outlet property="cropSureButton" destination="DDJ-5l-XMZ" id="lf5-wh-Lox"/>
+                <outlet property="extractButton" destination="nT0-qr-eNj" id="o7p-Bf-LRt"/>
+                <outlet property="fontAlightButton" destination="yUR-o4-nU0" id="kfa-ef-RVo"/>
+                <outlet property="fontBoldSelectorItem" destination="x67-9X-LRv" id="aJK-Gb-RIU"/>
+                <outlet property="fontColorItem" destination="qby-hZ-Zqi" id="ZHU-rF-Dm8"/>
+                <outlet property="fontItalicSelectorItem" destination="sGd-km-fwd" id="is4-iy-VeM"/>
+                <outlet property="fontNameSelect" destination="eJZ-Fh-0Ez" id="vWl-M1-c6p"/>
+                <outlet property="fontSizeZoomInButton" destination="7Yp-QC-7fB" id="RZG-1B-6UN"/>
+                <outlet property="fontSizeZoomOutButton" destination="6wW-a0-w5c" id="UM2-97-R6U"/>
+                <outlet property="horizontalMirrorButton" destination="v5h-TO-Qms" id="qH0-2V-Km9"/>
+                <outlet property="imagePopView" destination="5ze-RC-tYh" id="0lX-qC-d1W"/>
+                <outlet property="lineBox" destination="G3Z-ob-h5s" id="DMB-6S-kDN"/>
+                <outlet property="operationBox" destination="Ntn-EZ-h7x" id="GfR-CD-Aeu"/>
+                <outlet property="operationWidthConstraint" destination="86T-NX-gdx" id="dtt-oq-6BO"/>
+                <outlet property="paneBox" destination="RS4-iU-6IH" id="qJA-Cg-c1Y"/>
+                <outlet property="paneSelectorItem" destination="fzO-2k-4g7" id="Op4-Jg-voN"/>
+                <outlet property="replaceButton" destination="MtL-kD-XRM" id="Ypz-5x-eDx"/>
+                <outlet property="rightConstraint" destination="kdc-Wb-UjK" id="5HG-QB-xIG"/>
+                <outlet property="rightOffsetConstraint" destination="v8o-W9-vOe" id="0CP-Hf-ixB"/>
+                <outlet property="rotaLeftButton" destination="DaA-3O-GlU" id="pcE-1f-EQE"/>
+                <outlet property="rotaRightButton" destination="04F-8e-Wmz" id="E4Q-dJ-TZk"/>
+                <outlet property="textPopView" destination="ib7-sR-Gdx" id="Vvk-o4-1kN"/>
+                <outlet property="verticalMirrorButton" destination="OFH-nw-du9" id="LZg-3u-Whw"/>
+                <outlet property="view" destination="a6E-lk-PCq" id="XQT-se-nJT"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <view id="a6E-lk-PCq">
+            <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="oz9-lO-Fwi">
+                    <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
+                    <view key="contentView" id="IBG-gY-QNQ">
+                        <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Ntn-EZ-h7x">
+                                <rect key="frame" x="8" y="3" width="452" height="34"/>
+                                <view key="contentView" id="Axw-IB-TGp">
+                                    <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                </view>
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="452" id="86T-NX-gdx"/>
+                                    <constraint firstAttribute="height" constant="34" id="8xH-B6-IMX"/>
+                                </constraints>
+                            </box>
+                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="RS4-iU-6IH">
+                                <rect key="frame" x="471" y="3" width="41" height="34"/>
+                                <view key="contentView" id="tKM-NO-I1i">
+                                    <rect key="frame" x="0.0" y="0.0" width="41" height="34"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                    <subviews>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="fzO-2k-4g7" customClass="ComponentCSelectorItem" customModule="KMComponentLibrary">
+                                            <rect key="frame" x="9" y="0.0" width="32" height="34"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="32" id="QFp-El-QBS"/>
+                                            </constraints>
+                                        </customView>
+                                        <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="G3Z-ob-h5s">
+                                            <rect key="frame" x="4" y="9" width="1" height="16"/>
+                                            <view key="contentView" id="KOX-2Y-R6J">
+                                                <rect key="frame" x="0.0" y="0.0" width="1" height="16"/>
+                                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                            </view>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="1" id="0pI-Wc-jga"/>
+                                                <constraint firstAttribute="height" constant="16" id="ca0-qn-sy8"/>
+                                            </constraints>
+                                            <color key="fillColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                        </box>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstAttribute="trailing" secondItem="fzO-2k-4g7" secondAttribute="trailing" id="9kB-Mc-3Hl"/>
+                                        <constraint firstItem="fzO-2k-4g7" firstAttribute="top" secondItem="tKM-NO-I1i" secondAttribute="top" id="GGY-gW-qq3"/>
+                                        <constraint firstAttribute="bottom" secondItem="fzO-2k-4g7" secondAttribute="bottom" id="R3q-Ux-oUg"/>
+                                        <constraint firstItem="G3Z-ob-h5s" firstAttribute="leading" secondItem="tKM-NO-I1i" secondAttribute="leading" constant="4" id="VrY-WT-9iJ"/>
+                                        <constraint firstItem="G3Z-ob-h5s" firstAttribute="centerY" secondItem="tKM-NO-I1i" secondAttribute="centerY" id="mCa-iI-TEg"/>
+                                        <constraint firstItem="fzO-2k-4g7" firstAttribute="leading" secondItem="G3Z-ob-h5s" secondAttribute="trailing" constant="4" id="wVf-kH-OD7"/>
+                                    </constraints>
+                                </view>
+                            </box>
+                        </subviews>
+                        <constraints>
+                            <constraint firstAttribute="bottom" secondItem="Ntn-EZ-h7x" secondAttribute="bottom" constant="3" id="Efx-ph-Opf"/>
+                            <constraint firstItem="Ntn-EZ-h7x" firstAttribute="leading" secondItem="IBG-gY-QNQ" secondAttribute="leading" constant="8" id="WSb-Wi-KGn"/>
+                            <constraint firstItem="RS4-iU-6IH" firstAttribute="top" secondItem="IBG-gY-QNQ" secondAttribute="top" constant="3" id="Xea-qQ-Hju"/>
+                            <constraint firstItem="Ntn-EZ-h7x" firstAttribute="top" secondItem="IBG-gY-QNQ" secondAttribute="top" constant="3" id="fxl-z8-SHF"/>
+                            <constraint firstAttribute="trailing" secondItem="RS4-iU-6IH" secondAttribute="trailing" constant="8" id="reL-pd-UzQ"/>
+                            <constraint firstAttribute="trailing" secondItem="Ntn-EZ-h7x" secondAttribute="trailing" constant="60" id="v8o-W9-vOe"/>
+                            <constraint firstAttribute="bottom" secondItem="RS4-iU-6IH" secondAttribute="bottom" constant="3" id="vKd-jE-dkQ"/>
+                        </constraints>
+                    </view>
+                </box>
+            </subviews>
+            <constraints>
+                <constraint firstItem="oz9-lO-Fwi" firstAttribute="top" secondItem="a6E-lk-PCq" secondAttribute="top" id="Igs-m0-lTs"/>
+                <constraint firstAttribute="bottom" secondItem="oz9-lO-Fwi" secondAttribute="bottom" id="Q3r-o9-PZk"/>
+                <constraint firstItem="oz9-lO-Fwi" firstAttribute="leading" secondItem="a6E-lk-PCq" secondAttribute="leading" id="ZhF-KS-WvV"/>
+                <constraint firstAttribute="trailing" secondItem="oz9-lO-Fwi" secondAttribute="trailing" id="Zr4-bq-6Ju"/>
+            </constraints>
+            <point key="canvasLocation" x="-50" y="-368"/>
+        </view>
+        <customView id="5ze-RC-tYh">
+            <rect key="frame" x="0.0" y="0.0" width="248" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="DaA-3O-GlU" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="D8w-Ca-Wm9"/>
+                        <constraint firstAttribute="width" constant="32" id="ccl-bz-G1h"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="04F-8e-Wmz" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="bss-Pk-vRw"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="OFH-nw-du9" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="72" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="8V6-oH-ShO"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="v5h-TO-Qms" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="108" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="0F1-Zz-Q1Z"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="4bl-Db-fd2" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="144" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="woL-HF-WhR"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="MtL-kD-XRM" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="180" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="3QE-u2-6ar"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="nT0-qr-eNj" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="216" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="BhG-cb-Jid"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="DaA-3O-GlU" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="21U-ve-qyH"/>
+                <constraint firstItem="OFH-nw-du9" firstAttribute="leading" secondItem="04F-8e-Wmz" secondAttribute="trailing" constant="4" id="5Wj-e8-xqC"/>
+                <constraint firstAttribute="bottom" secondItem="4bl-Db-fd2" secondAttribute="bottom" id="8ez-og-Dc4"/>
+                <constraint firstAttribute="bottom" secondItem="04F-8e-Wmz" secondAttribute="bottom" id="9Gf-6u-LZa"/>
+                <constraint firstAttribute="bottom" secondItem="MtL-kD-XRM" secondAttribute="bottom" id="AlK-cC-jTu"/>
+                <constraint firstItem="v5h-TO-Qms" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="CCK-0P-fBN"/>
+                <constraint firstItem="04F-8e-Wmz" firstAttribute="leading" secondItem="DaA-3O-GlU" secondAttribute="trailing" constant="4" id="F3s-F8-wSu"/>
+                <constraint firstItem="DaA-3O-GlU" firstAttribute="leading" secondItem="5ze-RC-tYh" secondAttribute="leading" id="H8o-Lo-V0j"/>
+                <constraint firstItem="OFH-nw-du9" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="IyA-sa-O1A"/>
+                <constraint firstAttribute="bottom" secondItem="DaA-3O-GlU" secondAttribute="bottom" id="KEf-xA-2qA"/>
+                <constraint firstItem="MtL-kD-XRM" firstAttribute="leading" secondItem="4bl-Db-fd2" secondAttribute="trailing" constant="4" id="MJb-fw-29A"/>
+                <constraint firstAttribute="bottom" secondItem="nT0-qr-eNj" secondAttribute="bottom" id="NKV-hb-4ac"/>
+                <constraint firstItem="v5h-TO-Qms" firstAttribute="leading" secondItem="OFH-nw-du9" secondAttribute="trailing" constant="4" id="V7t-1d-rjE"/>
+                <constraint firstItem="nT0-qr-eNj" firstAttribute="leading" secondItem="MtL-kD-XRM" secondAttribute="trailing" constant="4" id="Vfm-mi-XgD"/>
+                <constraint firstItem="MtL-kD-XRM" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="Ycc-Lv-snQ"/>
+                <constraint firstItem="4bl-Db-fd2" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="ap0-bA-u1x"/>
+                <constraint firstAttribute="bottom" secondItem="v5h-TO-Qms" secondAttribute="bottom" id="cb1-C7-LNE"/>
+                <constraint firstItem="04F-8e-Wmz" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="czL-PM-GUV"/>
+                <constraint firstItem="4bl-Db-fd2" firstAttribute="leading" secondItem="v5h-TO-Qms" secondAttribute="trailing" constant="4" id="jad-g7-PxI"/>
+                <constraint firstAttribute="trailing" secondItem="MtL-kD-XRM" secondAttribute="trailing" constant="36" id="kdc-Wb-UjK"/>
+                <constraint firstAttribute="bottom" secondItem="OFH-nw-du9" secondAttribute="bottom" id="lj7-v3-oHU"/>
+                <constraint firstItem="nT0-qr-eNj" firstAttribute="top" secondItem="5ze-RC-tYh" secondAttribute="top" id="vJi-WC-ESx"/>
+            </constraints>
+            <point key="canvasLocation" x="94" y="232"/>
+        </customView>
+        <customView id="0kf-l2-h19">
+            <rect key="frame" x="0.0" y="0.0" width="68" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="GRA-4z-nHX" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="saK-wx-1zl"/>
+                        <constraint firstAttribute="width" constant="32" id="ywh-Yb-1K2"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="DDJ-5l-XMZ" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="pRg-KA-2K6"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="DDJ-5l-XMZ" firstAttribute="top" secondItem="0kf-l2-h19" secondAttribute="top" id="9jq-U0-1tY"/>
+                <constraint firstItem="GRA-4z-nHX" firstAttribute="top" secondItem="0kf-l2-h19" secondAttribute="top" id="CPu-IH-HKu"/>
+                <constraint firstAttribute="bottom" secondItem="DDJ-5l-XMZ" secondAttribute="bottom" id="WHg-Ib-bVZ"/>
+                <constraint firstAttribute="trailing" secondItem="DDJ-5l-XMZ" secondAttribute="trailing" id="azK-jJ-IV8"/>
+                <constraint firstItem="DDJ-5l-XMZ" firstAttribute="leading" secondItem="GRA-4z-nHX" secondAttribute="trailing" constant="4" id="dir-r6-woj"/>
+                <constraint firstAttribute="bottom" secondItem="GRA-4z-nHX" secondAttribute="bottom" id="sSJ-jz-GKI"/>
+                <constraint firstItem="GRA-4z-nHX" firstAttribute="leading" secondItem="0kf-l2-h19" secondAttribute="leading" id="vSi-eA-nXR"/>
+            </constraints>
+            <point key="canvasLocation" x="72" y="529"/>
+        </customView>
+        <customView id="e0p-xf-obP">
+            <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="gR2-6O-7iZ" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="73M-Cr-hn8"/>
+                        <constraint firstAttribute="width" constant="32" id="HgA-Fi-fdH"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="gR2-6O-7iZ" firstAttribute="top" secondItem="e0p-xf-obP" secondAttribute="top" id="bf2-q6-N80"/>
+                <constraint firstAttribute="trailing" secondItem="gR2-6O-7iZ" secondAttribute="trailing" id="hM0-xP-Tdp"/>
+                <constraint firstItem="gR2-6O-7iZ" firstAttribute="leading" secondItem="e0p-xf-obP" secondAttribute="leading" id="knE-j4-21s"/>
+                <constraint firstAttribute="bottom" secondItem="gR2-6O-7iZ" secondAttribute="bottom" id="yYQ-Wv-2wq"/>
+            </constraints>
+            <point key="canvasLocation" x="78" y="436"/>
+        </customView>
+        <customView id="ib7-sR-Gdx">
+            <rect key="frame" x="0.0" y="0.0" width="376" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="qby-hZ-Zqi" customClass="ComponentCColorItem" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="0iy-JV-gWY"/>
+                        <constraint firstAttribute="height" constant="34" id="ITq-ng-weD"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="eJZ-Fh-0Ez" customClass="ComponentSelect" customModule="KMComponentLibrary">
+                    <rect key="frame" x="36" y="0.0" width="160" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="160" id="wzn-wI-8c8"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="7Yp-QC-7fB" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="200" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="2V2-Pk-nQL"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="6wW-a0-w5c" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="236" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="Ys3-hc-oIm"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="x67-9X-LRv" customClass="ComponentCSelector" customModule="KMComponentLibrary">
+                    <rect key="frame" x="272" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="PdF-Aa-k7k"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="sGd-km-fwd" customClass="ComponentCSelector" customModule="KMComponentLibrary">
+                    <rect key="frame" x="308" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="Vlp-1F-8jt"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="yUR-o4-nU0" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="344" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="zex-2a-ErE"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="yUR-o4-nU0" secondAttribute="bottom" id="1UJ-tJ-gGP"/>
+                <constraint firstItem="yUR-o4-nU0" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="1nB-rx-ZCo"/>
+                <constraint firstAttribute="bottom" secondItem="qby-hZ-Zqi" secondAttribute="bottom" id="4u6-Io-G4L"/>
+                <constraint firstItem="qby-hZ-Zqi" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="9l1-CD-BkC"/>
+                <constraint firstAttribute="bottom" secondItem="6wW-a0-w5c" secondAttribute="bottom" id="AoN-S4-gNf"/>
+                <constraint firstAttribute="bottom" secondItem="7Yp-QC-7fB" secondAttribute="bottom" id="Bck-As-OcZ"/>
+                <constraint firstAttribute="bottom" secondItem="x67-9X-LRv" secondAttribute="bottom" id="Blf-YW-BIP"/>
+                <constraint firstItem="x67-9X-LRv" firstAttribute="leading" secondItem="6wW-a0-w5c" secondAttribute="trailing" constant="4" id="Q24-cN-bCI"/>
+                <constraint firstItem="x67-9X-LRv" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="R2S-5v-FLg"/>
+                <constraint firstItem="sGd-km-fwd" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="ezl-cz-w3Y"/>
+                <constraint firstItem="eJZ-Fh-0Ez" firstAttribute="leading" secondItem="qby-hZ-Zqi" secondAttribute="trailing" constant="4" id="gCf-fD-nFq"/>
+                <constraint firstAttribute="bottom" secondItem="sGd-km-fwd" secondAttribute="bottom" id="hG1-bv-ncc"/>
+                <constraint firstAttribute="trailing" secondItem="yUR-o4-nU0" secondAttribute="trailing" id="hgz-O3-5Sg"/>
+                <constraint firstItem="yUR-o4-nU0" firstAttribute="leading" secondItem="sGd-km-fwd" secondAttribute="trailing" constant="4" id="hpY-oF-1eg"/>
+                <constraint firstItem="qby-hZ-Zqi" firstAttribute="leading" secondItem="ib7-sR-Gdx" secondAttribute="leading" id="jGa-B3-X55"/>
+                <constraint firstItem="6wW-a0-w5c" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="nLf-t8-s4R"/>
+                <constraint firstItem="7Yp-QC-7fB" firstAttribute="leading" secondItem="eJZ-Fh-0Ez" secondAttribute="trailing" constant="4" id="o3C-et-OVB"/>
+                <constraint firstItem="eJZ-Fh-0Ez" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="odh-ci-Jix"/>
+                <constraint firstItem="sGd-km-fwd" firstAttribute="leading" secondItem="x67-9X-LRv" secondAttribute="trailing" constant="4" id="qv5-Qg-sOC"/>
+                <constraint firstItem="6wW-a0-w5c" firstAttribute="leading" secondItem="7Yp-QC-7fB" secondAttribute="trailing" constant="4" id="tFO-ik-bR2"/>
+                <constraint firstItem="7Yp-QC-7fB" firstAttribute="top" secondItem="ib7-sR-Gdx" secondAttribute="top" id="uau-Oi-WZG"/>
+                <constraint firstAttribute="bottom" secondItem="eJZ-Fh-0Ez" secondAttribute="bottom" id="ydP-KU-yzy"/>
+            </constraints>
+            <point key="canvasLocation" x="101" y="330"/>
+        </customView>
+    </objects>
+</document>

+ 0 - 329
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopContentEditWindowController.xib

@@ -1,329 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopContentEditWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <connections>
-                <outlet property="alightButton" destination="Bol-GU-xvO" id="sPZ-Xa-7lK"/>
-                <outlet property="alightView" destination="uaQ-SE-a0I" id="w6Y-xI-GhE"/>
-                <outlet property="contentBox" destination="elC-AN-sp7" id="cEZ-WA-zf2"/>
-                <outlet property="cropButton" destination="d9r-lw-2AK" id="0oT-xg-P7R"/>
-                <outlet property="cropPopView" destination="eej-36-DQf" id="cy9-dX-oMz"/>
-                <outlet property="cropRestButton" destination="wkL-64-GtL" id="SL4-eI-mSn"/>
-                <outlet property="cropSureButton" destination="kgz-OW-p3G" id="NfC-XX-FQ1"/>
-                <outlet property="extractButton" destination="SOO-w6-Cmm" id="EUY-2W-myL"/>
-                <outlet property="fontAlightButton" destination="abx-ls-sxb" id="Nw1-OL-Tmz"/>
-                <outlet property="fontBoldSelectorItem" destination="EAu-1y-463" id="QYD-jQ-Zd2"/>
-                <outlet property="fontColorItem" destination="qsd-8b-j41" id="uIh-LP-gAM"/>
-                <outlet property="fontItalicSelectorItem" destination="Fe0-IT-raT" id="JiW-54-2d5"/>
-                <outlet property="fontNameSelect" destination="lWX-vh-kMR" id="YBr-Uf-zHK"/>
-                <outlet property="fontSizeZoomInButton" destination="YKs-Kf-rBe" id="57b-BM-0lI"/>
-                <outlet property="fontSizeZoomOutButton" destination="JMi-1O-Jpi" id="ubz-Y5-GNE"/>
-                <outlet property="horizontalMirrorButton" destination="MfB-JU-XFx" id="ZHV-ce-eHB"/>
-                <outlet property="imagePopView" destination="QBj-ik-paF" id="ikp-HP-4HQ"/>
-                <outlet property="lineBox" destination="Rsf-Ge-bao" id="6Xf-jM-bCQ"/>
-                <outlet property="operationBox" destination="gcY-AN-rME" id="En8-nI-TyL"/>
-                <outlet property="operationWidthConstraint" destination="Vrw-lS-VU7" id="RrQ-Rb-8o6"/>
-                <outlet property="paneBox" destination="Asu-CO-giT" id="H0h-IQ-t3e"/>
-                <outlet property="paneSelectorItem" destination="2aI-ns-oxB" id="LUM-uN-26O"/>
-                <outlet property="replaceButton" destination="Cmu-wz-GeL" id="dqS-J9-mfJ"/>
-                <outlet property="rightConstraint" destination="4Je-Bh-u7H" id="TTW-JC-ZHY"/>
-                <outlet property="rightOffsetConstraint" destination="Xpm-rN-REZ" id="dz5-p2-ghT"/>
-                <outlet property="rotaLeftButton" destination="rSd-el-gmf" id="XKR-rw-OQ4"/>
-                <outlet property="rotaRightButton" destination="tSj-ez-s85" id="8TV-lG-Y3M"/>
-                <outlet property="textPopView" destination="wCl-Nn-ilD" id="um9-g7-61v"/>
-                <outlet property="verticalMirrorButton" destination="TFV-27-l3v" id="mBu-4E-WE1"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="F0z-JX-Cv5" customClass="KMNPopOperationWindow" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <windowStyleMask key="styleMask" fullSizeContentView="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="480" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="2560" height="1415"/>
-            <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="elC-AN-sp7">
-                        <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
-                        <view key="contentView" id="vS3-lN-nYx">
-                            <rect key="frame" x="0.0" y="0.0" width="520" height="40"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="gcY-AN-rME">
-                                    <rect key="frame" x="8" y="3" width="452" height="34"/>
-                                    <view key="contentView" id="02z-VH-9ub">
-                                        <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
-                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                    </view>
-                                    <constraints>
-                                        <constraint firstAttribute="height" constant="34" id="4Uc-vl-YrJ"/>
-                                        <constraint firstAttribute="width" constant="452" id="Vrw-lS-VU7"/>
-                                    </constraints>
-                                </box>
-                                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Asu-CO-giT">
-                                    <rect key="frame" x="471" y="3" width="41" height="34"/>
-                                    <view key="contentView" id="IEM-hp-v4T">
-                                        <rect key="frame" x="0.0" y="0.0" width="41" height="34"/>
-                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                        <subviews>
-                                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="2aI-ns-oxB" customClass="ComponentCSelectorItem" customModule="KMComponentLibrary">
-                                                <rect key="frame" x="9" y="0.0" width="32" height="34"/>
-                                                <constraints>
-                                                    <constraint firstAttribute="width" constant="32" id="Ige-a8-PP9"/>
-                                                </constraints>
-                                            </customView>
-                                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="Rsf-Ge-bao">
-                                                <rect key="frame" x="4" y="9" width="1" height="16"/>
-                                                <view key="contentView" id="MHM-uo-o2D">
-                                                    <rect key="frame" x="0.0" y="0.0" width="1" height="16"/>
-                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                </view>
-                                                <constraints>
-                                                    <constraint firstAttribute="height" constant="16" id="6me-pl-5be"/>
-                                                    <constraint firstAttribute="width" constant="1" id="rQC-RE-4XF"/>
-                                                </constraints>
-                                                <color key="fillColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
-                                            </box>
-                                        </subviews>
-                                        <constraints>
-                                            <constraint firstAttribute="trailing" secondItem="2aI-ns-oxB" secondAttribute="trailing" id="5Lk-LY-Fq8"/>
-                                            <constraint firstItem="2aI-ns-oxB" firstAttribute="leading" secondItem="Rsf-Ge-bao" secondAttribute="trailing" constant="4" id="Fpu-CI-Y6v"/>
-                                            <constraint firstAttribute="bottom" secondItem="2aI-ns-oxB" secondAttribute="bottom" id="YBG-JT-o51"/>
-                                            <constraint firstItem="2aI-ns-oxB" firstAttribute="top" secondItem="IEM-hp-v4T" secondAttribute="top" id="a9M-Wb-Ogd"/>
-                                            <constraint firstItem="Rsf-Ge-bao" firstAttribute="centerY" secondItem="IEM-hp-v4T" secondAttribute="centerY" id="sA4-Ga-cV6"/>
-                                            <constraint firstItem="Rsf-Ge-bao" firstAttribute="leading" secondItem="IEM-hp-v4T" secondAttribute="leading" constant="4" id="ufx-CP-u5S"/>
-                                        </constraints>
-                                    </view>
-                                </box>
-                            </subviews>
-                            <constraints>
-                                <constraint firstAttribute="bottom" secondItem="Asu-CO-giT" secondAttribute="bottom" constant="3" id="Igm-Ly-mmW"/>
-                                <constraint firstAttribute="bottom" secondItem="gcY-AN-rME" secondAttribute="bottom" constant="3" id="Na4-OV-xu6"/>
-                                <constraint firstItem="gcY-AN-rME" firstAttribute="top" secondItem="vS3-lN-nYx" secondAttribute="top" constant="3" id="Nd7-Ec-1HX"/>
-                                <constraint firstItem="gcY-AN-rME" firstAttribute="leading" secondItem="vS3-lN-nYx" secondAttribute="leading" constant="8" id="O0m-w4-wnm"/>
-                                <constraint firstAttribute="trailing" secondItem="gcY-AN-rME" secondAttribute="trailing" constant="60" id="Xpm-rN-REZ"/>
-                                <constraint firstItem="Asu-CO-giT" firstAttribute="top" secondItem="vS3-lN-nYx" secondAttribute="top" constant="3" id="d4f-fG-xp1"/>
-                                <constraint firstAttribute="trailing" secondItem="Asu-CO-giT" secondAttribute="trailing" constant="8" id="dwx-Ba-0Hq"/>
-                            </constraints>
-                        </view>
-                    </box>
-                </subviews>
-                <constraints>
-                    <constraint firstItem="elC-AN-sp7" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="5q5-6V-hlp"/>
-                    <constraint firstAttribute="bottom" secondItem="elC-AN-sp7" secondAttribute="bottom" id="9hb-yd-9B0"/>
-                    <constraint firstAttribute="trailing" secondItem="elC-AN-sp7" secondAttribute="trailing" id="Hdj-fS-70Q"/>
-                    <constraint firstItem="elC-AN-sp7" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="mlI-PV-tlp"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="-11" y="111"/>
-        </window>
-        <customView id="QBj-ik-paF">
-            <rect key="frame" x="0.0" y="0.0" width="248" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="rSd-el-gmf" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Dzw-k8-AWM"/>
-                        <constraint firstAttribute="height" constant="34" id="v3Z-mU-bMH"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="tSj-ez-s85" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="0yP-g6-vx9"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="TFV-27-l3v" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="72" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Mfz-C5-Vej"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="MfB-JU-XFx" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="108" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="NNc-Uh-DhD"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="d9r-lw-2AK" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="144" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="fbx-y2-8qI"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Cmu-wz-GeL" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="180" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="57V-Pn-f7K"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="SOO-w6-Cmm" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="216" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="efm-rv-k08"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="tSj-ez-s85" firstAttribute="leading" secondItem="rSd-el-gmf" secondAttribute="trailing" constant="4" id="1Fn-7x-Fwa"/>
-                <constraint firstAttribute="trailing" secondItem="Cmu-wz-GeL" secondAttribute="trailing" constant="36" id="4Je-Bh-u7H"/>
-                <constraint firstItem="Cmu-wz-GeL" firstAttribute="leading" secondItem="d9r-lw-2AK" secondAttribute="trailing" constant="4" id="5AF-EJ-gIA"/>
-                <constraint firstAttribute="bottom" secondItem="tSj-ez-s85" secondAttribute="bottom" id="5Iw-UZ-hDt"/>
-                <constraint firstItem="rSd-el-gmf" firstAttribute="leading" secondItem="QBj-ik-paF" secondAttribute="leading" id="AeL-NG-hI8"/>
-                <constraint firstAttribute="bottom" secondItem="TFV-27-l3v" secondAttribute="bottom" id="D5J-OY-liz"/>
-                <constraint firstItem="d9r-lw-2AK" firstAttribute="leading" secondItem="MfB-JU-XFx" secondAttribute="trailing" constant="4" id="Dua-pz-iWe"/>
-                <constraint firstAttribute="bottom" secondItem="d9r-lw-2AK" secondAttribute="bottom" id="EHk-3h-QtQ"/>
-                <constraint firstItem="MfB-JU-XFx" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="FsM-ky-sEZ"/>
-                <constraint firstItem="MfB-JU-XFx" firstAttribute="leading" secondItem="TFV-27-l3v" secondAttribute="trailing" constant="4" id="MHD-XO-qxG"/>
-                <constraint firstItem="d9r-lw-2AK" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="Mjm-4O-CxC"/>
-                <constraint firstItem="TFV-27-l3v" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="Rum-Ol-Dwh"/>
-                <constraint firstAttribute="bottom" secondItem="Cmu-wz-GeL" secondAttribute="bottom" id="V5D-V7-m6k"/>
-                <constraint firstAttribute="bottom" secondItem="SOO-w6-Cmm" secondAttribute="bottom" id="X8n-qb-Cuf"/>
-                <constraint firstItem="SOO-w6-Cmm" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="Y33-lt-8Xb"/>
-                <constraint firstAttribute="bottom" secondItem="MfB-JU-XFx" secondAttribute="bottom" id="Zys-9s-WgS"/>
-                <constraint firstItem="SOO-w6-Cmm" firstAttribute="leading" secondItem="Cmu-wz-GeL" secondAttribute="trailing" constant="4" id="hnp-h1-dhh"/>
-                <constraint firstItem="rSd-el-gmf" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="nh6-Kb-Laa"/>
-                <constraint firstItem="Cmu-wz-GeL" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="oQf-HF-BAk"/>
-                <constraint firstItem="TFV-27-l3v" firstAttribute="leading" secondItem="tSj-ez-s85" secondAttribute="trailing" constant="4" id="om9-Ej-h1v"/>
-                <constraint firstAttribute="bottom" secondItem="rSd-el-gmf" secondAttribute="bottom" id="pbt-VJ-87j"/>
-                <constraint firstItem="tSj-ez-s85" firstAttribute="top" secondItem="QBj-ik-paF" secondAttribute="top" id="yVt-uJ-mmD"/>
-            </constraints>
-            <point key="canvasLocation" x="94" y="232"/>
-        </customView>
-        <customView id="wCl-Nn-ilD">
-            <rect key="frame" x="0.0" y="0.0" width="376" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="qsd-8b-j41" customClass="ComponentCColorItem" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Keu-aQ-bej"/>
-                        <constraint firstAttribute="height" constant="34" id="yUR-ep-WpC"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="lWX-vh-kMR" customClass="ComponentSelect" customModule="KMComponentLibrary">
-                    <rect key="frame" x="36" y="0.0" width="160" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="160" id="pNm-gt-tVS"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="YKs-Kf-rBe" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="200" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Qzq-8J-N6f"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="JMi-1O-Jpi" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="236" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="WDJ-KD-3KM"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="EAu-1y-463" customClass="ComponentCSelector" customModule="KMComponentLibrary">
-                    <rect key="frame" x="272" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="4mO-rp-TQh"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Fe0-IT-raT" customClass="ComponentCSelector" customModule="KMComponentLibrary">
-                    <rect key="frame" x="308" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="nQi-l7-49q"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="abx-ls-sxb" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="344" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="bDz-mD-XTY"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="lWX-vh-kMR" firstAttribute="leading" secondItem="qsd-8b-j41" secondAttribute="trailing" constant="4" id="5vw-To-c0N"/>
-                <constraint firstAttribute="trailing" secondItem="abx-ls-sxb" secondAttribute="trailing" id="7NT-w3-xgY"/>
-                <constraint firstItem="qsd-8b-j41" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="7TS-Yf-o3W"/>
-                <constraint firstItem="JMi-1O-Jpi" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="7z0-Ct-0OK"/>
-                <constraint firstAttribute="bottom" secondItem="JMi-1O-Jpi" secondAttribute="bottom" id="8nV-l4-Im6"/>
-                <constraint firstAttribute="bottom" secondItem="YKs-Kf-rBe" secondAttribute="bottom" id="KNs-0O-U1g"/>
-                <constraint firstItem="EAu-1y-463" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="QXk-AB-dSV"/>
-                <constraint firstItem="abx-ls-sxb" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="UGy-1g-ujI"/>
-                <constraint firstItem="EAu-1y-463" firstAttribute="leading" secondItem="JMi-1O-Jpi" secondAttribute="trailing" constant="4" id="WZ1-1k-Bmk"/>
-                <constraint firstItem="qsd-8b-j41" firstAttribute="leading" secondItem="wCl-Nn-ilD" secondAttribute="leading" id="YRB-Gt-Cr9"/>
-                <constraint firstAttribute="bottom" secondItem="lWX-vh-kMR" secondAttribute="bottom" id="bem-IQ-YcP"/>
-                <constraint firstItem="lWX-vh-kMR" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="dHJ-o8-7ir"/>
-                <constraint firstItem="abx-ls-sxb" firstAttribute="leading" secondItem="Fe0-IT-raT" secondAttribute="trailing" constant="4" id="dnL-9a-tfU"/>
-                <constraint firstItem="JMi-1O-Jpi" firstAttribute="leading" secondItem="YKs-Kf-rBe" secondAttribute="trailing" constant="4" id="egd-KA-k42"/>
-                <constraint firstItem="YKs-Kf-rBe" firstAttribute="leading" secondItem="lWX-vh-kMR" secondAttribute="trailing" constant="4" id="khr-SP-bFv"/>
-                <constraint firstAttribute="bottom" secondItem="qsd-8b-j41" secondAttribute="bottom" id="l6c-qc-bjd"/>
-                <constraint firstAttribute="bottom" secondItem="Fe0-IT-raT" secondAttribute="bottom" id="mfF-In-ZXn"/>
-                <constraint firstAttribute="bottom" secondItem="EAu-1y-463" secondAttribute="bottom" id="n3K-Ib-A56"/>
-                <constraint firstItem="YKs-Kf-rBe" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="pAD-Qn-fxk"/>
-                <constraint firstItem="Fe0-IT-raT" firstAttribute="top" secondItem="wCl-Nn-ilD" secondAttribute="top" id="qho-DQ-vDz"/>
-                <constraint firstAttribute="bottom" secondItem="abx-ls-sxb" secondAttribute="bottom" id="szf-1z-AIw"/>
-                <constraint firstItem="Fe0-IT-raT" firstAttribute="leading" secondItem="EAu-1y-463" secondAttribute="trailing" constant="4" id="wFS-Uy-zt1"/>
-            </constraints>
-            <point key="canvasLocation" x="101" y="330"/>
-        </customView>
-        <customView id="uaQ-SE-a0I">
-            <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Bol-GU-xvO" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="RVh-0x-oKr"/>
-                        <constraint firstAttribute="height" constant="34" id="hJZ-ml-Hh3"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="Bol-GU-xvO" firstAttribute="top" secondItem="uaQ-SE-a0I" secondAttribute="top" id="6ux-MB-Ynx"/>
-                <constraint firstItem="Bol-GU-xvO" firstAttribute="leading" secondItem="uaQ-SE-a0I" secondAttribute="leading" id="Vpd-E5-epS"/>
-                <constraint firstAttribute="trailing" secondItem="Bol-GU-xvO" secondAttribute="trailing" id="dTL-GZ-fKG"/>
-                <constraint firstAttribute="bottom" secondItem="Bol-GU-xvO" secondAttribute="bottom" id="xUm-Bg-9Ax"/>
-            </constraints>
-            <point key="canvasLocation" x="78" y="436"/>
-        </customView>
-        <customView id="eej-36-DQf">
-            <rect key="frame" x="0.0" y="0.0" width="68" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="wkL-64-GtL" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Y1i-dM-4Iq"/>
-                        <constraint firstAttribute="height" constant="34" id="qCS-lz-RmV"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="kgz-OW-p3G" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="Uy2-d2-ST8"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="trailing" secondItem="kgz-OW-p3G" secondAttribute="trailing" id="1Lu-5I-Clc"/>
-                <constraint firstItem="wkL-64-GtL" firstAttribute="top" secondItem="eej-36-DQf" secondAttribute="top" id="A2h-fm-c1b"/>
-                <constraint firstItem="kgz-OW-p3G" firstAttribute="top" secondItem="eej-36-DQf" secondAttribute="top" id="M5r-D5-blF"/>
-                <constraint firstItem="wkL-64-GtL" firstAttribute="leading" secondItem="eej-36-DQf" secondAttribute="leading" id="VW7-d6-D1d"/>
-                <constraint firstAttribute="bottom" secondItem="wkL-64-GtL" secondAttribute="bottom" id="Zat-A1-Nyd"/>
-                <constraint firstAttribute="bottom" secondItem="kgz-OW-p3G" secondAttribute="bottom" id="esW-b7-Qy6"/>
-                <constraint firstItem="kgz-OW-p3G" firstAttribute="leading" secondItem="wkL-64-GtL" secondAttribute="trailing" constant="4" id="mi7-p6-T8B"/>
-            </constraints>
-            <point key="canvasLocation" x="72" y="529"/>
-        </customView>
-    </objects>
-</document>

+ 9 - 59
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationWindowController.swift

@@ -19,7 +19,7 @@ typealias OperaCropCallback = () -> ()
 
 typealias KMNPopOperationWindowControllerOCRAction = () -> ()
 
-class KMNPopOperationWindowController: KMNBaseWindowController {
+class KMNPopOperationViewController: KMNBaseViewController {
     
     @IBOutlet weak var contentBox: NSBox!
     @IBOutlet weak var operationBox: NSBox!
@@ -40,8 +40,8 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
     
     private var extractGroupView: ComponentGroup?
     
-    static let shared: KMNPopOperationWindowController = {
-        let windowC = KMNPopOperationWindowController(windowNibName: "KMNPopOperationWindowController")
+    static let shared: KMNPopOperationViewController = {
+        let windowC = KMNPopOperationViewController(nibName: "KMNPopOperationViewController", bundle: nil)
         return windowC
     }()
     
@@ -60,14 +60,14 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
             case .ocr :
                 ocrView.layoutSubtreeIfNeeded()
                 operationWidthConstraint.constant = ocrView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = ocrView
                 break
             case .crop:
                 cropView.layoutSubtreeIfNeeded()
                 
                 operationWidthConstraint.constant = cropView.bounds.width
-                self.window?.display() //需刷新约束才会有值,不然会变化
+                self.view.display() //需刷新约束才会有值,不然会变化
                 operationBox.contentView = cropView
                 break
             case .operationNone:
@@ -77,8 +77,8 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
         }
     }
     
-    override func windowDidLoad() {
-        super.windowDidLoad()
+    override func viewDidLoad() {
+        super.viewDidLoad()
     }
     
     override func initContentView() {
@@ -154,56 +154,6 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
         extractSelect.reloadData()
     }
     
-    //MARK: - Public
-    public func updateFrame(listView:CPDFListView?,page:CPDFPage?) {
-        let windowFram = listView?.window?.frame ?? CGRectZero
-        
-        let pageRect = listView?.currentSelectionRect() ?? NSRect.zero
-        
-        if page != nil {
-            let positioningRect = listView?.convert(pageRect, from: page!) ?? NSRect.zero
-            if (CGRectIntersectsRect(positioningRect, listView?.frame ?? CGRectZero)) {
-                let view: NSView? = nil
-                let position = listView?.convert(positioningRect, to: view) ?? NSRect.zero
-                var positionNew = position.origin
-                
-                positionNew.x += windowFram.origin.x + position.width
-                positionNew.y += windowFram.origin.y
-                
-                var positionRect = self.window?.frame ?? CGRectZero
-                positionRect.origin.x = positionNew.x - positionRect.width
-                positionRect.origin.y = positionNew.y - popOffSet - positionRect.height
-                
-                var listViewWindRect = listView?.convert(listView?.frame ?? CGRect.zero, to: view) ?? CGRect.zero
-                listViewWindRect.origin.x += windowFram.origin.x
-                listViewWindRect.origin.y += windowFram.origin.y
-                
-                if CGRectGetMinY(positionRect) < CGRectGetMinY(listViewWindRect) {
-                    positionRect.origin.y = positionNew.y + popOffSet + position.height
-                }
-                
-                if CGRectGetMinX(positionRect) < CGRectGetMinX(listViewWindRect) {
-                    positionRect.origin.x = CGRectGetMinX(listViewWindRect)
-                }
-                
-                if CGRectGetMaxX(positionRect) > CGRectGetMaxX(listViewWindRect) {
-                    positionRect.origin.x = CGRectGetMaxX(listViewWindRect) - positionRect.width
-                }
-                self.window?.setFrame(positionRect, display: true)
-                
-                updateUILanguage()
-            }
-        }
-        
-    }
-    
-    public func closeWindow(listView:CPDFListView?) {
-        if self.window?.isVisible == true {
-            listView?.window?.removeChildWindow(self.window ?? NSWindow())
-            self.window?.close()
-        }
-    }
-    
     
     //MARK: - Action
     @objc func cancelButtonClicked(_ sender: NSView) {
@@ -272,7 +222,7 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
             extractGroupView?.updateGroupInfo(menuItemArr)
             
             let point = CGPoint(x: sender.frame.origin.x + sender.frame.size.width/2, y: CGRectGetMinY(sender.frame) - viewHeight)
-            extractGroupView?.showWithPoint(point, relativeTo: self.window?.contentView)
+            extractGroupView?.showWithPoint(point, relativeTo: sender)
             
             extractSelect.properties.state = .pressed
             extractSelect.reloadData()
@@ -286,7 +236,7 @@ class KMNPopOperationWindowController: KMNBaseWindowController {
     }
 }
 
-extension KMNPopOperationWindowController: ComponentGroupDelegate {
+extension KMNPopOperationViewController: ComponentGroupDelegate {
     func componentGroupDidDismiss(group: ComponentGroup?) {
         removeGroupView()
         

+ 156 - 0
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationViewController.xib

@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopOperationViewController" customModule="PDF_Reader_Pro" customModuleProvider="target">
+            <connections>
+                <outlet property="addButton" destination="uoO-xg-rN6" id="IG6-AH-FKb"/>
+                <outlet property="cancelButton" destination="PSO-md-vEv" id="pbQ-Xs-Qy8"/>
+                <outlet property="cancelWidthConstraint" destination="vB0-xm-HGp" id="LT6-9r-o6j"/>
+                <outlet property="closeButton" destination="lDV-Bs-MtK" id="fTp-bs-Bso"/>
+                <outlet property="contentBox" destination="fh1-oo-Wo2" id="eLl-tz-zrY"/>
+                <outlet property="cropView" destination="4xH-NZ-qA6" id="o8w-Hc-Zv4"/>
+                <outlet property="extractSelect" destination="37l-xs-V35" id="MZW-0s-Jcj"/>
+                <outlet property="ocrButton" destination="m1B-Rp-ka4" id="Nkr-Lm-ubO"/>
+                <outlet property="ocrView" destination="bsJ-bk-g5O" id="r63-03-TK7"/>
+                <outlet property="ocrWidthConstraint" destination="KYw-8w-y7v" id="GNu-Kf-efb"/>
+                <outlet property="operationBox" destination="JAs-mR-rKh" id="Xqo-CZ-anu"/>
+                <outlet property="operationWidthConstraint" destination="Zhh-49-LUI" id="acS-aK-t2L"/>
+                <outlet property="printButton" destination="J1u-DH-ceq" id="gnx-In-DxV"/>
+                <outlet property="resetButton" destination="6Id-gj-Wwt" id="Jx4-el-idH"/>
+                <outlet property="view" destination="n19-gJ-bxx" id="3US-eB-5mx"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <view misplaced="YES" id="n19-gJ-bxx">
+            <rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
+            <autoresizingMask key="autoresizingMask"/>
+            <subviews>
+                <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="fh1-oo-Wo2">
+                    <rect key="frame" x="0.0" y="0.0" width="468" height="40"/>
+                    <view key="contentView" id="Nby-uc-knu">
+                        <rect key="frame" x="0.0" y="0.0" width="468" height="40"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="JAs-mR-rKh">
+                                <rect key="frame" x="8" y="3" width="452" height="34"/>
+                                <view key="contentView" id="tyf-za-d2u">
+                                    <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                </view>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="34" id="Rj6-uk-Wyf"/>
+                                    <constraint firstAttribute="width" constant="452" id="Zhh-49-LUI"/>
+                                </constraints>
+                            </box>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="JAs-mR-rKh" firstAttribute="leading" secondItem="Nby-uc-knu" secondAttribute="leading" constant="8" id="FFk-DH-a2G"/>
+                            <constraint firstAttribute="bottom" secondItem="JAs-mR-rKh" secondAttribute="bottom" constant="3" id="HN0-7P-pEU"/>
+                            <constraint firstItem="JAs-mR-rKh" firstAttribute="top" secondItem="Nby-uc-knu" secondAttribute="top" constant="3" id="QoA-nS-mZz"/>
+                            <constraint firstAttribute="trailing" secondItem="JAs-mR-rKh" secondAttribute="trailing" constant="8" id="paj-6t-De5"/>
+                        </constraints>
+                    </view>
+                </box>
+            </subviews>
+            <constraints>
+                <constraint firstItem="fh1-oo-Wo2" firstAttribute="leading" secondItem="n19-gJ-bxx" secondAttribute="leading" id="LUF-us-hB8"/>
+                <constraint firstAttribute="bottom" secondItem="fh1-oo-Wo2" secondAttribute="bottom" id="dLs-sJ-g31"/>
+                <constraint firstAttribute="trailing" secondItem="fh1-oo-Wo2" secondAttribute="trailing" id="iIL-Y4-K6C"/>
+                <constraint firstItem="fh1-oo-Wo2" firstAttribute="top" secondItem="n19-gJ-bxx" secondAttribute="top" id="j0d-Zm-bqJ"/>
+            </constraints>
+            <point key="canvasLocation" x="113" y="-232"/>
+        </view>
+        <customView id="bsJ-bk-g5O">
+            <rect key="frame" x="0.0" y="0.0" width="160" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="PSO-md-vEv" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="80" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="80" id="vB0-xm-HGp"/>
+                        <constraint firstAttribute="height" constant="34" id="w2x-qV-wZx"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="m1B-Rp-ka4" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="80" y="0.0" width="80" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="80" id="KYw-8w-y7v"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstAttribute="bottom" secondItem="m1B-Rp-ka4" secondAttribute="bottom" id="6YL-Ct-veH"/>
+                <constraint firstAttribute="bottom" secondItem="PSO-md-vEv" secondAttribute="bottom" id="AtC-kG-sjq"/>
+                <constraint firstItem="m1B-Rp-ka4" firstAttribute="top" secondItem="bsJ-bk-g5O" secondAttribute="top" id="DmN-oy-1uX"/>
+                <constraint firstItem="PSO-md-vEv" firstAttribute="top" secondItem="bsJ-bk-g5O" secondAttribute="top" id="ZPR-VK-TVD"/>
+                <constraint firstItem="m1B-Rp-ka4" firstAttribute="top" secondItem="bsJ-bk-g5O" secondAttribute="top" id="aCa-Gl-hvP"/>
+                <constraint firstItem="m1B-Rp-ka4" firstAttribute="leading" secondItem="PSO-md-vEv" secondAttribute="trailing" id="d96-tu-G6f"/>
+                <constraint firstAttribute="trailing" secondItem="m1B-Rp-ka4" secondAttribute="trailing" id="rWp-gY-UDa"/>
+                <constraint firstItem="PSO-md-vEv" firstAttribute="leading" secondItem="bsJ-bk-g5O" secondAttribute="leading" id="yqa-Ed-vak"/>
+            </constraints>
+            <point key="canvasLocation" x="73" y="528"/>
+        </customView>
+        <customView id="4xH-NZ-qA6">
+            <rect key="frame" x="0.0" y="0.0" width="176" height="34"/>
+            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
+            <subviews>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="uoO-xg-rN6" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="UOj-Ce-wRc"/>
+                        <constraint firstAttribute="height" constant="34" id="yB1-pI-c8B"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="37l-xs-V35" customClass="ComponentCSelector" customModule="KMComponentLibrary">
+                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="qHl-mk-HYs"/>
+                        <constraint firstAttribute="width" constant="32" id="r69-GR-KR9"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="6Id-gj-Wwt" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="72" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="height" constant="34" id="O5p-cE-x0s"/>
+                        <constraint firstAttribute="width" constant="32" id="veS-15-EIO"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="J1u-DH-ceq" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="108" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="0MJ-hR-x0v"/>
+                        <constraint firstAttribute="height" constant="34" id="27e-KR-BJJ"/>
+                    </constraints>
+                </customView>
+                <customView translatesAutoresizingMaskIntoConstraints="NO" id="lDV-Bs-MtK" customClass="ComponentButton" customModule="KMComponentLibrary">
+                    <rect key="frame" x="144" y="0.0" width="32" height="34"/>
+                    <constraints>
+                        <constraint firstAttribute="width" constant="32" id="bi7-Ae-TPH"/>
+                        <constraint firstAttribute="height" constant="34" id="u0N-TX-1Sj"/>
+                    </constraints>
+                </customView>
+            </subviews>
+            <constraints>
+                <constraint firstItem="J1u-DH-ceq" firstAttribute="leading" secondItem="6Id-gj-Wwt" secondAttribute="trailing" constant="4" id="2bH-86-GqF"/>
+                <constraint firstItem="J1u-DH-ceq" firstAttribute="centerY" secondItem="4xH-NZ-qA6" secondAttribute="centerY" id="4ap-sU-c3g"/>
+                <constraint firstItem="6Id-gj-Wwt" firstAttribute="centerY" secondItem="4xH-NZ-qA6" secondAttribute="centerY" id="HtZ-gL-fBm"/>
+                <constraint firstItem="37l-xs-V35" firstAttribute="leading" secondItem="uoO-xg-rN6" secondAttribute="trailing" constant="4" id="SOl-PO-e8e"/>
+                <constraint firstItem="uoO-xg-rN6" firstAttribute="leading" secondItem="4xH-NZ-qA6" secondAttribute="leading" id="ZHl-5E-O5N"/>
+                <constraint firstItem="6Id-gj-Wwt" firstAttribute="leading" secondItem="37l-xs-V35" secondAttribute="trailing" constant="4" id="h0q-Nj-MmU"/>
+                <constraint firstItem="uoO-xg-rN6" firstAttribute="top" secondItem="4xH-NZ-qA6" secondAttribute="top" id="la2-rw-TqO"/>
+                <constraint firstItem="lDV-Bs-MtK" firstAttribute="centerY" secondItem="4xH-NZ-qA6" secondAttribute="centerY" id="mR4-IA-rtu"/>
+                <constraint firstAttribute="trailing" secondItem="lDV-Bs-MtK" secondAttribute="trailing" id="omT-m3-FSV"/>
+                <constraint firstItem="37l-xs-V35" firstAttribute="centerY" secondItem="4xH-NZ-qA6" secondAttribute="centerY" id="tJP-V8-f7G"/>
+                <constraint firstItem="lDV-Bs-MtK" firstAttribute="leading" secondItem="J1u-DH-ceq" secondAttribute="trailing" constant="4" id="wzD-Ka-upl"/>
+                <constraint firstAttribute="bottom" secondItem="uoO-xg-rN6" secondAttribute="bottom" id="y2D-g0-Ccs"/>
+            </constraints>
+            <point key="canvasLocation" x="58" y="349"/>
+        </customView>
+    </objects>
+</document>

+ 0 - 165
PDF Office/PDF Master/KMClass/PDFListView/WindowController/KMNPopOperationWindowController.xib

@@ -1,165 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="21507" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="KMNPopOperationWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <connections>
-                <outlet property="addButton" destination="PBX-i1-e6g" id="91X-bM-ugQ"/>
-                <outlet property="cancelButton" destination="MMF-Xu-ewX" id="jyK-hF-rmo"/>
-                <outlet property="cancelWidthConstraint" destination="htL-pp-zyB" id="5lb-yf-pmF"/>
-                <outlet property="closeButton" destination="Aub-bK-nQW" id="NWJ-J5-OpN"/>
-                <outlet property="contentBox" destination="yhB-Bi-Ro3" id="Mec-Dl-aBN"/>
-                <outlet property="cropView" destination="X21-U7-7U1" id="dpq-kI-dG0"/>
-                <outlet property="extractSelect" destination="zWf-eJ-tuk" id="64Q-dJ-YiA"/>
-                <outlet property="ocrButton" destination="Vkh-ex-bd4" id="8q3-9S-md1"/>
-                <outlet property="ocrView" destination="ra5-zP-zkh" id="4wG-Dg-WeB"/>
-                <outlet property="ocrWidthConstraint" destination="aDV-jG-7wI" id="sAr-QM-WSm"/>
-                <outlet property="operationBox" destination="5OK-yK-3wT" id="BaR-68-Dqe"/>
-                <outlet property="operationWidthConstraint" destination="eVG-8t-niH" id="3Bj-LQ-leU"/>
-                <outlet property="printButton" destination="UJL-SM-aZ0" id="lRe-Pj-0ou"/>
-                <outlet property="resetButton" destination="POE-RM-2eD" id="oGb-pg-JYK"/>
-                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
-            </connections>
-        </customObject>
-        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
-        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
-        <window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" titlebarAppearsTransparent="YES" id="F0z-JX-Cv5" customClass="KMNPopOperationWindow" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <windowStyleMask key="styleMask" titled="YES" fullSizeContentView="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="196" y="240" width="480" height="270"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1512" height="944"/>
-            <view key="contentView" misplaced="YES" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="468" height="40"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="yhB-Bi-Ro3">
-                        <rect key="frame" x="0.0" y="0.0" width="468" height="40"/>
-                        <view key="contentView" id="DQm-Zl-I4t">
-                            <rect key="frame" x="0.0" y="0.0" width="468" height="40"/>
-                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                            <subviews>
-                                <box boxType="custom" borderWidth="0.0" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="5OK-yK-3wT">
-                                    <rect key="frame" x="8" y="3" width="452" height="34"/>
-                                    <view key="contentView" id="EbK-s7-nRj">
-                                        <rect key="frame" x="0.0" y="0.0" width="452" height="34"/>
-                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                    </view>
-                                    <constraints>
-                                        <constraint firstAttribute="width" constant="452" id="eVG-8t-niH"/>
-                                        <constraint firstAttribute="height" constant="34" id="uno-eF-wiz"/>
-                                    </constraints>
-                                </box>
-                            </subviews>
-                            <constraints>
-                                <constraint firstAttribute="bottom" secondItem="5OK-yK-3wT" secondAttribute="bottom" constant="3" id="1h9-C6-Mcj"/>
-                                <constraint firstItem="5OK-yK-3wT" firstAttribute="top" secondItem="DQm-Zl-I4t" secondAttribute="top" constant="3" id="mCM-IY-1NW"/>
-                                <constraint firstItem="5OK-yK-3wT" firstAttribute="leading" secondItem="DQm-Zl-I4t" secondAttribute="leading" constant="8" id="pXS-WS-T18"/>
-                                <constraint firstAttribute="trailing" secondItem="5OK-yK-3wT" secondAttribute="trailing" constant="8" id="rRY-Xe-OH7"/>
-                            </constraints>
-                        </view>
-                    </box>
-                </subviews>
-                <constraints>
-                    <constraint firstAttribute="trailing" secondItem="yhB-Bi-Ro3" secondAttribute="trailing" id="XAH-WR-5gZ"/>
-                    <constraint firstItem="yhB-Bi-Ro3" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" id="arh-I2-joD"/>
-                    <constraint firstItem="yhB-Bi-Ro3" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" id="hSt-6g-nOX"/>
-                    <constraint firstAttribute="bottom" secondItem="yhB-Bi-Ro3" secondAttribute="bottom" id="wbq-jo-KQu"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="31" y="-102"/>
-        </window>
-        <customView id="X21-U7-7U1">
-            <rect key="frame" x="0.0" y="0.0" width="176" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="PBX-i1-e6g" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="32" id="IHh-Ly-WbP"/>
-                        <constraint firstAttribute="height" constant="34" id="kOQ-dn-X40"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="zWf-eJ-tuk" customClass="ComponentCSelector" customModule="KMComponentLibrary">
-                    <rect key="frame" x="36" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="F9k-UA-UOt"/>
-                        <constraint firstAttribute="width" constant="32" id="Gpi-Sv-9L0"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="POE-RM-2eD" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="72" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="aHx-l7-WEl"/>
-                        <constraint firstAttribute="width" constant="32" id="nLY-Oh-RBU"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="UJL-SM-aZ0" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="108" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="j8v-tP-JUV"/>
-                        <constraint firstAttribute="width" constant="32" id="sGU-zS-I0o"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Aub-bK-nQW" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="144" y="0.0" width="32" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="bun-56-f21"/>
-                        <constraint firstAttribute="width" constant="32" id="qbJ-oi-Dae"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstItem="POE-RM-2eD" firstAttribute="leading" secondItem="zWf-eJ-tuk" secondAttribute="trailing" constant="4" id="4bQ-Qg-672"/>
-                <constraint firstItem="zWf-eJ-tuk" firstAttribute="leading" secondItem="PBX-i1-e6g" secondAttribute="trailing" constant="4" id="Cc3-9h-HPk"/>
-                <constraint firstAttribute="trailing" secondItem="Aub-bK-nQW" secondAttribute="trailing" id="JH2-X8-Ltg"/>
-                <constraint firstItem="POE-RM-2eD" firstAttribute="centerY" secondItem="X21-U7-7U1" secondAttribute="centerY" id="Tf5-CZ-KL4"/>
-                <constraint firstItem="Aub-bK-nQW" firstAttribute="leading" secondItem="UJL-SM-aZ0" secondAttribute="trailing" constant="4" id="VJL-r0-ae5"/>
-                <constraint firstAttribute="bottom" secondItem="PBX-i1-e6g" secondAttribute="bottom" id="cxI-48-aFa"/>
-                <constraint firstItem="Aub-bK-nQW" firstAttribute="centerY" secondItem="X21-U7-7U1" secondAttribute="centerY" id="g34-IK-erN"/>
-                <constraint firstItem="UJL-SM-aZ0" firstAttribute="leading" secondItem="POE-RM-2eD" secondAttribute="trailing" constant="4" id="jOk-Ct-8ly"/>
-                <constraint firstItem="UJL-SM-aZ0" firstAttribute="centerY" secondItem="X21-U7-7U1" secondAttribute="centerY" id="nO6-KN-1my"/>
-                <constraint firstItem="zWf-eJ-tuk" firstAttribute="centerY" secondItem="X21-U7-7U1" secondAttribute="centerY" id="suK-fX-sYg"/>
-                <constraint firstItem="PBX-i1-e6g" firstAttribute="top" secondItem="X21-U7-7U1" secondAttribute="top" id="xIb-6l-bY5"/>
-                <constraint firstItem="PBX-i1-e6g" firstAttribute="leading" secondItem="X21-U7-7U1" secondAttribute="leading" id="yum-Nd-AbN"/>
-            </constraints>
-            <point key="canvasLocation" x="58" y="349"/>
-        </customView>
-        <customView id="ra5-zP-zkh">
-            <rect key="frame" x="0.0" y="0.0" width="160" height="34"/>
-            <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
-            <subviews>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="MMF-Xu-ewX" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="0.0" y="0.0" width="80" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="height" constant="34" id="YIm-aB-ucy"/>
-                        <constraint firstAttribute="width" constant="80" id="htL-pp-zyB"/>
-                    </constraints>
-                </customView>
-                <customView translatesAutoresizingMaskIntoConstraints="NO" id="Vkh-ex-bd4" customClass="ComponentButton" customModule="KMComponentLibrary">
-                    <rect key="frame" x="80" y="0.0" width="80" height="34"/>
-                    <constraints>
-                        <constraint firstAttribute="width" constant="80" id="aDV-jG-7wI"/>
-                    </constraints>
-                </customView>
-            </subviews>
-            <constraints>
-                <constraint firstAttribute="bottom" secondItem="MMF-Xu-ewX" secondAttribute="bottom" id="3fI-V2-55f"/>
-                <constraint firstItem="Vkh-ex-bd4" firstAttribute="leading" secondItem="MMF-Xu-ewX" secondAttribute="trailing" id="BeC-k4-rws"/>
-                <constraint firstItem="MMF-Xu-ewX" firstAttribute="top" secondItem="ra5-zP-zkh" secondAttribute="top" id="Krz-V0-uy6"/>
-                <constraint firstItem="Vkh-ex-bd4" firstAttribute="top" secondItem="ra5-zP-zkh" secondAttribute="top" id="PKf-Yt-au6"/>
-                <constraint firstItem="MMF-Xu-ewX" firstAttribute="leading" secondItem="ra5-zP-zkh" secondAttribute="leading" id="Q8J-hV-0zj"/>
-                <constraint firstItem="Vkh-ex-bd4" firstAttribute="top" secondItem="ra5-zP-zkh" secondAttribute="top" id="Zn6-8f-gNc"/>
-                <constraint firstAttribute="trailing" secondItem="Vkh-ex-bd4" secondAttribute="trailing" id="fEL-VV-CfD"/>
-                <constraint firstAttribute="bottom" secondItem="Vkh-ex-bd4" secondAttribute="bottom" id="tDP-6k-Jsk"/>
-            </constraints>
-            <point key="canvasLocation" x="73" y="528"/>
-        </customView>
-    </objects>
-</document>

+ 72 - 48
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -4268,12 +4268,6 @@
 		BBFE6E782930E53000142C01 /* KMMergePopoverViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */; };
 		BBFE6E792930E53000142C01 /* KMMergePopoverViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */; };
 		BBFE6E7A2930E53000142C01 /* KMMergePopoverViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */; };
-		F30619C02CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619BE2CFDF5E60047E288 /* KMNPopContentEditWindowController.swift */; };
-		F30619C12CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619BE2CFDF5E60047E288 /* KMNPopContentEditWindowController.swift */; };
-		F30619C22CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619BE2CFDF5E60047E288 /* KMNPopContentEditWindowController.swift */; };
-		F30619C32CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F30619BF2CFDF5E60047E288 /* KMNPopContentEditWindowController.xib */; };
-		F30619C42CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F30619BF2CFDF5E60047E288 /* KMNPopContentEditWindowController.xib */; };
-		F30619C52CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F30619BF2CFDF5E60047E288 /* KMNPopContentEditWindowController.xib */; };
 		F30619C82CFDF68D0047E288 /* KMNEditContentPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619C72CFDF68D0047E288 /* KMNEditContentPopMode.swift */; };
 		F30619C92CFDF68D0047E288 /* KMNEditContentPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619C72CFDF68D0047E288 /* KMNEditContentPopMode.swift */; };
 		F30619CA2CFDF68D0047E288 /* KMNEditContentPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F30619C72CFDF68D0047E288 /* KMNEditContentPopMode.swift */; };
@@ -4356,6 +4350,33 @@
 		F328C0BD2CA177DD00BFDD23 /* PresentImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F328C0BC2CA177DD00BFDD23 /* PresentImage.xcassets */; };
 		F328C0BE2CA177DD00BFDD23 /* PresentImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F328C0BC2CA177DD00BFDD23 /* PresentImage.xcassets */; };
 		F328C0BF2CA177DD00BFDD23 /* PresentImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F328C0BC2CA177DD00BFDD23 /* PresentImage.xcassets */; };
+		F32F7B822D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B812D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift */; };
+		F32F7B832D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B812D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift */; };
+		F32F7B842D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B812D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift */; };
+		F32F7B882D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B862D5486E9006C6773 /* KMNPopAnnotationViewController.swift */; };
+		F32F7B892D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B862D5486E9006C6773 /* KMNPopAnnotationViewController.swift */; };
+		F32F7B8A2D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B862D5486E9006C6773 /* KMNPopAnnotationViewController.swift */; };
+		F32F7B8B2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7B872D5486E9006C6773 /* KMNPopAnnotationViewController.xib */; };
+		F32F7B8C2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7B872D5486E9006C6773 /* KMNPopAnnotationViewController.xib */; };
+		F32F7B8D2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7B872D5486E9006C6773 /* KMNPopAnnotationViewController.xib */; };
+		F32F7B9F2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B9E2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift */; };
+		F32F7BA02D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B9E2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift */; };
+		F32F7BA12D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7B9E2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift */; };
+		F32F7BAB2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAA2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift */; };
+		F32F7BAC2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAA2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift */; };
+		F32F7BAD2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAA2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift */; };
+		F32F7BB02D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAE2D54CD05006C6773 /* KMNPopOperationViewController.swift */; };
+		F32F7BB12D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAE2D54CD05006C6773 /* KMNPopOperationViewController.swift */; };
+		F32F7BB22D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BAE2D54CD05006C6773 /* KMNPopOperationViewController.swift */; };
+		F32F7BB32D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BAF2D54CD05006C6773 /* KMNPopOperationViewController.xib */; };
+		F32F7BB42D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BAF2D54CD05006C6773 /* KMNPopOperationViewController.xib */; };
+		F32F7BB52D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BAF2D54CD05006C6773 /* KMNPopOperationViewController.xib */; };
+		F32F7BB82D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BB62D54CD38006C6773 /* KMNPopContentEditViewController.swift */; };
+		F32F7BB92D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BB62D54CD38006C6773 /* KMNPopContentEditViewController.swift */; };
+		F32F7BBA2D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F32F7BB62D54CD38006C6773 /* KMNPopContentEditViewController.swift */; };
+		F32F7BBB2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BB72D54CD38006C6773 /* KMNPopContentEditViewController.xib */; };
+		F32F7BBC2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BB72D54CD38006C6773 /* KMNPopContentEditViewController.xib */; };
+		F32F7BBD2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F32F7BB72D54CD38006C6773 /* KMNPopContentEditViewController.xib */; };
 		F337CC1C2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F337CC1A2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift */; };
 		F337CC1D2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F337CC1A2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift */; };
 		F337CC1E2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F337CC1A2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift */; };
@@ -4380,12 +4401,6 @@
 		F337CC482CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F337CC442CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib */; };
 		F337CC492CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F337CC442CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib */; };
 		F337CC4A2CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F337CC442CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib */; };
-		F33B30472D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33B30452D0B22410073DD1B /* KMNPopOperationWindowController.swift */; };
-		F33B30482D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33B30452D0B22410073DD1B /* KMNPopOperationWindowController.swift */; };
-		F33B30492D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33B30452D0B22410073DD1B /* KMNPopOperationWindowController.swift */; };
-		F33B304A2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F33B30462D0B22410073DD1B /* KMNPopOperationWindowController.xib */; };
-		F33B304B2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F33B30462D0B22410073DD1B /* KMNPopOperationWindowController.xib */; };
-		F33B304C2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F33B30462D0B22410073DD1B /* KMNPopOperationWindowController.xib */; };
 		F34BF926295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
 		F34BF927295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
 		F34BF928295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
@@ -4416,12 +4431,6 @@
 		F367D4DA2CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4D92CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift */; };
 		F367D4DB2CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4D92CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift */; };
 		F367D4DC2CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4D92CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift */; };
-		F367D4DF2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4DD2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift */; };
-		F367D4E02CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4DD2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift */; };
-		F367D4E12CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F367D4DD2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift */; };
-		F367D4E22CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F367D4DE2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib */; };
-		F367D4E32CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F367D4DE2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib */; };
-		F367D4E42CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F367D4DE2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib */; };
 		F367D4E62CFD860400B0BB4E /* KMNListviewPopImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F367D4E52CFD860400B0BB4E /* KMNListviewPopImage.xcassets */; };
 		F367D4E72CFD860400B0BB4E /* KMNListviewPopImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F367D4E52CFD860400B0BB4E /* KMNListviewPopImage.xcassets */; };
 		F367D4E82CFD860400B0BB4E /* KMNListviewPopImage.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F367D4E52CFD860400B0BB4E /* KMNListviewPopImage.xcassets */; };
@@ -6345,8 +6354,6 @@
 		BBFE6E572930724B00142C01 /* KMMergePageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergePageModel.swift; sourceTree = "<group>"; };
 		BBFE6E732930E53000142C01 /* KMMergePopoverViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMergePopoverViewController.swift; sourceTree = "<group>"; };
 		BBFE6E742930E53000142C01 /* KMMergePopoverViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMMergePopoverViewController.xib; sourceTree = "<group>"; };
-		F30619BE2CFDF5E60047E288 /* KMNPopContentEditWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopContentEditWindowController.swift; sourceTree = "<group>"; };
-		F30619BF2CFDF5E60047E288 /* KMNPopContentEditWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopContentEditWindowController.xib; sourceTree = "<group>"; };
 		F30619C72CFDF68D0047E288 /* KMNEditContentPopMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNEditContentPopMode.swift; sourceTree = "<group>"; };
 		F30B227A2CB7DAF10041002E /* KMNQuickToolWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNQuickToolWindowController.swift; sourceTree = "<group>"; };
 		F30B227B2CB7DAF10041002E /* KMNQuickToolWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNQuickToolWindowController.xib; sourceTree = "<group>"; };
@@ -6375,6 +6382,15 @@
 		F328C0B42CA16F0500BFDD23 /* KMPresentationTopViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPresentationTopViewController.swift; sourceTree = "<group>"; };
 		F328C0B52CA16F0500BFDD23 /* KMPresentationTopViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPresentationTopViewController.xib; sourceTree = "<group>"; };
 		F328C0BC2CA177DD00BFDD23 /* PresentImage.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = PresentImage.xcassets; sourceTree = "<group>"; };
+		F32F7B812D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNAnnotationPopToolbarWindow.swift; sourceTree = "<group>"; };
+		F32F7B862D5486E9006C6773 /* KMNPopAnnotationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopAnnotationViewController.swift; sourceTree = "<group>"; };
+		F32F7B872D5486E9006C6773 /* KMNPopAnnotationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopAnnotationViewController.xib; sourceTree = "<group>"; };
+		F32F7B9E2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNContentEditPopToolbarWindow.swift; sourceTree = "<group>"; };
+		F32F7BAA2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNOperationPopToolbarWindow.swift; sourceTree = "<group>"; };
+		F32F7BAE2D54CD05006C6773 /* KMNPopOperationViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopOperationViewController.swift; sourceTree = "<group>"; };
+		F32F7BAF2D54CD05006C6773 /* KMNPopOperationViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopOperationViewController.xib; sourceTree = "<group>"; };
+		F32F7BB62D54CD38006C6773 /* KMNPopContentEditViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopContentEditViewController.swift; sourceTree = "<group>"; };
+		F32F7BB72D54CD38006C6773 /* KMNPopContentEditViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopContentEditViewController.xib; sourceTree = "<group>"; };
 		F337CC1A2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNThumbnailBaseViewController.swift; sourceTree = "<group>"; };
 		F337CC1B2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNThumbnailBaseViewController.xib; sourceTree = "<group>"; };
 		F337CC2E2CC64BD600D46AF4 /* KMNPageEditViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPageEditViewController.swift; sourceTree = "<group>"; };
@@ -6383,8 +6399,6 @@
 		F337CC3E2CC78B9400D46AF4 /* KMNThumbnailImage.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KMNThumbnailImage.xcassets; sourceTree = "<group>"; };
 		F337CC432CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPDFInsertPDFWindowController.swift; sourceTree = "<group>"; };
 		F337CC442CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPDFInsertPDFWindowController.xib; sourceTree = "<group>"; };
-		F33B30452D0B22410073DD1B /* KMNPopOperationWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopOperationWindowController.swift; sourceTree = "<group>"; };
-		F33B30462D0B22410073DD1B /* KMNPopOperationWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopOperationWindowController.xib; sourceTree = "<group>"; };
 		F34BF924295303E8002C25A2 /* NSCursor+PDFListView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSCursor+PDFListView.h"; sourceTree = "<group>"; };
 		F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSCursor+PDFListView.m"; sourceTree = "<group>"; };
 		F34BF93329530708002C25A2 /* NSImage+PDFListView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSImage+PDFListView.h"; sourceTree = "<group>"; };
@@ -6401,8 +6415,6 @@
 		F35BC6C72CA3AD710022CDE9 /* Texture.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Texture.bundle; path = KMDrawViewSDK_Mac.framework/Versions/A/Resources/Texture.bundle; sourceTree = "<group>"; };
 		F35BC6C82CA3AD710022CDE9 /* Shaders.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = Shaders.bundle; path = KMDrawViewSDK_Mac.framework/Versions/A/Resources/Shaders.bundle; sourceTree = "<group>"; };
 		F367D4D92CFC2F5B00B0BB4E /* KMNAnnotationPopMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNAnnotationPopMode.swift; sourceTree = "<group>"; };
-		F367D4DD2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPopAnnotationWindowController.swift; sourceTree = "<group>"; };
-		F367D4DE2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPopAnnotationWindowController.xib; sourceTree = "<group>"; };
 		F367D4E52CFD860400B0BB4E /* KMNListviewPopImage.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = KMNListviewPopImage.xcassets; sourceTree = "<group>"; };
 		F36AD77529642FE80015AD53 /* CPDFListView+UndoManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CPDFListView+UndoManager.h"; sourceTree = "<group>"; };
 		F36AD77629642FE80015AD53 /* CPDFListView+UndoManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "CPDFListView+UndoManager.m"; sourceTree = "<group>"; };
@@ -12396,12 +12408,15 @@
 		F367D4352CF966EC00B0BB4E /* WindowController */ = {
 			isa = PBXGroup;
 			children = (
-				F367D4DD2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift */,
-				F367D4DE2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib */,
-				F30619BE2CFDF5E60047E288 /* KMNPopContentEditWindowController.swift */,
-				F30619BF2CFDF5E60047E288 /* KMNPopContentEditWindowController.xib */,
-				F33B30452D0B22410073DD1B /* KMNPopOperationWindowController.swift */,
-				F33B30462D0B22410073DD1B /* KMNPopOperationWindowController.xib */,
+				F32F7B9E2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift */,
+				F32F7BB62D54CD38006C6773 /* KMNPopContentEditViewController.swift */,
+				F32F7BB72D54CD38006C6773 /* KMNPopContentEditViewController.xib */,
+				F32F7BAA2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift */,
+				F32F7BAE2D54CD05006C6773 /* KMNPopOperationViewController.swift */,
+				F32F7BAF2D54CD05006C6773 /* KMNPopOperationViewController.xib */,
+				F32F7B812D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift */,
+				F32F7B862D5486E9006C6773 /* KMNPopAnnotationViewController.swift */,
+				F32F7B872D5486E9006C6773 /* KMNPopAnnotationViewController.xib */,
 			);
 			path = WindowController;
 			sourceTree = "<group>";
@@ -12929,6 +12944,7 @@
 				AD1CA3FA2A05FCB60070541F /* KMAnnotationScreenViewController.xib in Resources */,
 				BB35732D2AF4F07B004CDA92 /* BatchImage.xcassets in Resources */,
 				BB4DFD662CFDAA3100026C8B /* KMStampController.xib in Resources */,
+				F32F7BBB2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */,
 				9FDD0F67294AB645000C4DAD /* KMMainViewController.xib in Resources */,
 				ADB2D6E9294740F30029D2B3 /* KMPrintPaperSetWindowController.xib in Resources */,
 				BBA2109029ACBFDB00E6B346 /* nosign.pdf in Resources */,
@@ -12943,6 +12959,7 @@
 				9F1FE4DE29406E4700E952CA /* .gclient in Resources */,
 				BB6EA2942B70AF48000D4490 /* KMConvertCompareViewController.xib in Resources */,
 				AD8B5A142D2B778D00150EA6 /* KMBatchProcessingView.xib in Resources */,
+				F32F7B8B2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */,
 				BBC5ABE22D01C950008BA0CB /* KMSignatureController.xib in Resources */,
 				BB955EC82CD8ED0F0042FDE1 /* KMNWatermarkTemplateItem.xib in Resources */,
 				BBE788DB2CBD2464008086E2 /* ControllerVC.xib in Resources */,
@@ -13071,7 +13088,6 @@
 				AD1CA4342A0640FC0070541F /* KMAnnotationScreenHeadView.xib in Resources */,
 				BBFA1CDE2B60DC0C0053AD4A /* KMScreenShotMaskViewController.xib in Resources */,
 				ADEC7A81299397F8009A8256 /* SF-Pro-Text-Regular.otf in Resources */,
-				F30619C32CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */,
 				BB254D5A2B2A985A00C37B3B /* KMTTSWindowController.xib in Resources */,
 				BBE788992CBD2463008086E2 /* CheckBoxVC.xib in Resources */,
 				AD1CA4242A061D190070541F /* KMAnnotationScreenAuthorViewItem.xib in Resources */,
@@ -13131,7 +13147,6 @@
 				BB8810882B4F7C2200AFA63E /* KMVerificationAlertViewController.xib in Resources */,
 				AD8B59E42D2B778D00150EA6 /* KMBatchProcessingStateTableCell.xib in Resources */,
 				AD8B594F2D2B777700150EA6 /* KMBatchSettingView.xib in Resources */,
-				F33B304A2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				AD01D7AA2D377D2600D5DF2D /* KMBatchImageToPDFView.xib in Resources */,
 				BBA2109429ACC10F00E6B346 /* signlist_add.pdf in Resources */,
 				BB1969D12B2833FF00922736 /* KMProgressWindowController.xib in Resources */,
@@ -13213,7 +13228,6 @@
 				BB955EBF2CD8E4600042FDE1 /* KMNWatermarkTemplateController.xib in Resources */,
 				BBD9223D2B50D6D600DB9585 /* rate_pic_star.pdf in Resources */,
 				AD07BCCD2D02CBB20075054B /* KMCompressModesTableCellView.xib in Resources */,
-				F367D4E22CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */,
 				BBDF18182CD4853C00ACDB15 /* KMNWatermarkPropertyController.xib in Resources */,
 				BB1B0B042B4FC6E900889528 /* KMCustomColorGuideView.xib in Resources */,
 				ADE86A8D2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
@@ -13398,6 +13412,7 @@
 				BBFA1CE62B60DDC50053AD4A /* KMScreenShotEditViewController.xib in Resources */,
 				65202DFC2CE4827900A204B5 /* KMNBotaHeaderSearchView.xib in Resources */,
 				BB328B6D2B565BEC00B382C6 /* iVersion.bundle in Resources */,
+				F32F7BB32D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */,
 				ADFCEB612B4FBFC50001EBAF /* ad_cancel_button00@4x.png in Resources */,
 				AD8B59DE2D2B778D00150EA6 /* KMBatchProcessingTableView.xib in Resources */,
 				651675BE2CE3312000019A20 /* KMBOTAOutlineCellView.xib in Resources */,
@@ -13516,7 +13531,6 @@
 				ADDF83992B391A5D00A81A4E /* PDFCertExportAccessoryView.xib in Resources */,
 				BBD922342B50D61200DB9585 /* KMRateWindowController.xib in Resources */,
 				BBE7888B2CBD2463008086E2 /* SidebarDemoVC.xib in Resources */,
-				F33B304B2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				BB19A7372CB79D77008204DC /* KMHomeRecommondView.xib in Resources */,
 				BB1B0B082B4FC6E900889528 /* KMGuideCoverView.xib in Resources */,
 				BB6347B12AF1F0BB00F5438E /* KMBatchOperateConvertViewController.xib in Resources */,
@@ -13526,7 +13540,6 @@
 				F337CC492CC7EEE100D46AF4 /* KMNPDFInsertPDFWindowController.xib in Resources */,
 				BBA844312D53075100C22867 /* AINewConfigController.xib in Resources */,
 				65F9F48F2CFCABE700F187A8 /* KMNBotaSearchTopView.xib in Resources */,
-				F30619C42CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */,
 				ADFA8F0E2B579957002595A4 /* KMSearchFindView.xib in Resources */,
 				BBFD22632CBE16B200DA4ABD /* KMHistoryEmptyView.xib in Resources */,
 				AD7D5CE92B96B3B2006562CD /* KMBookmarkOutlineSeparatorCellView.xib in Resources */,
@@ -13670,6 +13683,7 @@
 				AD3AAD282B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
 				BBC4F9EF2AEB58470098A1A8 /* KMAlertWindowController.xib in Resources */,
 				ADE86A852B0222B300414DFA /* KMSecurityView.xib in Resources */,
+				F32F7B8C2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */,
 				BB38D2D52D047A920039F106 /* KMMeasureController.xib in Resources */,
 				BB8810892B4F7C2200AFA63E /* KMVerificationAlertViewController.xib in Resources */,
 				BB11B1F62D23BC370071D599 /* KMPasswordInputWindowController.xib in Resources */,
@@ -13769,7 +13783,6 @@
 				BB6B49B42D02D05C003ECD26 /* KMPDFSignatureInputView.xib in Resources */,
 				9F8539FD2947137500DF644E /* throbber_waiting.png in Resources */,
 				9F8539E42947126000DF644E /* KMChromiumToolbar.xib in Resources */,
-				F367D4E32CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */,
 				AD8B594D2D2B777700150EA6 /* KMBatchSecurityView.xib in Resources */,
 				BB9AEB312D0FC9A0004BF8D2 /* FormsCheckBoxController.xib in Resources */,
 				BB1B0B0E2B4FC6E900889528 /* KMGuideInfoWindowController.xib in Resources */,
@@ -13793,6 +13806,7 @@
 				ADDF83512B391A5C00A81A4E /* CDSignatureCertificateCustomViewController.xib in Resources */,
 				BB1B0AEA2B4FC6E900889528 /* KMFunctionGuideMultiController.xib in Resources */,
 				BBB789C12BE8BF2400F7E09C /* AIChatView.xib in Resources */,
+				F32F7BBC2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */,
 				9FF371F52C69E1B2005F9CC5 /* Localizable.strings in Resources */,
 				AD2BF2332B5620150029F03F /* SF-Pro-Text-Semibold.otf in Resources */,
 				AD7D5CF12B96B9E1006562CD /* KMBookmarkOutlineRowView.xib in Resources */,
@@ -13858,6 +13872,7 @@
 				657851722CFEE38E0023D640 /* KMSearchReplaceWindowController.xib in Resources */,
 				ADE86A8E2B02269400414DFA /* KMRemovePasswordWindowController.xib in Resources */,
 				AD7D5CC72B9566E9006562CD /* KMBookmarkOutlineView.xib in Resources */,
+				F32F7BB42D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */,
 				F337CC402CC78B9400D46AF4 /* KMNThumbnailImage.xcassets in Resources */,
 				ADAFDA522AEB43BF00F084BC /* KMAdvertisement.xcassets in Resources */,
 				AD8B597D2D2B777700150EA6 /* KMBatchConverPDFWordView.xib in Resources */,
@@ -13978,6 +13993,7 @@
 				BB9AEB2A2D0FC988004BF8D2 /* FormsTextFieldController.xib in Resources */,
 				9F00CCBC2A2F1E0F00AC462E /* dsa_pub.pem in Resources */,
 				BBB789C52BE8BF2400F7E09C /* AIRedoConfirmView.xib in Resources */,
+				F32F7BBD2D54CD38006C6773 /* KMNPopContentEditViewController.xib in Resources */,
 				651961AD2D07DD4A007A4324 /* KMBookMarkViewController.xib in Resources */,
 				AD199DED2B230B1300D56FEE /* KMPrintMultipageView.xib in Resources */,
 				9F0ACC092C883464009574D5 /* KMEmbeddedPaymentPopWC.xib in Resources */,
@@ -13992,6 +14008,7 @@
 				BB8AA5412CC66E490084F183 /* PDFImages.xcassets in Resources */,
 				AD8B5A162D2B778D00150EA6 /* KMBatchProcessingView.xib in Resources */,
 				AD1D480D2AFB18DA007AC1F0 /* KMCompressWindowController.xib in Resources */,
+				F32F7B8D2D5486E9006C6773 /* KMNPopAnnotationViewController.xib in Resources */,
 				BBE788DD2CBD2464008086E2 /* ControllerVC.xib in Resources */,
 				BB2F9AA82AFC8D5A00F9DD93 /* KMProfileInfoWindowController.xib in Resources */,
 				BBE0688F2CDDF116000512BC /* KMBatesController.xib in Resources */,
@@ -14039,7 +14056,6 @@
 				9F1F82E82934D5240092C4B4 /* KMHomeExtractActionViewController.xib in Resources */,
 				ADDF83612B391A5C00A81A4E /* DSignatureCertifyDetailViewController.xib in Resources */,
 				BBA9222A2B4E96450061057A /* KMPurchaseCompareWindowController.xib in Resources */,
-				F33B304C2D0B22410073DD1B /* KMNPopOperationWindowController.xib in Resources */,
 				F3B7DF9F2948565000333201 /* CPDFListHoverAnnotationViewController.xib in Resources */,
 				BB5A9D322CB6520100F64C1F /* KMNHomeViewController.xib in Resources */,
 				AD3AAD292B0B6FB100DE5FE7 /* KMCompareContentView.xib in Resources */,
@@ -14049,7 +14065,6 @@
 				ADDF83912B391A5D00A81A4E /* DSignDetailTypeACellView.xib in Resources */,
 				BB9AEB3A2D0FC9B7004BF8D2 /* FormsRadioController.xib in Resources */,
 				65F9F4902CFCABE700F187A8 /* KMNBotaSearchTopView.xib in Resources */,
-				F30619C52CFDF5E60047E288 /* KMNPopContentEditWindowController.xib in Resources */,
 				BB9599C92B3164B40062D346 /* KMRedactPropertiesWindowController.xib in Resources */,
 				ADB2D6FF294882B70029D2B3 /* KMTextFieldStepperView.xib in Resources */,
 				BBE788BF2CBD2463008086E2 /* PaginationVC.xib in Resources */,
@@ -14299,7 +14314,6 @@
 				BB9AEB322D0FC9A0004BF8D2 /* FormsCheckBoxController.xib in Resources */,
 				ADBC374729CAD2D300D93208 /* SF-Pro-Text-Bold.otf in Resources */,
 				ADD1B6C12942DD3D00C3FFF7 /* KMPrintChooseView.xib in Resources */,
-				F367D4E42CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.xib in Resources */,
 				AD055E2A2B70B3C10035F824 /* KMBookmarkController.xib in Resources */,
 				BB88106C2B4F771D00AFA63E /* KMVerificationInfoViewController.xib in Resources */,
 				9F00CF562A38657400AC462E /* GoogleService-Info.plist in Resources */,
@@ -14447,6 +14461,7 @@
 				AD07BC932D02CBA90075054B /* KMBatchOperateCompressViewController.xib in Resources */,
 				ADB2D6F4294741720029D2B3 /* KMPrintPaperSetView.xib in Resources */,
 				BB031B892C47BB090099F7AD /* KMUserFbTypeItemView.xib in Resources */,
+				F32F7BB52D54CD05006C6773 /* KMNPopOperationViewController.xib in Resources */,
 				AD8B59E02D2B778D00150EA6 /* KMBatchProcessingTableView.xib in Resources */,
 				BBE788E62CBD2464008086E2 /* ButtonDemoVC.xib in Resources */,
 				AD8B59F22D2B778D00150EA6 /* KMBatchProcessingSizeTableCell.xib in Resources */,
@@ -14523,7 +14538,6 @@
 				BB67EE172B54FFEF00573BF0 /* ASIDataCompressor.m in Sources */,
 				BB8F4565295AA3ED0037EA22 /* KMHeaderFooterManager.swift in Sources */,
 				F34BF926295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */,
-				F33B30472D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */,
 				ADE614AC29779C5200F62ED7 /* KMImageTitleButton.swift in Sources */,
 				65B143982CF06B97001B5A69 /* NSView+KMExtension.swift in Sources */,
 				9FF94F0929A62B5000B1EF69 /* KMDesignSelect.swift in Sources */,
@@ -14816,6 +14830,7 @@
 				ADDF83A72B391A5D00A81A4E /* DSignatureApperanceManager.swift in Sources */,
 				656C1E5A2CD0DF1B00295F82 /* KMConvertJsonWindowController.swift in Sources */,
 				9F1FE4B729406E4700E952CA /* CTBrowserFrameView.m in Sources */,
+				F32F7B9F2D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */,
 				BBE788B72CBD2463008086E2 /* PaginationVC.swift in Sources */,
 				BBE068A22CDDF149000512BC /* KMBatesTemplateItem.swift in Sources */,
 				9F1FE4D529406E4700E952CA /* NSPasteboard+Utils.m in Sources */,
@@ -14872,6 +14887,7 @@
 				ADDF832C2B391A5C00A81A4E /* NSEvent+PDFListView.m in Sources */,
 				AD8B59702D2B777700150EA6 /* KMBatchConverPDFImageView.swift in Sources */,
 				656C1E3D2CD0745200295F82 /* KMConvertExcelSettingView.swift in Sources */,
+				F32F7B822D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */,
 				BB4583BF2CC8C53C005737F3 /* KMPDFToolbarConfig.swift in Sources */,
 				BBBBB4992B6F714000C7205E /* NSObject+OCExtensions.m in Sources */,
 				9F0201792A1B5C0300C9B673 /* KMAIServerConfig.swift in Sources */,
@@ -14971,6 +14987,7 @@
 				AD3AAD632B0DA3F600DE5FE7 /* KMCompareTextHeaderView.swift in Sources */,
 				BB3A668C2B06FD0100575343 /* KMBotaEnum.swift in Sources */,
 				9F1FE4C629406E4700E952CA /* CTUtil.m in Sources */,
+				F32F7B882D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */,
 				F325FD252D27987F00832097 /* KMAnnotationModel.swift in Sources */,
 				9FD0D2A72AD4EFB000DA3FF8 /* KMSavePanelAccessoryController.swift in Sources */,
 				BBB789992BE8BF2400F7E09C /* AIInfoInputView.swift in Sources */,
@@ -14986,6 +15003,7 @@
 				65157BA52D02E17C0005F3A8 /* KMNBotaAnnotationHanddler.swift in Sources */,
 				AD07BCD02D02CBB20075054B /* KMCompressFontsPanelTableCellView.swift in Sources */,
 				BB4A948D2B04726A00940F8B /* KMOCTool.m in Sources */,
+				F32F7BB82D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */,
 				BB0B305F2D098AD8003F54D3 /* CPDFEditArea_Extension.swift in Sources */,
 				BB0A551D2A30793F00B6E84B /* KMDesignTextField.swift in Sources */,
 				BB234F072BA3D798008B3754 /* KMAIIconGuideView.swift in Sources */,
@@ -15149,7 +15167,6 @@
 				9FF0D0532B6A3EE40018A732 /* CPDFListView+Form.swift in Sources */,
 				BBCE57182A72723600508EFC /* NSResponder+KMExtension.swift in Sources */,
 				BB2C84882BAE753F00AF6142 /* KMBotaTools.swift in Sources */,
-				F367D4DF2CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */,
 				AD7D5C852B8ECD83006562CD /* KMPDFSyncRecord.swift in Sources */,
 				9F1F82C3292F113A0092C4B4 /* KMHomeDragView.swift in Sources */,
 				657865FF2CE1E7DD00AFE2DB /* KMBookMarkTableRowView.swift in Sources */,
@@ -15269,6 +15286,7 @@
 				6515590E2CCA6E2400C0F0D9 /* KMConvertBaseWindowController.swift in Sources */,
 				AD7D5CA92B906E36006562CD /* CPDFListView+Sync.swift in Sources */,
 				65202DF72CE4803500A204B5 /* KMNBotaHeaderSearchView.swift in Sources */,
+				F32F7BAB2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */,
 				AD07BCC12D02CBB20075054B /* KMCompressDiscardPanelTableCellView.swift in Sources */,
 				F337CC2F2CC64BD600D46AF4 /* KMNPageEditViewController.swift in Sources */,
 				AD3AAD1B2B0B5B4400DE5FE7 /* KMCompareCoveringWindowController.swift in Sources */,
@@ -15370,13 +15388,13 @@
 				ADDEEA6A2AD3CF3A00EF675D /* KMDrawSignatureView.swift in Sources */,
 				BB1A34A8295EA30100B80B3E /* NSBitmapImageRep_SKExtensions.m in Sources */,
 				BB0FE0432B734DD1001E0F88 /* AITypeChooseView.swift in Sources */,
+				F32F7BB02D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */,
 				BBE412C12D12A3410069A661 /* KMRedactToolbarController.swift in Sources */,
 				BBB1A3A629F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */,
 				BB031B662C47BB080099F7AD /* KMUserFbListModel.swift in Sources */,
 				BB3A81AC2AC2A4E4006FC66C /* NSTextView+KMExtension.swift in Sources */,
 				AD8B59612D2B777700150EA6 /* KMBatchConvertPDFViewModel.swift in Sources */,
 				BB65A0802AF8FE7A003A27A0 /* KMBatchOperateRemoveHeaderFooterViewController.swift in Sources */,
-				F30619C02CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */,
 				AD1FE8322BD7C98300AA4A9B /* NSMutableArray+KMOddEvenPartFetch.m in Sources */,
 				ADE86AD62B05A52B00414DFA /* KMCompareFilesConfig.swift in Sources */,
 				9FF371C82C69A9E2005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift in Sources */,
@@ -15762,6 +15780,7 @@
 				AD8B59AA2D2B777700150EA6 /* KMBatchCollectionViewPrensenter.swift in Sources */,
 				9F1FE50629406E4700E952CA /* CTTabStripDragController.m in Sources */,
 				9F1FE4D029406E4700E952CA /* CTTabController.m in Sources */,
+				F32F7BB92D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */,
 				BBF729B42B19630500576AC5 /* KMAddBatesOperationQueue.swift in Sources */,
 				657866062CE1E7DD00AFE2DB /* KMBookCellView.swift in Sources */,
 				655B91B52CCB47420080AE6E /* KMNPreView.swift in Sources */,
@@ -15820,6 +15839,7 @@
 				BBD14F602CDA16080077D52E /* KMWatermarkSaveWindow.swift in Sources */,
 				65B143992CF06B97001B5A69 /* NSView+KMExtension.swift in Sources */,
 				BBD9222C2B50D50A00DB9585 /* iRate.m in Sources */,
+				F32F7BAC2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */,
 				BB0FE03E2B734DD1001E0F88 /* AITipIconView.swift in Sources */,
 				F36AD77829642FE80015AD53 /* CPDFListView+UndoManager.m in Sources */,
 				BB19A7602CB7CFB0008204DC /* KMHomeQuickToolsView.swift in Sources */,
@@ -16009,6 +16029,7 @@
 				AD055EA02B8836AE0035F824 /* SKDocumentController.m in Sources */,
 				9F1FE4EB29406E4700E952CA /* NSBezierPath+MCAdditions.m in Sources */,
 				AD8B59F42D2B778D00150EA6 /* KMBatchProcessingOrderTableCell.swift in Sources */,
+				F32F7B892D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */,
 				BBA922362B4E97540061057A /* KMPurchaseFirstTrialWindowController.swift in Sources */,
 				AD07BC952D02CBA90075054B /* KMBatchOperateCompressViewController.swift in Sources */,
 				BBFE6E762930E53000142C01 /* KMMergePopoverViewController.swift in Sources */,
@@ -16082,7 +16103,6 @@
 				F325FD152D26B90600832097 /* KMSideViewController.swift in Sources */,
 				BBB789C72BE8BF2400F7E09C /* AIRedoConfirmView.swift in Sources */,
 				BBBE209C2B21E5F100509C4E /* KMAlertTool.swift in Sources */,
-				F30619C12CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */,
 				ADDF839F2B391A5D00A81A4E /* CDSignatureDrawViewController.swift in Sources */,
 				BB031B762C47BB090099F7AD /* KMUserListItemCellView.swift in Sources */,
 				ADD1B6E02946BFD500C3FFF7 /* KMPrintChoosePageSizeSizeView.swift in Sources */,
@@ -16093,6 +16113,7 @@
 				BB6B49B02D02D054003ECD26 /* KMPDFSignatureInputView.swift in Sources */,
 				BBB789AC2BE8BF2400F7E09C /* AIChatDefaultTIpItem.swift in Sources */,
 				BB0FE0442B734DD1001E0F88 /* AITypeChooseView.swift in Sources */,
+				F32F7BB12D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */,
 				ADAFDA292AE8DE1B00F084BC /* KMAdvertisementModelTransition.swift in Sources */,
 				65202DF22CE46DA700A204B5 /* KMNColorTools.swift in Sources */,
 				BBD8EE942B8EC86A00EB05FE /* AutoSaveFileItem.m in Sources */,
@@ -16149,6 +16170,7 @@
 				BB853C872AF8BC12009C20C1 /* KMAddPasswordOperationQueue.swift in Sources */,
 				9FCFEC912AD11E5F00EAD2CB /* KMSplitView.swift in Sources */,
 				9F1FE4CD29406E4700E952CA /* CTTabContentsController.m in Sources */,
+				F32F7B832D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */,
 				AD7D5CE52B96B394006562CD /* KMBookmarkOutlineSeparatorCellView.swift in Sources */,
 				ADDF83332B391A5C00A81A4E /* CPDFAnnotation+PDFListView.m in Sources */,
 				BB853C8B2AF8BC7D009C20C1 /* KMBatchAddPasswordOperation.swift in Sources */,
@@ -16305,6 +16327,7 @@
 				ADE3C1AC29A4779E00793B13 /* KMPrintAccessoryController.swift in Sources */,
 				AD07BCB32D02CBB20075054B /* KMCompressSettingModel.swift in Sources */,
 				651559232CCA6E3100C0F0D9 /* KMConvertPPTsWindowController.swift in Sources */,
+				F32F7BA02D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */,
 				AD8B5A1D2D2BDE4800150EA6 /* KMBatchProcessingNumTableCell.swift in Sources */,
 				BB1413692C69E6CA00BB8E35 /* KMURLConfigManager.swift in Sources */,
 				653647CC2CDCA5DE00CDB13E /* KMBatchOperateBaseWindowController.swift in Sources */,
@@ -16397,7 +16420,6 @@
 				AD8B59472D2B777700150EA6 /* KMBatchSecurityViewPresenter.swift in Sources */,
 				BB6719FA2AD2CC05003D44D5 /* CPDFSignatureWidgetAnnotation+PDFListView.swift in Sources */,
 				BB1E7F312B511079002D9785 /* SKInspectPublicTool.swift in Sources */,
-				F33B30482D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */,
 				BB3A668D2B06FD0100575343 /* KMBotaEnum.swift in Sources */,
 				BBE788F42CBD2464008086E2 /* TreeVC.swift in Sources */,
 				ADE3C1EE29A5AFB100793B13 /* KMRequestServerManager.swift in Sources */,
@@ -16486,7 +16508,6 @@
 				9FCFEC712AC40F9B00EAD2CB /* CStampSignatureObject.swift in Sources */,
 				BBD14F572CDA02570077D52E /* KMEditToolbarView.swift in Sources */,
 				9FD0D2A82AD4EFB000DA3FF8 /* KMSavePanelAccessoryController.swift in Sources */,
-				F367D4E02CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */,
 				AD8B5A122D2B778D00150EA6 /* KMBatchProcessingView.swift in Sources */,
 				AD1D484F2AFB8506007AC1F0 /* KMMergeTableViewCell.swift in Sources */,
 				BB3D97172B3023C5007094C8 /* KMCustomButton.swift in Sources */,
@@ -16735,7 +16756,6 @@
 				9FA607DB28F8227500B46586 /* KMBox.swift in Sources */,
 				ADDEEA9C2AD7BB2D00EF675D /* KMAnnotationPropertiesColorManager.swift in Sources */,
 				6515591B2CCA6E3100C0F0D9 /* KMConvertWordWindowController.swift in Sources */,
-				F367D4E12CFD62DB00B0BB4E /* KMNPopAnnotationWindowController.swift in Sources */,
 				BB03D6962B021124008C9976 /* NSSegmentedControl+KMExtension.swift in Sources */,
 				BBE788CE2CBD2463008086E2 /* NavigationDemoVC.swift in Sources */,
 				F325FD2F2D27991A00832097 /* KMNoteReplyCellView.swift in Sources */,
@@ -16760,6 +16780,7 @@
 				BBCE571A2A72723600508EFC /* NSResponder+KMExtension.swift in Sources */,
 				BB6D2DAD2B674D7900624C24 /* CPDFPage+KMExtension.swift in Sources */,
 				BB67EE252B54FFEF00573BF0 /* ASIInputStream.m in Sources */,
+				F32F7BA12D54CC94006C6773 /* KMNContentEditPopToolbarWindow.swift in Sources */,
 				BBC5ABD92D01C411008BA0CB /* KMSignatureListController.swift in Sources */,
 				BB5A9D542CB6521400F64C1F /* SettingsWindowController.swift in Sources */,
 				BBE788982CBD2463008086E2 /* TabbarDemoVC.swift in Sources */,
@@ -16789,6 +16810,7 @@
 				AD1CA4322A0640F20070541F /* KMAnnotationScreenHeadView.swift in Sources */,
 				BB8810782B4F785200AFA63E /* KMUnlockAlertViewController.m in Sources */,
 				ADE86AD82B05A52B00414DFA /* KMCompareFilesConfig.swift in Sources */,
+				F32F7B8A2D5486E9006C6773 /* KMNPopAnnotationViewController.swift in Sources */,
 				BB2EDF7B296ECE17003BCF58 /* KMPageEditThumbnailItem.swift in Sources */,
 				9FD0FA4D29D43D6800F2AB0D /* KMDeviceBrowserWindowController.swift in Sources */,
 				ADDF83792B391A5D00A81A4E /* CDSignatureCertificateCustomViewController.swift in Sources */,
@@ -16804,6 +16826,7 @@
 				650FF6762CC8970A0019FAE1 /* NSWindowController+Extension.swift in Sources */,
 				ADDF83582B391A5C00A81A4E /* DSignatureCreateViewController.swift in Sources */,
 				AD8B59482D2B777700150EA6 /* KMBatchSecurityViewPresenter.swift in Sources */,
+				F32F7BB22D54CD05006C6773 /* KMNPopOperationViewController.swift in Sources */,
 				9FF371DB2C69B934005F9CC5 /* CDistanceSettingWindowController.swift in Sources */,
 				9F1FE4E629406E4700E952CA /* GTMNSColor+Luminance.m in Sources */,
 				651675B02CE321C600019A20 /* KMNOutlineHanddler.swift in Sources */,
@@ -16824,6 +16847,7 @@
 				BB2C6ACF28F41BA000478A33 /* CPDFListView.m in Sources */,
 				BB6013822AD38E0100A76FB2 /* CPDFTextAnnotation+PDFListView.swift in Sources */,
 				AD055E2F2B70B3D50035F824 /* KMBookmarkSheetController.swift in Sources */,
+				F32F7BBA2D54CD38006C6773 /* KMNPopContentEditViewController.swift in Sources */,
 				BB97BE262BC3E02D00BECEA8 /* SKExportAccessoryController.m in Sources */,
 				BB42A5DA2B8F0F860092C524 /* KMTabbingHintWindowController.swift in Sources */,
 				ADBC16062D2E2076000ACD95 /* KMBatchOCRView.swift in Sources */,
@@ -16831,6 +16855,7 @@
 				AD199DFA2B26A36500D56FEE /* KMPrintPosterPreviewView.swift in Sources */,
 				BB9AEB3F2D0FC9C4004BF8D2 /* FormsListController.swift in Sources */,
 				BB88109C2B4F7CD100AFA63E /* KMVerificationTrialViewController.m in Sources */,
+				F32F7BAD2D54CCEC006C6773 /* KMNOperationPopToolbarWindow.swift in Sources */,
 				BB42937C2D030BE3007ECFF2 /* KMCreateStampWindowController.swift in Sources */,
 				BB2EDF6C296ECE17003BCF58 /* KMPageEditInsertTypeItemView.swift in Sources */,
 				BBBB6CD02AD13E210035AA66 /* CPDFButtonWidgetAnnotation+PDFListView.swift in Sources */,
@@ -16885,7 +16910,6 @@
 				F3A0F8562CC8F59400E7373F /* KMNConvertTool.swift in Sources */,
 				AD8B5A072D2B778D00150EA6 /* KMBatchProcessingNameTableCell.swift in Sources */,
 				6536477C2CDCA47300CDB13E /* KMBatchOperateImageToPDFViewController.swift in Sources */,
-				F30619C22CFDF5E60047E288 /* KMNPopContentEditWindowController.swift in Sources */,
 				9F705F8B291E576D005199AD /* KMTableView.swift in Sources */,
 				9FF371CF2C69B8B3005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */,
 				BB6EA2992B70AF48000D4490 /* KMConvertCompareViewController.m in Sources */,
@@ -16912,6 +16936,7 @@
 				BB7256B52CDB816100B6CE64 /* KMBackgroundPropertyController.swift in Sources */,
 				BB1B0ACA2B4FC6E900889528 /* KMGuideConfig.swift in Sources */,
 				ADBC15F32D2E0EFA000ACD95 /* KMBatchJsonView.swift in Sources */,
+				F32F7B842D54869C006C6773 /* KMNAnnotationPopToolbarWindow.swift in Sources */,
 				BB8810D82B4F984000AFA63E /* JSONKit.m in Sources */,
 				BB03D69E2B0249A2008C9976 /* KMPDFEditInsertPageWindow.swift in Sources */,
 				BB6192452D1410B8003FDEA6 /* CSelfSignAnnotation+PDFListView.swift in Sources */,
@@ -17237,7 +17262,6 @@
 				AD1CA41B2A061CE10070541F /* KMAnnotationScreenTypeViewItem.swift in Sources */,
 				BB8AA53A2CC65C900084F183 /* KMNAlignmentController.swift in Sources */,
 				BBE0689C2CDDF137000512BC /* KMBatesTemplateController.swift in Sources */,
-				F33B30492D0B22410073DD1B /* KMNPopOperationWindowController.swift in Sources */,
 				BB276A4E2B03760000AB5578 /* KMOperationQueue.swift in Sources */,
 				9F94617F2BD643720076574B /* KMTableAnnotation.m in Sources */,
 				AD055E552B73220A0035F824 /* KMBookmarkManager.swift in Sources */,