Browse Source

【2025】【Markup】测量补充

niehaoyu 2 months ago
parent
commit
e780ee4776

+ 3 - 20
PDF Office/PDF Master/KMClass/KMPDFViewController/KMMainViewController+Action.swift

@@ -425,37 +425,20 @@ extension KMMainViewController {
     func showMeasureDistanceSettingWindow(measureInfo: CPDFDistanceMeasureInfo?, hideInfoWindow: Bool = true) {
         guard let mInfo = measureInfo else {
             return
-        }
-        let winC = CDistanceSettingWindowController(distanceMeasureInfo: mInfo)
-        if hideInfoWindow {
-            self.distanceMeasureInfoWindowController?.hideFloatingWindow()
-        }
-        winC.delegate = self
-        winC.startModal("")
+        } 
     }
     
     func showMeasurePerimeterSettingWindow(measureInfo: CPDFPerimeterMeasureInfo?, hideInfoWindow: Bool = true) {
         guard let mInfo = measureInfo else {
             return
-        }
-        let winC = CDistanceSettingWindowController(perimeterMeasureInfo: mInfo)
-        if hideInfoWindow {
-            self.perimeterMeasureInfoWindowController?.hideFloatingWindow()
-        }
-        winC.delegate = self
-        winC.startModal("")
+        } 
     }
     
     func showMeasureAreaSettingWindow(measureInfo: CPDFAreaMeasureInfo?, hideInfoWindow: Bool = true) {
         guard let mInfo = measureInfo else {
             return
         }
-        let winC = CAreaSettingWindowController(measureInfo: mInfo)
-        if hideInfoWindow {
-            self.areaMeasureInfoWindowController?.hideFloatingWindow()
-        }
-        winC.delegate = self
-        winC.startModal("")
+         
     }
      
     // MARK: - 幻灯片

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

@@ -3140,31 +3140,18 @@ struct KMNMWCFlags {
     func refreshMeasureInfo() {
         if distanceMeasureInfoWindowController == nil {
             distanceMeasureInfoWindowController = CDistanceMeasureInfoWindowController()
-         }
+        }
         
         if perimeterMeasureInfoWindowController == nil {
             perimeterMeasureInfoWindowController = CPerimeterMeasureInfoWindowController()
-         }
+        }
         
         if areaMeasureInfoWindowController == nil {
             areaMeasureInfoWindowController = CAreaMeasureInfoWindowController()
-         }
-        
-        if let annotation = listView.activeAnnotation {
-            if (listView.activeAnnotation.isKind(of: CPDFLineAnnotation.self)) {
-                if (!(listView.activeAnnotation as! CPDFLineAnnotation).isMeasure) {
-                    cancelMeasureType()
-                } else {
-                    
-                }
-            } else if (!listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) && !listView.activeAnnotation.isKind(of: CPDFPolylineAnnotation.self)) {
-                cancelMeasureType()
-            } else if (listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) || listView.activeAnnotation.isKind(of: CPDFPolylineAnnotation.self)) {
-               
-            }
-        } else {
-            showMeasureFloatingWindowsIfNeed()
         }
+        
+        showMeasureFloatingWindowsIfNeed()
+        
     }
     
     @objc func cancelMeasureType() {
@@ -3190,26 +3177,34 @@ struct KMNMWCFlags {
             return
         }
         
-        let type = self.listView.annotationType
-        if type == .measureLine {
-            distanceMeasureInfoWindowController?.measureInfo = listView.distanceMeasureInfo
-            distanceMeasureInfoWindowController?.window?.orderFront(nil)
-        } else if type == .measurePolyLine {
-            perimeterMeasureInfoWindowController?.measureInfo = listView.perimeterMeasureInfo
-            perimeterMeasureInfoWindowController?.window?.orderFront(nil)
-        } else if type == .measurePolyGon {
-            areaMeasureInfoWindowController?.measureInfo = listView.polygonAreaMeasureInfo
-            areaMeasureInfoWindowController?.window?.orderFront(nil)
-        } else if type == .measureSquare {
-            areaMeasureInfoWindowController?.measureInfo = listView.squareAreaMeasureInfo
-            areaMeasureInfoWindowController?.window?.orderFront(nil)
+        if let data = self.listView.activeAnnotation as? CPDFPolylineAnnotation {
+
+        } else if let data = self.listView.activeAnnotation as? CPDFPolygonAnnotation {
+ 
+        } else if let data = self.listView.activeAnnotation as? CPDFLineAnnotation, data.isMeasure {
+  
         } else {
-            cancelMeasureType()
+            let type = self.listView.annotationType
+            if type == .measureLine {
+                distanceMeasureInfoWindowController?.measureInfo = listView.distanceMeasureInfo
+                distanceMeasureInfoWindowController?.window?.orderFront(nil)
+            } else if type == .measurePolyLine {
+                perimeterMeasureInfoWindowController?.measureInfo = listView.perimeterMeasureInfo
+                perimeterMeasureInfoWindowController?.window?.orderFront(nil)
+            } else if type == .measurePolyGon {
+                areaMeasureInfoWindowController?.measureInfo = listView.polygonAreaMeasureInfo
+                areaMeasureInfoWindowController?.window?.orderFront(nil)
+            } else if type == .measureSquare {
+                areaMeasureInfoWindowController?.measureInfo = listView.squareAreaMeasureInfo
+                areaMeasureInfoWindowController?.window?.orderFront(nil)
+            } else {
+                cancelMeasureType()
+            }
         }
     }
     
     func showMeasureSettingWindow() {
-        let distanceSettingWC = CDistanceSettingWindowController(perimeterMeasureInfo: self.perimeterMeasureInfoWindowController!.measureInfo)
+        let distanceSettingWC = CDistanceSettingWindowController(measureInfo: self.listView.distanceMeasureInfo)
         self.distanceMeasureInfoWindowController?.hideFloatingWindow()
         distanceSettingWC.delegate = self
         distanceSettingWC.own_beginSheetModal(for: self.view.window) { string in
@@ -6393,110 +6388,38 @@ extension KMMainViewController: CPDFDocumentDelegate {
 // MARK: - 测量代理CDistanceSettingWindowControllerDelegate
 
 extension KMMainViewController : CDistanceSettingWindowControllerDelegate {
-    func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, distanceMeasureInfo: CPDFDistanceMeasureInfo?) {
-        if distanceMeasureInfo != nil {
-            if self.listView.activeAnnotations.count > 0 {
-                if self.listView.activeAnnotation.isKind(of: CPDFLineAnnotation.self) {
-                    (self.listView.activeAnnotation as! CPDFLineAnnotation).measureInfo = distanceMeasureInfo
-                    self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
-                }
-                self.distanceMeasureInfoWindowController?.reloadData(with: (self.listView.activeAnnotation as! CPDFLineAnnotation).measureInfo!)
-            } else {
-                distanceMeasureInfo?.leadLength = 0
-                self.listView.distanceMeasureInfo = distanceMeasureInfo
-                self.distanceMeasureInfoWindowController?.reloadData(with: self.listView.distanceMeasureInfo)
-                self.distanceMeasureInfoWindowController?.lengthLabel.stringValue = ""
-                self.distanceMeasureInfoWindowController?.angleLabel.stringValue = ""
-                self.distanceMeasureInfoWindowController?.xLabel.stringValue = ""
-                self.distanceMeasureInfoWindowController?.yLabel.stringValue = ""
-            }
-            
-            if let data = self.listView.activeAnnotation {
-            }
-        }
-        self.distanceMeasureInfoWindowController?.showWindow(self)
-    }
-    
-    func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, perimeterMeasureInfo: CPDFPerimeterMeasureInfo?) {
-        if perimeterMeasureInfo != nil {
+    func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, updateMeasureInfo measureInfo: CPDFMeasureInfo?) {
+        if measureInfo != nil {
             if self.listView.activeAnnotations.count > 0 {
                 if self.listView.activeAnnotation.isKind(of: CPDFPolylineAnnotation.self) {
-                    (self.listView.activeAnnotation as! CPDFPolylineAnnotation).measureInfo = perimeterMeasureInfo
-                    self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
+                    self.updateMeasureInfo((self.listView.activeAnnotation as! CPDFPolylineAnnotation).measureInfo, withNewMeasure: measureInfo)
+                } else if self.listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) {
+                    self.updateMeasureInfo((self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo, withNewMeasure: measureInfo)
+                } else if let data = self.listView.activeAnnotation as? CPDFLineAnnotation, data.isMeasure {
+                    self.updateMeasureInfo(data.measureInfo, withNewMeasure: measureInfo)
                 }
-                self.perimeterMeasureInfoWindowController?.reloadData(with: (self.listView.activeAnnotation as! CPDFPolylineAnnotation).measureInfo!)
-            } else {
-                self.listView.perimeterMeasureInfo = perimeterMeasureInfo
-                self.perimeterMeasureInfoWindowController?.reloadData(with: self.listView.perimeterMeasureInfo)
-                self.perimeterMeasureInfoWindowController?.lengthLabel.stringValue = ""
-                self.perimeterMeasureInfoWindowController?.angleLabel.stringValue = ""
-            }
-            
-            if let data = self.listView.activeAnnotation {
+                
+                self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
             }
+             
+            self.updateMeasureInfo(self.listView.distanceMeasureInfo, withNewMeasure: measureInfo)
+            self.updateMeasureInfo(self.listView.perimeterMeasureInfo, withNewMeasure: measureInfo)
+            self.updateMeasureInfo(self.listView.polygonAreaMeasureInfo, withNewMeasure: measureInfo)
+            self.updateMeasureInfo(self.listView.squareAreaMeasureInfo, withNewMeasure: measureInfo)
         }
-        
-        self.perimeterMeasureInfoWindowController?.showWindow(self)
     }
     
-    func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, updateMeasureInfo measureInfo: CPDFMeasureInfo?) {
+    func updateMeasureInfo(_ measureInfo: CPDFMeasureInfo?, withNewMeasure newMeasure: CPDFMeasureInfo?) {
+        guard let measureInfo = measureInfo else { return }
+        guard let newMeasure = newMeasure else { return }
         
-    }
-}
-
-// MARK: CAreaSettingWindowControllerDelegate
-
-extension KMMainViewController : CAreaSettingWindowControllerDelegate {
-    func areaSettingWindowController(_ areaSettingWindowController: CAreaSettingWindowController, measureInfo: CPDFAreaMeasureInfo?) {
-        if self.listView.annotationType == .measureSquare && self.listView.toolMode == .CNoteToolMode {
-            if measureInfo != nil {
-                if self.listView.activeAnnotations.count > 0 {
-                    if self.listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) {
-                        (self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo = measureInfo
-                        self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
-                    }
-                    self.areaMeasureInfoWindowController?.reloadData((self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo!)
-                } else {
-                    self.listView.squareAreaMeasureInfo = measureInfo
-                    self.areaMeasureInfoWindowController?.reloadData(self.listView.squareAreaMeasureInfo)
-                    self.areaMeasureInfoWindowController?.areaLabel.stringValue = ""
-                    self.areaMeasureInfoWindowController?.angleLabel.stringValue = ""
-                }
-            }
-            self.areaMeasureInfoWindowController?.showWindow(self)
-        } else if self.listView.annotationType == .measurePolyGon && self.listView.toolMode == .CNoteToolMode {
-            if measureInfo != nil {
-                if self.listView.activeAnnotations.count > 0 {
-                    if self.listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) {
-                        (self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo = measureInfo
-                        self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
-                    }
-                    self.areaMeasureInfoWindowController?.reloadData((self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo!)
-                } else {
-                    self.listView.polygonAreaMeasureInfo = measureInfo
-                    self.areaMeasureInfoWindowController?.reloadData(self.listView.polygonAreaMeasureInfo)
-                    self.areaMeasureInfoWindowController?.areaLabel.stringValue = ""
-                    self.areaMeasureInfoWindowController?.angleLabel.stringValue = ""
-                }
-            }
-            self.areaMeasureInfoWindowController?.showWindow(self)
-        } else {
-            if measureInfo != nil {
-                if self.listView.activeAnnotations.count > 0 {
-                    if self.listView.activeAnnotation.isKind(of: CPDFPolygonAnnotation.self) {
-                        (self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo = measureInfo
-                        self.listView.setNeedsDisplayAnnotationViewFor(self.listView.activeAnnotation.page)
-                    }
-                    self.areaMeasureInfoWindowController?.reloadData((self.listView.activeAnnotation as! CPDFPolygonAnnotation).measureInfo!)
-                }
-            }
-            self.areaMeasureInfoWindowController?.showWindow(self)
-        }
+        measureInfo.rulerBase = newMeasure.rulerBase
+        measureInfo.rulerTranslate = newMeasure.rulerTranslate
+        measureInfo.rulerBaseUnit = newMeasure.rulerBaseUnit
+        measureInfo.rulerTranslateUnit = newMeasure.rulerTranslateUnit
+        measureInfo.factor = newMeasure.factor
+        measureInfo.precision = newMeasure.precision
         
-        if measureInfo != nil {
-            if let data = self.listView.activeAnnotation {
-             }
-        }
     }
 }
 

+ 0 - 304
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/Measure/Window/CAreaSettingWindowController.swift

@@ -1,304 +0,0 @@
-//
-//  CAreaSettingWindowController.swift
-//  Cisdem PDFMaster
-//
-//  Created by wanjun on 2024/7/16.
-//
-
-import Cocoa
-
-@objc protocol CAreaSettingWindowControllerDelegate: AnyObject {
-    @objc optional func areaSettingWindowController(_ areaSettingWindowController: CAreaSettingWindowController, measureInfo: CPDFAreaMeasureInfo?)
-}
-
-class CAreaSettingWindowController: NSWindowController, NSTextFieldDelegate {
-
-    @IBOutlet weak var rulerBaseTextField: NSTextField!
-    @IBOutlet weak var rulerBasePopButton: NSPopUpButton!
-    @IBOutlet weak var rulerTranslateTextField: NSTextField!
-    @IBOutlet weak var rulerTranslatePopButton: NSPopUpButton!
-    @IBOutlet weak var precisionPopButton: NSPopUpButton!
-    @IBOutlet weak var isLengthCaptionButton: NSButton!
-    @IBOutlet weak var isAreaCaptionButton: NSButton!
-    @IBOutlet weak var doneButton: NSButton!
-    @IBOutlet weak var cancelButton: NSButton!
-
-    @IBOutlet weak var customLabel: NSTextField!
-    @IBOutlet weak var drawingLabel: NSTextField!
-    @IBOutlet weak var precisionLabel: NSTextField!
-    @IBOutlet weak var showLabel: NSTextField!
-
-    
-    @objc weak var delegate: CAreaSettingWindowControllerDelegate?
-    
-    private var measureInfo: CPDFAreaMeasureInfo
-    private var modalSession: NSApplication.ModalSession?
-    
-    @objc init(measureInfo: CPDFAreaMeasureInfo) {
-        self.measureInfo = measureInfo
-        super.init(window: nil)
-//        self.windowNibName = "CAreaSettingWindowController"
-        Bundle.main.loadNibNamed("CAreaSettingWindowController", owner: self, topLevelObjects: nil)
-        commonInit()
-        configurationLanguage()
-    }
-    
-    required init?(coder: NSCoder) {
-        fatalError("init(coder:) has not been implemented")
-    }
-    
-    override func windowDidLoad() {
-        super.windowDidLoad()
-
-//        commonInit()
-    }
-    
-    private func configurationLanguage() {
-        self.window?.title = NSLocalizedString("Measure Settings", comment: "")
-        customLabel.stringValue = NSLocalizedString("Custom Scale", comment: "")
-        drawingLabel.stringValue = NSLocalizedString("Drawing Dimensions: Actual Size", comment: "")
-        precisionLabel.stringValue = NSLocalizedString("Precision Setting", comment: "")
-        showLabel.stringValue = NSLocalizedString("Show Caption", comment: "")
-        
-        isLengthCaptionButton.title = NSLocalizedString("Length", comment: "")
-        isAreaCaptionButton.title = NSLocalizedString("Area", comment: "")
-        doneButton.title = NSLocalizedString("Done", comment: "")
-        cancelButton.title = NSLocalizedString("Cancel", comment: "")
-
-    }
-    
-    private func commonInit() {
-        let me = measureInfo
-        switch me.captionType {
-        case CPDFCaptionType(rawValue: 0):
-            isAreaCaptionButton.state = .off
-            isLengthCaptionButton.state = .off
-        case .area:
-            isAreaCaptionButton.state = .on
-            isLengthCaptionButton.state = .off
-        case .length:
-            isAreaCaptionButton.state = .off
-            isLengthCaptionButton.state = .on
-        case [.area, .length]:
-            isAreaCaptionButton.state = .on
-            isLengthCaptionButton.state = .on
-        default:
-            break
-        }
-        rulerBaseTextField.stringValue = String(format: "%0.0f", me.rulerBase)
-        rulerTranslateTextField.stringValue = String(format: "%0.0f", me.rulerTranslate)
-        
-        rulerBasePopButton.removeAllItems()
-        rulerBasePopButton.addItems(withTitles: ["in", "cm", "mm"])
-        selectRulerBasePopButton(measureInfo: me)
-        
-        rulerTranslatePopButton.removeAllItems()
-        rulerTranslatePopButton.addItems(withTitles: ["pt", "cm", "in", "mm", "m", "km", "ft", "yd", "mi"])
-        selectRulerTranslatePopButton(measureInfo: me)
-        
-        precisionPopButton.removeAllItems()
-        precisionPopButton.addItems(withTitles: ["1", "0.1", "0.01", "0.001", "0.0001"])
-        selectPrecisionPopButton(measureInfo: me)
-        
-        rulerBaseTextField.delegate = self
-        rulerTranslateTextField.delegate = self
-    }
-    
-    private func selectRulerBasePopButton(measureInfo: CPDFAreaMeasureInfo) {
-        let constants = CPDFMeasureConstants.sharedInstance()
-        if measureInfo.rulerBaseUnit == constants.cpdfIn {
-            rulerBasePopButton.selectItem(withTitle: "in")
-        } else if measureInfo.rulerBaseUnit == constants.cpdfCm {
-            rulerBasePopButton.selectItem(withTitle: "cm")
-        } else if measureInfo.rulerBaseUnit == constants.cpdfMm {
-            rulerBasePopButton.selectItem(withTitle: "mm")
-        }
-    }
-
-    private func selectRulerTranslatePopButton(measureInfo: CPDFAreaMeasureInfo) {
-        let constants = CPDFMeasureConstants.sharedInstance()
-        if measureInfo.rulerTranslateUnit == constants.cpdfPt {
-            rulerTranslatePopButton.selectItem(withTitle: "pt")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfIn {
-            rulerTranslatePopButton.selectItem(withTitle: "in")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfCm {
-            rulerTranslatePopButton.selectItem(withTitle: "cm")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfMm {
-            rulerTranslatePopButton.selectItem(withTitle: "mm")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfM {
-            rulerTranslatePopButton.selectItem(withTitle: "m")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfKm {
-            rulerTranslatePopButton.selectItem(withTitle: "km")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfFt {
-            rulerTranslatePopButton.selectItem(withTitle: "ft")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfYd {
-            rulerTranslatePopButton.selectItem(withTitle: "yd")
-        } else if measureInfo.rulerTranslateUnit == constants.cpdfMi {
-            rulerTranslatePopButton.selectItem(withTitle: "mi")
-        }
-    }
-    
-    private func selectPrecisionPopButton(measureInfo: CPDFAreaMeasureInfo) {
-        switch measureInfo.precision {
-        case 1:
-            precisionPopButton.selectItem(withTitle: "1")
-        case 10:
-            precisionPopButton.selectItem(withTitle: "0.1")
-        case 100:
-            precisionPopButton.selectItem(withTitle: "0.01")
-        case 1000:
-            precisionPopButton.selectItem(withTitle: "0.001")
-        case 10000:
-            precisionPopButton.selectItem(withTitle: "0.0001")
-        default:
-            break
-        }
-    }
-    
-    @IBAction func startModal(_ sender: Any) {
-        NSApp.stopModal()
-        self.modalSession = NSApp.beginModalSession(for: self.window!)
-        var modalCode: NSApplication.ModalResponse
-        repeat {
-            modalCode = NSApp.runModalSession(self.modalSession!)
-        } while modalCode == .continue
-    }
-    
-    @IBAction func endModal(_ sender: Any) {
-        if let session = modalSession {
-            NSApp.stopModal()
-            NSApp.endModalSession(session)
-            self.window?.orderOut(self)
-        }
-    }
-    
-    func controlTextDidChange(_ obj: Notification) {
-        if rulerBaseTextField.stringValue.count > 6 {
-            rulerBaseTextField.stringValue = String(rulerBaseTextField.stringValue.prefix(6))
-        } else if rulerTranslateTextField.stringValue.count > 6 {
-            rulerTranslateTextField.stringValue = String(rulerTranslateTextField.stringValue.prefix(6))
-        }
-        
-        let rulerBaseText = rulerBaseTextField.stringValue
-        let rulerTranslateText = rulerTranslateTextField.stringValue
-        let nonDigits = CharacterSet.decimalDigits.inverted
-        
-        if rulerBaseText.rangeOfCharacter(from: nonDigits) != nil ||
-            rulerTranslateText.rangeOfCharacter(from: nonDigits) != nil ||
-            rulerBaseText.isEmpty ||
-            rulerTranslateText.isEmpty ||
-            rulerBaseText == "0" ||
-            rulerTranslateText == "0" {
-            doneButton.isEnabled = false
-        } else {
-            doneButton.isEnabled = true
-        }
-    }
-    
-    @IBAction func buttonItemClick_Rulerbase(_ sender: NSPopUpButton) {
-        let selectIndex = sender.indexOfSelectedItem
-        let constants = CPDFMeasureConstants.sharedInstance()
-        var rulerBaseUnit = ""
-        switch selectIndex {
-        case 0:
-            rulerBaseUnit = constants.cpdfIn
-        case 1:
-            rulerBaseUnit = constants.cpdfCm
-        case 2:
-            rulerBaseUnit = constants.cpdfMm
-        default:
-            break
-        }
-        measureInfo.rulerBaseUnit = rulerBaseUnit
-    }
-    
-    @IBAction func buttonItemClick_Rulertranslate(_ sender: NSPopUpButton) {
-        let selectIndex = sender.indexOfSelectedItem
-        let constants = CPDFMeasureConstants.sharedInstance()
-        var rulerTranslateUnit = ""
-        var factor: CGFloat = 0
-        switch selectIndex {
-        case 0:
-            rulerTranslateUnit = constants.cpdfPt
-            factor = constants.ptPt
-        case 1:
-            rulerTranslateUnit = constants.cpdfCm
-            factor = constants.ptCm
-        case 2:
-            rulerTranslateUnit = constants.cpdfIn
-            factor = constants.ptIn
-        case 3:
-            rulerTranslateUnit = constants.cpdfMm
-            factor = constants.ptMm
-        case 4:
-            rulerTranslateUnit = constants.cpdfM
-            factor = constants.ptM
-        case 5:
-            rulerTranslateUnit = constants.cpdfKm
-            factor = constants.ptKm
-        case 6:
-            rulerTranslateUnit = constants.cpdfFt
-            factor = constants.ptFt
-        case 7:
-            rulerTranslateUnit = constants.cpdfYd
-            factor = constants.ptYd
-        case 8:
-            rulerTranslateUnit = constants.cpdfMi
-            factor = constants.ptMi
-        default:
-            break
-        }
-        measureInfo.rulerTranslateUnit = rulerTranslateUnit
-        measureInfo.factor = factor
-    }
-    
-    @IBAction func buttonItemClick_Precision(_ sender: NSPopUpButton) {
-        let selectIndex = sender.indexOfSelectedItem
-        let constants = CPDFMeasureConstants.sharedInstance()
-        var precision = 0
-        switch selectIndex {
-        case 0:
-            precision = constants.precisionValueZero
-        case 1:
-            precision = constants.precisionValueOne
-        case 2:
-            precision = constants.precisionValueTwo
-        case 3:
-            precision = constants.precisionValueThree
-        case 4:
-            precision = constants.precisionValueFour
-        default:
-            break
-        }
-        measureInfo.precision = precision
-    }
-    
-    @IBAction func buttonItemClick_Cancel(_ sender: Any) {
-        delegate?.areaSettingWindowController?(self, measureInfo: nil)
-        endModal("")
-    }
-    
-    @IBAction func buttonItemClick_Done(_ sender: Any) {
-        if let delegate = delegate {
-            measureInfo.rulerBase = CGFloat(Float(rulerBaseTextField.stringValue) ?? 0)
-            measureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
-            let isLength = isLengthCaptionButton.state == .on
-            let isArea = isAreaCaptionButton.state == .on
-            if isLength && isArea {
-                measureInfo.captionType = [.length, .area]
-            } else if isLength {
-                measureInfo.captionType = .length
-            } else if isArea {
-                measureInfo.captionType = .area
-            } else {
-                measureInfo.captionType = CPDFCaptionType(rawValue: 0)
-            }
-            delegate.areaSettingWindowController?(self, measureInfo: measureInfo)
-        }
-        endModal("")
-    }
-    
-    @IBAction func buttonItemClick_Length(_ sender: Any) {}
-    
-    @IBAction func buttonItemClick_Area(_ sender: Any) {}
-}

+ 0 - 284
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/Measure/Window/CAreaSettingWindowController.xib

@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="22505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
-    <dependencies>
-        <deployment identifier="macosx"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="22505"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <objects>
-        <customObject id="-2" userLabel="File's Owner" customClass="CAreaSettingWindowController" customModule="PDF_Reader_Pro" customModuleProvider="target">
-            <connections>
-                <outlet property="cancelButton" destination="eK4-Xp-4u5" id="OOw-6L-cIf"/>
-                <outlet property="customLabel" destination="pPT-mK-vMp" id="P6p-ol-wjs"/>
-                <outlet property="doneButton" destination="0St-WY-Hn5" id="d0k-Xd-GVe"/>
-                <outlet property="drawingLabel" destination="dxd-2A-cCZ" id="vE6-uo-vwO"/>
-                <outlet property="isAreaCaptionButton" destination="dYV-qw-kD8" id="8cU-rE-Bwu"/>
-                <outlet property="isLengthCaptionButton" destination="jTl-ke-b1S" id="mRa-KV-dYY"/>
-                <outlet property="precisionLabel" destination="THd-HJ-MA7" id="qPX-qb-ZKY"/>
-                <outlet property="precisionPopButton" destination="P3V-RB-m4R" id="GKY-g3-gVn"/>
-                <outlet property="rulerBasePopButton" destination="UpD-5M-EEE" id="s4N-CJ-CF9"/>
-                <outlet property="rulerBaseTextField" destination="tAa-Te-jB3" id="3Jw-z0-BeV"/>
-                <outlet property="rulerTranslatePopButton" destination="efk-5G-wt6" id="Mc2-5Q-3pf"/>
-                <outlet property="rulerTranslateTextField" destination="NIg-vU-5gd" id="SkK-vt-QJw"/>
-                <outlet property="showLabel" destination="MlC-Vf-CNK" id="YKe-K8-4Sc"/>
-                <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 title="Measure Settings" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="F0z-JX-Cv5">
-            <windowStyleMask key="styleMask" titled="YES"/>
-            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
-            <rect key="contentRect" x="454" y="556" width="520" height="360"/>
-            <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
-            <view key="contentView" id="se5-gp-TjO">
-                <rect key="frame" x="0.0" y="0.0" width="520" height="360"/>
-                <autoresizingMask key="autoresizingMask"/>
-                <subviews>
-                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pPT-mK-vMp">
-                        <rect key="frame" x="18" y="331" width="88" height="16"/>
-                        <textFieldCell key="cell" lineBreakMode="truncatingTail" title="Custom Scale" id="lOo-oa-V7v">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dxd-2A-cCZ">
-                        <rect key="frame" x="18" y="303" width="244" height="16"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="240" id="LN5-JQ-EpJ"/>
-                        </constraints>
-                        <textFieldCell key="cell" lineBreakMode="clipping" title="Drawing dimensions: Actual size" id="eVa-qA-bxA">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="tAa-Te-jB3">
-                        <rect key="frame" x="20" y="277" width="96" height="21"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="96" id="Exl-7k-tny"/>
-                            <constraint firstAttribute="height" constant="21" id="iIo-QF-wmu"/>
-                        </constraints>
-                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="7HE-af-6HF">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="UpD-5M-EEE">
-                        <rect key="frame" x="117" y="273" width="103" height="26"/>
-                        <popUpButtonCell key="cell" type="push" title="Item 3" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="IEx-yw-Syf" id="TPd-uq-pJU">
-                            <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="menu"/>
-                            <menu key="menu" id="mWC-LZ-RPY">
-                                <items>
-                                    <menuItem title="Item 1" id="qD0-3H-iO3"/>
-                                    <menuItem title="Item 2" id="601-ag-2Sv"/>
-                                    <menuItem title="Item 3" state="on" id="IEx-yw-Syf"/>
-                                </items>
-                            </menu>
-                        </popUpButtonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="96" id="2RD-c3-cFC"/>
-                            <constraint firstAttribute="height" constant="21" id="LzT-ex-vTe"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Rulerbase:" target="-2" id="zXf-Pj-fvp"/>
-                        </connections>
-                    </popUpButton>
-                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xEh-uC-gir">
-                        <rect key="frame" x="218" y="281" width="13" height="17"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="9" id="4I9-rL-6Q0"/>
-                            <constraint firstAttribute="height" constant="17" id="X2f-66-WWP"/>
-                        </constraints>
-                        <textFieldCell key="cell" lineBreakMode="clipping" title="=" id="GuT-dR-EWN">
-                            <font key="font" metaFont="system" size="14"/>
-                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <textField focusRingType="none" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="NIg-vU-5gd">
-                        <rect key="frame" x="233" y="277" width="96" height="21"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="21" id="Elp-xj-HVV"/>
-                            <constraint firstAttribute="width" constant="96" id="i1A-eh-gR5"/>
-                        </constraints>
-                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="EDR-nh-L6b">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="efk-5G-wt6">
-                        <rect key="frame" x="330" y="273" width="103" height="26"/>
-                        <popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="B1O-lN-fh4" id="1IT-KO-rsX">
-                            <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="menu"/>
-                            <menu key="menu" id="fdJ-Mr-GX9">
-                                <items>
-                                    <menuItem title="Item 1" state="on" id="B1O-lN-fh4"/>
-                                    <menuItem title="Item 2" id="t7E-h8-br2"/>
-                                    <menuItem title="Item 3" id="Xlh-z2-uVw"/>
-                                </items>
-                            </menu>
-                        </popUpButtonCell>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="21" id="Lba-UC-RrH"/>
-                            <constraint firstAttribute="width" constant="96" id="o0s-fw-rg0"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Rulertranslate:" target="-2" id="HPi-68-deg"/>
-                        </connections>
-                    </popUpButton>
-                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="THd-HJ-MA7">
-                        <rect key="frame" x="18" y="249" width="84" height="16"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="80" id="BZv-wa-vdj"/>
-                        </constraints>
-                        <textFieldCell key="cell" lineBreakMode="clipping" title="Precision" id="rxI-tZ-AFE">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="P3V-RB-m4R">
-                        <rect key="frame" x="17" y="220" width="103" height="25"/>
-                        <popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Lnx-vy-Klz" id="wYb-Uo-FFC">
-                            <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="menu"/>
-                            <menu key="menu" id="hNx-hj-w0X">
-                                <items>
-                                    <menuItem title="Item 1" state="on" id="Lnx-vy-Klz"/>
-                                    <menuItem title="Item 2" id="FpM-8R-gYP"/>
-                                    <menuItem title="Item 3" id="1AR-Y2-J7u"/>
-                                </items>
-                            </menu>
-                        </popUpButtonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="96" id="bWd-nH-qaa"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Precision:" target="-2" id="TEe-VC-47Z"/>
-                        </connections>
-                    </popUpButton>
-                    <box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="mcQ-lJ-dbH">
-                        <rect key="frame" x="20" y="209" width="465" height="5"/>
-                        <constraints>
-                            <constraint firstAttribute="height" constant="1" id="ize-HX-jXH"/>
-                        </constraints>
-                    </box>
-                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MlC-Vf-CNK">
-                        <rect key="frame" x="18" y="185" width="94" height="16"/>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="90" id="bdy-2J-Kl1"/>
-                        </constraints>
-                        <textFieldCell key="cell" lineBreakMode="clipping" title="Show Caption" id="Zv7-8U-7XR">
-                            <font key="font" metaFont="system"/>
-                            <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
-                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
-                        </textFieldCell>
-                    </textField>
-                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="jTl-ke-b1S">
-                        <rect key="frame" x="18" y="156" width="66" height="18"/>
-                        <buttonCell key="cell" type="check" title="Length" bezelStyle="regularSquare" imagePosition="left" inset="2" id="1NU-1l-znB">
-                            <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                            <font key="font" metaFont="system"/>
-                        </buttonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="64" id="vY4-YM-zWc"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Length:" target="-2" id="h4o-b1-ciO"/>
-                        </connections>
-                    </button>
-                    <button tag="1" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dYV-qw-kD8">
-                        <rect key="frame" x="18" y="128" width="66" height="18"/>
-                        <buttonCell key="cell" type="check" title="Area" bezelStyle="regularSquare" imagePosition="left" inset="2" id="SsQ-Ui-1ZF">
-                            <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
-                            <font key="font" metaFont="system"/>
-                        </buttonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="64" id="BUq-Vd-Nz1"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Area:" target="-2" id="NZC-jy-8Pi"/>
-                        </connections>
-                    </button>
-                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0St-WY-Hn5">
-                        <rect key="frame" x="423" y="16" width="92" height="52"/>
-                        <buttonCell key="cell" type="push" title="Done" bezelStyle="rounded" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="PaA-Eu-oLf">
-                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="system"/>
-                            <string key="keyEquivalent" base64-UTF8="YES">
-DQ
-</string>
-                        </buttonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="80" id="CHh-Mb-MVJ"/>
-                            <constraint firstAttribute="height" constant="40" id="Y7A-NX-dYl"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Done:" target="-2" id="uB2-TU-MmT"/>
-                        </connections>
-                    </button>
-                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eK4-Xp-4u5">
-                        <rect key="frame" x="335" y="16" width="92" height="52"/>
-                        <buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="large" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="rcQ-sm-fWx">
-                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-                            <font key="font" metaFont="system"/>
-                            <string key="keyEquivalent" base64-UTF8="YES">
-Gw
-</string>
-                        </buttonCell>
-                        <constraints>
-                            <constraint firstAttribute="width" constant="80" id="JY9-wV-SaI"/>
-                            <constraint firstAttribute="height" constant="40" id="L9L-zn-LIx"/>
-                        </constraints>
-                        <connections>
-                            <action selector="buttonItemClick_Cancel:" target="-2" id="YhX-x5-d0S"/>
-                        </connections>
-                    </button>
-                </subviews>
-                <constraints>
-                    <constraint firstItem="NIg-vU-5gd" firstAttribute="leading" secondItem="xEh-uC-gir" secondAttribute="trailing" constant="4" id="2Bz-oZ-pz2"/>
-                    <constraint firstItem="tAa-Te-jB3" firstAttribute="top" secondItem="dxd-2A-cCZ" secondAttribute="bottom" constant="5" id="30o-PC-o6L"/>
-                    <constraint firstItem="0St-WY-Hn5" firstAttribute="leading" secondItem="eK4-Xp-4u5" secondAttribute="trailing" constant="8" id="6B3-SH-5ZI"/>
-                    <constraint firstItem="efk-5G-wt6" firstAttribute="leading" secondItem="NIg-vU-5gd" secondAttribute="trailing" constant="4" id="8lB-Zd-cpH"/>
-                    <constraint firstItem="xEh-uC-gir" firstAttribute="leading" secondItem="UpD-5M-EEE" secondAttribute="trailing" constant="4" id="9AG-Bh-Aw8"/>
-                    <constraint firstItem="jTl-ke-b1S" firstAttribute="top" secondItem="MlC-Vf-CNK" secondAttribute="bottom" constant="12" id="AcS-UQ-71P"/>
-                    <constraint firstItem="MlC-Vf-CNK" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="EjV-va-qta"/>
-                    <constraint firstItem="mcQ-lJ-dbH" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" id="F0O-wm-bno"/>
-                    <constraint firstItem="UpD-5M-EEE" firstAttribute="leading" secondItem="tAa-Te-jB3" secondAttribute="trailing" constant="4" id="FVD-OA-yVM"/>
-                    <constraint firstItem="0St-WY-Hn5" firstAttribute="centerY" secondItem="eK4-Xp-4u5" secondAttribute="centerY" id="Hzf-xo-0Rs"/>
-                    <constraint firstItem="MlC-Vf-CNK" firstAttribute="top" secondItem="mcQ-lJ-dbH" secondAttribute="bottom" constant="10" id="Izp-it-8B8"/>
-                    <constraint firstItem="dxd-2A-cCZ" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="K8g-Sw-Ffx"/>
-                    <constraint firstItem="UpD-5M-EEE" firstAttribute="centerY" secondItem="tAa-Te-jB3" secondAttribute="centerY" id="NRt-kN-AMg"/>
-                    <constraint firstItem="THd-HJ-MA7" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="Pn5-XT-w7M"/>
-                    <constraint firstAttribute="bottom" secondItem="0St-WY-Hn5" secondAttribute="bottom" constant="22" id="TaQ-Yj-klC"/>
-                    <constraint firstItem="P3V-RB-m4R" firstAttribute="top" secondItem="THd-HJ-MA7" secondAttribute="bottom" constant="5" id="WmU-DP-Gem"/>
-                    <constraint firstItem="dxd-2A-cCZ" firstAttribute="top" secondItem="pPT-mK-vMp" secondAttribute="bottom" constant="12" id="ZTa-ak-anh"/>
-                    <constraint firstItem="THd-HJ-MA7" firstAttribute="top" secondItem="tAa-Te-jB3" secondAttribute="bottom" constant="12" id="Zxd-jo-p2Y"/>
-                    <constraint firstAttribute="trailing" secondItem="0St-WY-Hn5" secondAttribute="trailing" constant="11" id="bOh-5B-i5E"/>
-                    <constraint firstItem="mcQ-lJ-dbH" firstAttribute="top" secondItem="P3V-RB-m4R" secondAttribute="bottom" constant="12" id="c6g-Db-6dU"/>
-                    <constraint firstItem="dYV-qw-kD8" firstAttribute="top" secondItem="jTl-ke-b1S" secondAttribute="bottom" constant="12" id="e4i-7V-e0b"/>
-                    <constraint firstAttribute="trailing" secondItem="mcQ-lJ-dbH" secondAttribute="trailing" constant="35" id="gLS-oM-JIx"/>
-                    <constraint firstItem="jTl-ke-b1S" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="gqX-lY-FlL"/>
-                    <constraint firstItem="P3V-RB-m4R" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="h4M-8D-xGT"/>
-                    <constraint firstItem="pPT-mK-vMp" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" id="igW-Ix-NI8"/>
-                    <constraint firstItem="pPT-mK-vMp" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="13" id="kOv-gZ-irQ"/>
-                    <constraint firstItem="dYV-qw-kD8" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="kQb-fg-pes"/>
-                    <constraint firstItem="efk-5G-wt6" firstAttribute="centerY" secondItem="NIg-vU-5gd" secondAttribute="centerY" id="p54-FS-fQY"/>
-                    <constraint firstItem="xEh-uC-gir" firstAttribute="top" secondItem="dxd-2A-cCZ" secondAttribute="bottom" constant="5" id="pWc-Yr-wmB"/>
-                    <constraint firstItem="NIg-vU-5gd" firstAttribute="centerY" secondItem="UpD-5M-EEE" secondAttribute="centerY" id="r55-Kv-ech"/>
-                    <constraint firstItem="tAa-Te-jB3" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" symbolic="YES" id="w7f-aw-OyD"/>
-                </constraints>
-            </view>
-            <connections>
-                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
-            </connections>
-            <point key="canvasLocation" x="-35" y="125"/>
-        </window>
-    </objects>
-</document>

+ 22 - 93
PDF Office/PDF Master/KMClass/KMPDFViewController/RightSideController/Views/Measure/Window/CDistanceSettingWindowController.swift

@@ -35,44 +35,20 @@ import KMComponentLibrary
     
     @objc weak var delegate: CDistanceSettingWindowControllerDelegate?
     
-    var distanceMeasureInfo: CPDFDistanceMeasureInfo?
-    var perimeterMeasureInfo: CPDFPerimeterMeasureInfo?
     var measureInfo: CPDFMeasureInfo?
     
-    var modalSession: NSApplication.ModalSession?
-    var isDistance: Bool = false
-    
-    @objc init(distanceMeasureInfo: CPDFDistanceMeasureInfo) {
-        self.distanceMeasureInfo = distanceMeasureInfo
-        self.isDistance = true
-        super.init(window: nil)
-        Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
-        commonInit()
-        configurationLanguage()
-        setupProperty()
-    }
-    
-    @objc init(perimeterMeasureInfo: CPDFPerimeterMeasureInfo) {
-        self.perimeterMeasureInfo = perimeterMeasureInfo
-        self.isDistance = false
-        super.init(window: nil)
-        Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
-        commonInit()
-        configurationLanguage()
-        setupProperty()
-    }
-    
     @objc init(measureInfo: CPDFMeasureInfo) {
         super.init(window: nil)
         
+        Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
+        
         self.measureInfo = measureInfo
         
-        self.isDistance = false
+        setupProperty()
         
-        Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
         commonInit()
+        
         configurationLanguage()
-        setupProperty()
     }
     
     
@@ -162,12 +138,7 @@ import KMComponentLibrary
     }
     
     private func commonInit() {
-        let measureInfo: CPDFMeasureInfo
-        if isDistance {
-            measureInfo = distanceMeasureInfo!
-        } else {
-            measureInfo = perimeterMeasureInfo!
-        }
+        guard let measureInfo = self.measureInfo else { return }
         
         rulerBaseInput.properties.text = String(format: "%0.0f", measureInfo.rulerBase)
         rulerBaseInput.reloadData()
@@ -223,50 +194,22 @@ import KMComponentLibrary
          
     }
     
-    @IBAction func startModal(_ sender: Any) {
-        NSApp.stopModal()
-        var modalCode: NSApplication.ModalResponse
-        modalSession = NSApp.beginModalSession(for: self.window!)
-        repeat {
-            modalCode = NSApp.runModalSession(modalSession!)
-        } while modalCode == .continue
+    @objc func buttonItemClick_Cancel(_ sender: Any) {
+        delegate?.distanceSettingWindowController?(self, updateMeasureInfo: nil)
+        
+        self.own_closeEndSheet()
     }
     
-    @IBAction func endModal(_ sender: Any) {
-        if let modalSession = modalSession {
-            NSApp.stopModal()
-            NSApp.endModalSession(modalSession)
-            self.window?.orderOut(self)
-        }
-    }
-     
-     
-   @objc func buttonItemClick_Cancel(_ sender: Any) {
-        if isDistance {
-            delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: nil)
-        } else {
-            delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: nil)
+    @objc func buttonItemClick_Done(_ sender: Any) {
+        if let distanceMeasureInfo = self.measureInfo {
+            distanceMeasureInfo.rulerBase = CGFloat(Float(rulerBaseInput.properties.text) ?? 0)
+            distanceMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateInput.properties.text) ?? 0)
+            delegate?.distanceSettingWindowController?(self, updateMeasureInfo: distanceMeasureInfo)
         }
-        endModal("")
+        
+        self.own_closeEndSheet()
     }
     
-    @objc func buttonItemClick_Done(_ sender: Any) {
-//        if isDistance {
-//            if let distanceMeasureInfo = distanceMeasureInfo {
-//                distanceMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
-//                distanceMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
-//                delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: distanceMeasureInfo)
-//            }
-//        } else {
-//            if let perimeterMeasureInfo = perimeterMeasureInfo {
-//                perimeterMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
-//                perimeterMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
-//                delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: perimeterMeasureInfo)
-//            }
-//        }
-        endModal("")
-    }
-
 }
 
 //MARK: - ComponentSelectDelegate
@@ -285,12 +228,8 @@ extension CDistanceSettingWindowController: ComponentSelectDelegate {
             default:
                 break
             }
+            self.measureInfo?.rulerBaseUnit = rulerBaseUnit
             
-            if isDistance {
-                distanceMeasureInfo?.rulerBaseUnit = rulerBaseUnit
-            } else {
-                perimeterMeasureInfo?.rulerBaseUnit = rulerBaseUnit
-            }
         } else if view == rulerTranslateSelect {
             let selectIndex = rulerTranslateSelect.indexOfSelect()
             var rulerTranslateUnit = ""
@@ -327,13 +266,9 @@ extension CDistanceSettingWindowController: ComponentSelectDelegate {
                 break
             }
             
-            if isDistance {
-                distanceMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
-                distanceMeasureInfo?.factor = factor
-            } else {
-                perimeterMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
-                perimeterMeasureInfo?.factor = factor
-            }
+            self.measureInfo?.rulerTranslateUnit = rulerTranslateUnit
+            self.measureInfo?.factor = factor
+            
         } else if view == precisionSelect {
             let selectIndex = precisionSelect.indexOfSelect()
              
@@ -352,14 +287,8 @@ extension CDistanceSettingWindowController: ComponentSelectDelegate {
             default:
                 break
             }
-            
-            if isDistance {
-                distanceMeasureInfo?.precision = precision
-            } else {
-                perimeterMeasureInfo?.precision = precision
-            }
-            
-        }
+            self.measureInfo?.precision = precision
+         }
     }
 }
  

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

@@ -804,10 +804,8 @@
 		9FF371BE2C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B22C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.swift */; };
 		9FF371BF2C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B32C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.swift */; };
 		9FF371C02C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B42C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.xib */; };
-		9FF371C12C69A6BB005F9CC5 /* CAreaSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B52C69A6BB005F9CC5 /* CAreaSettingWindowController.swift */; };
 		9FF371C22C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B62C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.xib */; };
 		9FF371C32C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B72C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.swift */; };
-		9FF371C42C69A6BB005F9CC5 /* CAreaSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B82C69A6BB005F9CC5 /* CAreaSettingWindowController.xib */; };
 		9FF371C52C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B92C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.xib */; };
 		9FF371C82C69A9E2005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371C62C69A9E1005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift */; };
 		9FF371C92C69A9E2005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371C72C69A9E1005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift */; };
@@ -827,10 +825,6 @@
 		9FF371DB2C69B934005F9CC5 /* CDistanceSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B12C69A6BB005F9CC5 /* CDistanceSettingWindowController.swift */; };
 		9FF371DC2C69B937005F9CC5 /* CDistanceSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B02C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib */; };
 		9FF371DD2C69B938005F9CC5 /* CDistanceSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B02C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib */; };
-		9FF371DE2C69B93A005F9CC5 /* CAreaSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B52C69A6BB005F9CC5 /* CAreaSettingWindowController.swift */; };
-		9FF371DF2C69B93B005F9CC5 /* CAreaSettingWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371B52C69A6BB005F9CC5 /* CAreaSettingWindowController.swift */; };
-		9FF371E02C69B93E005F9CC5 /* CAreaSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B82C69A6BB005F9CC5 /* CAreaSettingWindowController.xib */; };
-		9FF371E12C69B93E005F9CC5 /* CAreaSettingWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9FF371B82C69A6BB005F9CC5 /* CAreaSettingWindowController.xib */; };
 		9FF371E22C69D2F4005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371C72C69A9E1005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift */; };
 		9FF371E32C69D2F4005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371C72C69A9E1005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift */; };
 		9FF371E42C69D2F7005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FF371C62C69A9E1005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift */; };
@@ -5015,10 +5009,8 @@
 		9FF371B22C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CDistanceMeasureInfoWindowController.swift; sourceTree = "<group>"; };
 		9FF371B32C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CAreaMeasureInfoWindowController.swift; sourceTree = "<group>"; };
 		9FF371B42C69A6BB005F9CC5 /* CDistanceMeasureInfoWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CDistanceMeasureInfoWindowController.xib; sourceTree = "<group>"; };
-		9FF371B52C69A6BB005F9CC5 /* CAreaSettingWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CAreaSettingWindowController.swift; sourceTree = "<group>"; };
 		9FF371B62C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CPerimeterMeasureInfoWindowController.xib; sourceTree = "<group>"; };
 		9FF371B72C69A6BB005F9CC5 /* CPerimeterMeasureInfoWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CPerimeterMeasureInfoWindowController.swift; sourceTree = "<group>"; };
-		9FF371B82C69A6BB005F9CC5 /* CAreaSettingWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CAreaSettingWindowController.xib; sourceTree = "<group>"; };
 		9FF371B92C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CAreaMeasureInfoWindowController.xib; sourceTree = "<group>"; };
 		9FF371C62C69A9E1005F9CC5 /* CPDFPolygonAnnotation+PDFListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CPDFPolygonAnnotation+PDFListView.swift"; sourceTree = "<group>"; };
 		9FF371C72C69A9E1005F9CC5 /* CPDFPolylineAnnotation+PDFListView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CPDFPolylineAnnotation+PDFListView.swift"; sourceTree = "<group>"; };
@@ -7627,8 +7619,6 @@
 				9FF371B92C69A6BB005F9CC5 /* CAreaMeasureInfoWindowController.xib */,
 				9FF371B12C69A6BB005F9CC5 /* CDistanceSettingWindowController.swift */,
 				9FF371B02C69A6BB005F9CC5 /* CDistanceSettingWindowController.xib */,
-				9FF371B52C69A6BB005F9CC5 /* CAreaSettingWindowController.swift */,
-				9FF371B82C69A6BB005F9CC5 /* CAreaSettingWindowController.xib */,
 			);
 			path = Window;
 			sourceTree = "<group>";
@@ -13430,7 +13420,6 @@
 				BB4F7E912B0C80000077EC8C /* KMNoteColorCollectionViewItem.xib in Resources */,
 				ADF1569C29A63CBF001D1018 /* KMLightMember.xcassets in Resources */,
 				BB91384A2CEE08D400BAB4A7 /* KMCropCoverController.xib in Resources */,
-				9FF371C42C69A6BB005F9CC5 /* CAreaSettingWindowController.xib in Resources */,
 				ADD1B6AE2941E97F00C3FFF7 /* KMPrintWindowController.xib in Resources */,
 				BB1B0B0A2B4FC6E900889528 /* KMGuideInfoWindow.xib in Resources */,
 				BB1B0AC22B4FC6E900889528 /* KMFunctionGuideWindowController.xib in Resources */,
@@ -13934,7 +13923,6 @@
 				BB24D4AB2977BE6700041659 /* KMRedactConfirmWindowController.xib in Resources */,
 				BB234F052BA3D798008B3754 /* KMAIIconGuideView.xib in Resources */,
 				BB52F5712CC236A2007418DB /* KMLinkEmailView.xib in Resources */,
-				9FF371E02C69B93E005F9CC5 /* CAreaSettingWindowController.xib in Resources */,
 				AD1D48532AFB8510007AC1F0 /* KMMergeTableViewCell.xib in Resources */,
 				ADBC2CFF299CA6C7006280C8 /* KMPrintDuplexPrintingSetView.xib in Resources */,
 				AD8B59E52D2B778D00150EA6 /* KMBatchProcessingStateTableCell.xib in Resources */,
@@ -14301,7 +14289,6 @@
 				AD055E322B70B3D50035F824 /* KMBookmarkSheetController.xib in Resources */,
 				BB2F78B52D01FD6600F6B636 /* KMPDFSignatureImageView.xib in Resources */,
 				9F853A012947137500DF644E /* throbber.png in Resources */,
-				9FF371E12C69B93E005F9CC5 /* CAreaSettingWindowController.xib in Resources */,
 				AD7D5CF22B96B9E1006562CD /* KMBookmarkOutlineRowView.xib in Resources */,
 				AD1FE8492BD7C98300AA4A9B /* KMPDFPosterPrintWindowController.xib in Resources */,
 				AD1CA41E2A061CE10070541F /* KMAnnotationScreenTypeViewItem.xib in Resources */,
@@ -15242,7 +15229,6 @@
 				ADD1B7022946C8AD00C3FFF7 /* KMBaseTextField.swift in Sources */,
 				BB03D68C2B01C782008C9976 /* KMPDFEditInsertBlankPageWindow.swift in Sources */,
 				9F1FE4E129406E4700E952CA /* GTMNSAnimation+Duration.m in Sources */,
-				9FF371C12C69A6BB005F9CC5 /* CAreaSettingWindowController.swift in Sources */,
 				BB031B752C47BB090099F7AD /* KMUserListItemCellView.swift in Sources */,
 				ADDF83292B391A5C00A81A4E /* CPDFSelection+PDFListView.m in Sources */,
 				AD8B59A62D2B777700150EA6 /* KMBatchSettingItemViewModel.swift in Sources */,
@@ -15803,7 +15789,6 @@
 				BB2CC5652AF123A300D7A796 /* KMBatchHeader.swift in Sources */,
 				BB451A932CF59F3F003E1565 /* KMTextBoxController.swift in Sources */,
 				BB7648ED29ECEEF400931039 /* KMAppearance.swift in Sources */,
-				9FF371DE2C69B93A005F9CC5 /* CAreaSettingWindowController.swift in Sources */,
 				BB4F7E8A2B0C55E70077EC8C /* KMFilterAuthorLabel.swift in Sources */,
 				AD8B59922D2B777700150EA6 /* KMBatchWatermarkView.swift in Sources */,
 				AD5999372AD7D9C200412F8B /* KMPropertiesViewPopController.swift in Sources */,
@@ -16647,7 +16632,6 @@
 				ADBC2D21299CDA29006280C8 /* NSView+Layer.swift in Sources */,
 				BB2F9ABA2AFCC3AD00F9DD93 /* KMProfileInfo.swift in Sources */,
 				BBE788952CBD2463008086E2 /* ProgressVC.swift in Sources */,
-				9FF371DF2C69B93B005F9CC5 /* CAreaSettingWindowController.swift in Sources */,
 				AD3AAD432B0B7B6C00DE5FE7 /* KMCompareManager.swift in Sources */,
 				9FBA0EFB2900188F001117AF /* KMFastToolCollectionView.swift in Sources */,
 				ADFA8F062B5666B6002595A4 /* KMAotuFlowExtension.swift in Sources */,