Browse Source

【EditPDF】图片类型属性面板补充UI

tangchao 8 months ago
parent
commit
b87a603f12

+ 21 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFHeightIcon.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "ic.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 79 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFHeightIcon.imageset/ic.pdf

@@ -0,0 +1,79 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 4.000000 3.197266 cm
+0.460000 0.465714 0.500000 scn
+7.369141 0.000000 m
+6.220703 0.000000 l
+6.220703 4.470703 l
+1.148438 4.470703 l
+1.148438 0.000000 l
+0.000000 0.000000 l
+0.000000 9.802734 l
+1.148438 9.802734 l
+1.148438 5.502930 l
+6.220703 5.502930 l
+6.220703 9.802734 l
+7.369141 9.802734 l
+7.369141 0.000000 l
+h
+f
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  387
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 16.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000000477 00000 n
+0000000499 00000 n
+0000000672 00000 n
+0000000746 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+805
+%%EOF

+ 89 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFWhExchange.imageset/35.pdf

@@ -0,0 +1,89 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 12.000000 8.000000 cm
+0.056471 0.065882 0.080000 scn
+7.000000 6.000000 m
+7.000000 4.000000 l
+7.000000 2.343145 5.656854 1.000000 4.000000 1.000000 c
+2.343146 1.000000 1.000000 2.343145 1.000000 4.000000 c
+1.000000 6.000000 l
+0.000000 6.000000 l
+0.000000 4.000000 l
+0.000000 1.790861 1.790861 0.000000 4.000000 0.000000 c
+6.209139 0.000000 8.000000 1.790861 8.000000 4.000000 c
+8.000000 6.000000 l
+7.000000 6.000000 l
+h
+7.000000 10.000000 m
+8.000000 10.000000 l
+8.000000 12.000000 l
+8.000000 14.209139 6.209139 16.000000 4.000000 16.000000 c
+1.790861 16.000000 0.000000 14.209139 0.000000 12.000000 c
+0.000000 10.000000 l
+1.000000 10.000000 l
+1.000000 12.000000 l
+1.000000 13.656855 2.343146 15.000000 4.000000 15.000000 c
+5.656854 15.000000 7.000000 13.656855 7.000000 12.000000 c
+7.000000 10.000000 l
+h
+f*
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  878
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 32.000000 32.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000000968 00000 n
+0000000990 00000 n
+0000001163 00000 n
+0000001237 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1296
+%%EOF

+ 21 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFWhExchange.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "35.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 21 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFWidthIcon.imageset/Contents.json

@@ -0,0 +1,21 @@
+{
+  "images" : [
+    {
+      "filename" : "ic.pdf",
+      "idiom" : "universal"
+    },
+    {
+      "appearances" : [
+        {
+          "appearance" : "luminosity",
+          "value" : "dark"
+        }
+      ],
+      "idiom" : "universal"
+    }
+  ],
+  "info" : {
+    "author" : "xcode",
+    "version" : 1
+  }
+}

+ 89 - 0
PDF Office/PDF Master/Class/Appearance/Image.xcassets/EditPDF/KMImageNameEditPDFWidthIcon.imageset/ic.pdf

@@ -0,0 +1,89 @@
+%PDF-1.7
+
+1 0 obj
+  << >>
+endobj
+
+2 0 obj
+  << /Length 3 0 R >>
+stream
+/DeviceRGB CS
+/DeviceRGB cs
+q
+1.000000 0.000000 -0.000000 1.000000 2.000000 3.000000 cm
+0.460000 0.465714 0.500000 scn
+13.000001 9.000000 m
+10.212989 0.000000 l
+8.669693 0.000000 l
+6.754190 6.442383 l
+6.681564 6.688477 6.633147 6.966797 6.608939 7.277344 c
+6.572626 7.277344 l
+6.554470 7.066406 6.490922 6.793945 6.381983 6.459961 c
+4.303073 0.000000 l
+2.814246 0.000000 l
+0.000000 9.000000 l
+1.561453 9.000000 l
+3.486034 2.232422 l
+3.546555 2.027344 3.588920 1.757812 3.613129 1.423828 c
+3.685754 1.423828 l
+3.703911 1.681641 3.758380 1.957031 3.849162 2.250000 c
+5.991621 9.000000 l
+7.353352 9.000000 l
+9.277933 2.214844 l
+9.338455 1.998047 9.383846 1.728516 9.414106 1.406250 c
+9.486732 1.406250 l
+9.498837 1.634766 9.550280 1.904297 9.641062 2.214844 c
+11.529330 9.000000 l
+13.000001 9.000000 l
+h
+f
+n
+Q
+
+endstream
+endobj
+
+3 0 obj
+  807
+endobj
+
+4 0 obj
+  << /Annots []
+     /Type /Page
+     /MediaBox [ 0.000000 0.000000 16.000000 16.000000 ]
+     /Resources 1 0 R
+     /Contents 2 0 R
+     /Parent 5 0 R
+  >>
+endobj
+
+5 0 obj
+  << /Kids [ 4 0 R ]
+     /Count 1
+     /Type /Pages
+  >>
+endobj
+
+6 0 obj
+  << /Pages 5 0 R
+     /Type /Catalog
+  >>
+endobj
+
+xref
+0 7
+0000000000 65535 f
+0000000010 00000 n
+0000000034 00000 n
+0000000897 00000 n
+0000000919 00000 n
+0000001092 00000 n
+0000001166 00000 n
+trailer
+<< /ID [ (some) (id) ]
+   /Root 6 0 R
+   /Size 7
+>>
+startxref
+1225
+%%EOF

+ 227 - 67
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.swift

@@ -7,6 +7,82 @@
 
 import Cocoa
 
+class KMTextFieldItemView: NSView {
+    private lazy var textF_: NSTextField = {
+        let view = NSTextField()
+        view.drawsBackground = false
+        view.isBezeled = false
+        return view
+    }()
+    
+    private lazy var unitTF_: NSTextField = {
+        let view = NSTextField(labelWithString: "")
+        return view
+    }()
+    
+    private lazy var unitIconIv_: NSImageView = {
+        let view = NSImageView()
+        return view
+    }()
+    
+    var unitString: String = "" {
+        didSet {
+            self.unitTF_.stringValue = self.unitString
+        }
+    }
+    
+    var unitAttriString: NSAttributedString = NSAttributedString(string: "") {
+        didSet {
+            self.unitTF_.attributedStringValue = self.unitAttriString
+        }
+    }
+    
+    var unitIcon: NSImage? {
+        didSet {
+            self.unitIconIv_.image = self.unitIcon
+        }
+    }
+    
+    required init?(coder: NSCoder) {
+        super.init(coder: coder)
+        
+        self.initSubviews()
+    }
+    
+    override init(frame frameRect: NSRect) {
+        super.init(frame: frameRect)
+        
+        self.initSubviews()
+    }
+    
+    func initSubviews() {
+        self.addSubview(self.textF_)
+        self.addSubview(self.unitTF_)
+        self.addSubview(self.unitIconIv_)
+        
+        self.textF_.km_add_left_constraint(constant: 4)
+//        self.textF_.km_add_right_constraint(equalTo: self.unitTF_, attribute: .left, constant: -4)
+        self.textF_.km_add_right_constraint(constant: -(8+16+4))
+        self.textF_.km_add_centerY_constraint()
+        
+        self.unitTF_.km_add_right_constraint(constant: -4)
+        self.unitTF_.km_add_centerY_constraint()
+        
+        self.unitIconIv_.km_add_right_constraint(constant: -8)
+        self.unitIconIv_.km_add_centerY_constraint()
+        self.unitIconIv_.km_add_size_constraint(size: .init(width: 16, height: 16))
+    }
+    
+    override func draw(_ dirtyRect: NSRect) {
+        super.draw(dirtyRect)
+        
+//        let ctx = NSGraphicsContext.current?.cgContext
+//        ctx?.saveGState()
+//        ctx?.setLineWidth(1)
+//        ctx?.restoreGState()
+    }
+}
+
 public enum KMOperationState {
     case none
     case began
@@ -25,15 +101,31 @@ protocol KMEditImagePropertyViewControllerDelegate: NSObject {
     func editImagePropertyViewControllerDidChanged(controller: KMEditImagePropertyViewController, type: KMEditImagePropertyViewControllerChangeType)
 }
 
+// 12 °
 class KMEditImagePropertyViewController: NSViewController {
 
     @IBOutlet weak var backgroundView: NSView!
     @IBOutlet weak var titleLabel: NSTextField!
-    @IBOutlet weak var editImageView: NSImageView!
+//    @IBOutlet weak var editImageView: NSImageView!
     
     @IBOutlet weak var headerBox: NSBox!
     @IBOutlet weak var headerBoxHeight: NSLayoutConstraint!
-    @IBOutlet weak var headerBoxMaginWidthConstraint: NSLayoutConstraint!
+//    @IBOutlet weak var headerBoxMaginWidthConstraint: NSLayoutConstraint!
+    
+    @IBOutlet weak var whTitleLabel: NSTextField!
+    @IBOutlet weak var wTextFieldItemView: KMTextFieldItemView!
+    @IBOutlet weak var whBox: NSBox!
+    @IBOutlet weak var hTextFieldItemView: KMTextFieldItemView!
+    
+    var whVC: KMDesignButton?
+    
+    @IBOutlet weak var rotateTitleLabel: NSTextField!
+    @IBOutlet weak var rotateTextFieldItemView: KMTextFieldItemView!
+    @IBOutlet weak var leftRotateBox: NSBox!
+    @IBOutlet weak var rightRotateBox: NSBox!
+    
+    var leftRotateVC: KMDesignButton?
+    var rightRotateVC: KMDesignButton?
     
     @IBOutlet weak var opacityTitleLabel: NSTextField!
     @IBOutlet weak var opacitySlider: NSSlider!
@@ -41,21 +133,28 @@ class KMEditImagePropertyViewController: NSViewController {
     @IBOutlet weak var opacityBoxBottomMaginConstraint: NSLayoutConstraint!
     @IBOutlet weak var opacityBoxTopConstraint: NSLayoutConstraint!
     
+    @IBOutlet weak var turnOverTitleLabel: NSTextField!
+    @IBOutlet weak var reverseXBox: NSView!
+    @IBOutlet weak var reverseYBox: NSView!
+    
+    var reverseXVC: KMDesignButton?
+    var reverseYVC: KMDesignButton?
+    
     @IBOutlet weak var cropBox: NSBox!
     @IBOutlet weak var confirmBox: NSBox!
     @IBOutlet weak var cancelBox: NSBox!
     @IBOutlet weak var replaceBox: NSBox!
     @IBOutlet weak var exportBox: NSBox!
 
-    @IBOutlet weak var imageBox: NSBox!
-    @IBOutlet weak var imageBoxHeight: NSLayoutConstraint!
+//    @IBOutlet weak var imageBox: NSBox!
+//    @IBOutlet weak var imageBoxHeight: NSLayoutConstraint!
     @IBOutlet weak var opacityBoxHeight: NSLayoutConstraint!
     @IBOutlet weak var buttonBoxHeight: NSLayoutConstraint!
     @IBOutlet weak var buttonBox: NSBox!
-    @IBOutlet weak var rotateLeftBox: NSBox!
-    @IBOutlet weak var rotateRightBox: NSBox!
-    @IBOutlet weak var flipHorizontalBox: NSBox!
-    @IBOutlet weak var flipVerticalBox: NSBox!
+//    @IBOutlet weak var rotateLeftBox: NSBox!
+//    @IBOutlet weak var rotateRightBox: NSBox!
+//    @IBOutlet weak var flipHorizontalBox: NSBox!
+//    @IBOutlet weak var flipVerticalBox: NSBox!
     
     @IBOutlet weak var alignmentView: KMEditPropertyAlignmentView!
     @IBOutlet weak var alignmentViewTopConstraint: NSLayoutConstraint!
@@ -73,6 +172,8 @@ class KMEditImagePropertyViewController: NSViewController {
     var flipVerticalVC: KMDesignPropertySelector?
     var opacityVC: KMDesignSelect?
     
+    @IBOutlet weak var toolsTitleLabel: NSTextField!
+    
     var cropVC: KMDesignButton?
     var confirmVC: KMDesignButton?
     var cancelVC: KMDesignButton?
@@ -151,19 +252,54 @@ class KMEditImagePropertyViewController: NSViewController {
 //        self.opacityTitleLabel.textColor = NSColor.km_init(hex: "#616469")
         self.opacityTitleLabel.textColor = KMAppearance.Layout.h0Color()
         
-        self.imageBox.borderWidth = 1
+//        self.imageBox.borderWidth = 1
 //        self.imageBox.borderColor = NSColor.km_init(hex: "#DFE1E5")
-        self.imageBox.cornerRadius = 4
+//        self.imageBox.cornerRadius = 4
 //        self.imageBox.fillColor = NSColor.km_init(hex: "#FFFFFF")
         
-        self.imageBox.borderColor = KMAppearance.Interactive.s0Color()
-        self.imageBox.fillColor = KMAppearance.Layout.l1Color()
-        self.imageBox.backgroundColor(KMAppearance.Layout.l1Color())
+//        self.imageBox.borderColor = KMAppearance.Interactive.s0Color()
+//        self.imageBox.fillColor = KMAppearance.Layout.l1Color()
+//        self.imageBox.backgroundColor(KMAppearance.Layout.l1Color())
+        
+        self.whTitleLabel.stringValue = NSLocalizedString("Size", comment: "")
+        for itemView in [self.wTextFieldItemView, self.hTextFieldItemView, self.rotateTextFieldItemView] {
+            itemView?.wantsLayer = true
+            itemView?.layer?.cornerRadius = 4
+            itemView?.layer?.borderWidth = 1
+            itemView?.layer?.borderColor = NSColor(hex: "#DFE1E5").cgColor
+        }
+        self.wTextFieldItemView.unitIcon = NSImage(named: "KMImageNameEditPDFWidthIcon")
+        self.hTextFieldItemView.unitIcon = NSImage(named: "KMImageNameEditPDFHeightIcon")
         
         self.alignmentView.didChange = {[unowned self] view, areasArray, boundsArray in
             self.changeAreasAlign(areas: areasArray, newBounds: boundsArray)
         }
         
+        self.whVC = KMDesignButton(withType: .Image)
+        self.whBox.contentView = self.whVC?.view
+        self.whBox.borderWidth = 0
+        self.whVC?.target = self
+        self.whVC?.action = #selector(whAction)
+        self.whVC?.image = NSImage(named: "KMImageNameEditPDFWhExchange")!
+        self.whVC?.pagination()
+        
+        self.rotateTitleLabel.stringValue = NSLocalizedString("Rotate", comment: "")
+        self.leftRotateVC = KMDesignButton(withType: .Image)
+        self.leftRotateBox.contentView = self.leftRotateVC?.view
+        self.leftRotateBox.borderWidth = 0
+        self.leftRotateVC?.target = self
+        self.leftRotateVC?.action = #selector(leftRotationImageAction)
+        self.leftRotateVC?.image = NSImage(named: "KMImageNameEditPDFRotationLeft")!
+        self.leftRotateVC?.pagination()
+        
+        self.rightRotateVC = KMDesignButton(withType: .Image)
+        self.rightRotateBox.contentView = self.rightRotateVC?.view
+        self.rightRotateBox.borderWidth = 0
+        self.rightRotateVC?.target = self
+        self.rightRotateVC?.action = #selector(rightRotationImageAction)
+        self.rightRotateVC?.image = NSImage(named: "KMImageNameEditPDFRotationRight")!
+        self.rightRotateVC?.pagination()
+        
         opacityVC = KMDesignSelect.init(withType: .PopButton)
         opacityBox.contentView = opacityVC?.view
         opacityBox.fillColor = KMAppearance.Layout.bgDrakColor()
@@ -187,42 +323,42 @@ class KMEditImagePropertyViewController: NSViewController {
         
         
         //alignment
-        rotateLeftVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
-        rotateLeftBox.contentView = rotateLeftVC?.view
-        rotateLeftBox.fillColor = NSColor.clear
-        rotateLeftVC?.target = self
-        rotateLeftVC?.action = #selector(leftRotationImageAction)
-        rotateLeftVC?.image = NSImage(named: "KMImageNameEditPDFRotationLeft")!
-        rotateLeftVC?._image_disabled = NSImage(named: "KMImageNameEditPDFRotationLeft")!
-        rotateLeftVC?.background_hov = KMAppearance.buttonHoverColor()
-        rotateLeftVC?.updateUI()
-        
-        rotateRightVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
-        rotateRightBox.contentView = rotateRightVC?.view
-        rotateRightBox.fillColor = NSColor.clear
-        rotateRightVC?.target = self
-        rotateRightVC?.action = #selector(rightRotationImageAction)
-        rotateRightVC?.image = NSImage(named: "KMImageNameEditPDFRotationRight")!
-        rotateRightVC?.background_hov = KMAppearance.buttonHoverColor()
-        rotateRightVC?.updateUI()
-        
-        flipHorizontalVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
-        flipHorizontalBox.contentView = flipHorizontalVC?.view
-        flipHorizontalBox.fillColor = NSColor.clear
-        flipHorizontalVC?.target = self
-        flipHorizontalVC?.action = #selector(flipHorizontalImageAction)
-        flipHorizontalVC?.image = NSImage(named: "KMImageNameEditPDFFlipHorizontal")!
-        flipHorizontalVC?.background_hov = KMAppearance.buttonHoverColor()
-        flipHorizontalVC?.updateUI()
-        
-        flipVerticalVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
-        flipVerticalBox.contentView = flipVerticalVC?.view
-        flipVerticalBox.fillColor = NSColor.clear
-        flipVerticalVC?.target = self
-        flipVerticalVC?.action = #selector(flipVerticalImageAction)
-        flipVerticalVC?.image = NSImage(named: "KMImageNameEditPDFFlipVertical")!
-        flipVerticalVC?.background_hov = KMAppearance.buttonHoverColor()
-        flipVerticalVC?.updateUI()
+//        rotateLeftVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
+////        rotateLeftBox.contentView = rotateLeftVC?.view
+////        rotateLeftBox.fillColor = NSColor.clear
+//        rotateLeftVC?.target = self
+//        rotateLeftVC?.action = #selector(leftRotationImageAction)
+//        rotateLeftVC?.image = NSImage(named: "KMImageNameEditPDFRotationLeft")!
+//        rotateLeftVC?._image_disabled = NSImage(named: "KMImageNameEditPDFRotationLeft")!
+//        rotateLeftVC?.background_hov = KMAppearance.buttonHoverColor()
+//        rotateLeftVC?.updateUI()
+        
+//        rotateRightVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
+////        rotateRightBox.contentView = rotateRightVC?.view
+////        rotateRightBox.fillColor = NSColor.clear
+//        rotateRightVC?.target = self
+//        rotateRightVC?.action = #selector(rightRotationImageAction)
+//        rotateRightVC?.image = NSImage(named: "KMImageNameEditPDFRotationRight")!
+//        rotateRightVC?.background_hov = KMAppearance.buttonHoverColor()
+//        rotateRightVC?.updateUI()
+        
+//        flipHorizontalVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
+////        flipHorizontalBox.contentView = flipHorizontalVC?.view
+////        flipHorizontalBox.fillColor = NSColor.clear
+//        flipHorizontalVC?.target = self
+//        flipHorizontalVC?.action = #selector(flipHorizontalImageAction)
+//        flipHorizontalVC?.image = NSImage(named: "KMImageNameEditPDFFlipHorizontal")!
+//        flipHorizontalVC?.background_hov = KMAppearance.buttonHoverColor()
+//        flipHorizontalVC?.updateUI()
+        
+//        flipVerticalVC = KMDesignPropertySelector.init(withType: .Icon_Btn)
+////        flipVerticalBox.contentView = flipVerticalVC?.view
+////        flipVerticalBox.fillColor = NSColor.clear
+//        flipVerticalVC?.target = self
+//        flipVerticalVC?.action = #selector(flipVerticalImageAction)
+//        flipVerticalVC?.image = NSImage(named: "KMImageNameEditPDFFlipVertical")!
+//        flipVerticalVC?.background_hov = KMAppearance.buttonHoverColor()
+//        flipVerticalVC?.updateUI()
         
         // 设置默认状态下的滑块图像
         let customCell = CustomSliderCell()
@@ -235,6 +371,26 @@ class KMEditImagePropertyViewController: NSViewController {
         opacitySlider.action = #selector(sliderValueChanged(_:))
         opacitySlider.isContinuous = false
         
+        self.turnOverTitleLabel.stringValue = NSLocalizedString("Turn over", comment: "")
+        self.reverseXVC = KMDesignButton(withType: .Image)
+        self.reverseXBox.addSubview(self.reverseXVC!.view)
+        self.reverseXVC?.view.frame = self.reverseXBox.bounds
+        self.reverseXVC?.view.autoresizingMask = [.width, .height]
+        self.reverseXVC?.target = self
+        self.reverseXVC?.action = #selector(flipHorizontalImageAction)
+        self.reverseXVC?.image = NSImage(named: "KMImageNameEditPDFReverseX")!
+        self.reverseXVC?.pagination()
+        
+        self.reverseYVC = KMDesignButton(withType: .Image)
+        self.reverseYBox.addSubview(self.reverseYVC!.view)
+        self.reverseYVC?.view.frame = self.reverseXBox.bounds
+        self.reverseYVC?.view.autoresizingMask = [.width, .height]
+        self.reverseYVC?.target = self
+        self.reverseYVC?.action = #selector(flipVerticalImageAction)
+        self.reverseYVC?.image = NSImage(named: "KMImageNameEditPDFReverseY")!
+        self.reverseYVC?.pagination()
+        
+        self.toolsTitleLabel.stringValue = NSLocalizedString("Tools", comment: "")
         
         cropVC = KMDesignButton.init(withType: .Text)
         cropBox.contentView = cropVC?.view
@@ -375,19 +531,19 @@ class KMEditImagePropertyViewController: NSViewController {
                 self.listView.selectImageAreas = imagesAreas.first
                 self.headerBox.isHidden = false
                 self.headerBoxHeight.constant = 176
-                self.headerBoxMaginWidthConstraint.constant = 8
-                self.imageBox.isHidden = false
-                self.imageBoxHeight.constant = 88
+//                self.headerBoxMaginWidthConstraint.constant = 8
+//                self.imageBox.isHidden = false
+//                self.imageBoxHeight.constant = 88
                 self.opacityBox.isHidden = false
                 self.opacityBoxHeight.constant = 56
-                self.opacityBoxBottomMaginConstraint.constant = 16
+                self.opacityBoxBottomMaginConstraint.constant = 66
                 self.opacityBoxTopConstraint.constant = 16
                 self.buttonBox.isHidden = false
 //                self.cropBox.isHidden = false
 //                self.cancelBox.isHidden = false
 //                self.replaceBox.isHidden = false
-                self.buttonBoxHeight.constant = 112
-                self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
+                self.buttonBoxHeight.constant = 112+16
+//                self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
                 self.alignmentViewTopConstraint.constant = 16
 
                 let opacity: CGFloat = self.listView.opacity(for: imagesAreas.first)
@@ -395,9 +551,9 @@ class KMEditImagePropertyViewController: NSViewController {
             } else if imagesAreas.count > 1 && imagesAreas.count == areas.count { //多选图片
                 self.headerBox.isHidden = false
                 self.headerBoxHeight.constant = 82
-                self.headerBoxMaginWidthConstraint.constant = 0
-                self.imageBox.isHidden = true
-                self.imageBoxHeight.constant = 0
+//                self.headerBoxMaginWidthConstraint.constant = 0
+//                self.imageBox.isHidden = true
+//                self.imageBoxHeight.constant = 0
                 self.opacityBox.isHidden = false
                 self.opacityBoxHeight.constant = 56
                 self.opacityBoxBottomMaginConstraint.constant = 0
@@ -418,13 +574,13 @@ class KMEditImagePropertyViewController: NSViewController {
                 self.updateImageAreasOpacity(opacity: opacity, state: .ended, needListView: false)
             } else if imagesAreas.count > 0 && imagesAreas.count != areas.count { //多选图片跟文字
                 self.opacityBoxBottomMaginConstraint.constant = 0
-                self.headerBoxMaginWidthConstraint.constant = 0
+//                self.headerBoxMaginWidthConstraint.constant = 0
                 self.alignmentViewTopConstraint.constant = 0
                 self.opacityBoxTopConstraint.constant = 0
 //                self.headerBox.isHidden = true
                 self.headerBoxHeight.constant = 48
-                self.imageBox.isHidden = true
-                self.imageBoxHeight.constant = 0
+//                self.imageBox.isHidden = true
+//                self.imageBoxHeight.constant = 0
                 self.opacityBox.isHidden = true
                 self.opacityBoxHeight.constant = 0
                 self.buttonBox.isHidden = true
@@ -486,10 +642,10 @@ class KMEditImagePropertyViewController: NSViewController {
 //            self.listView.editingAreas()!.count == 1 &&
             if (self.listView.editingAreas()?.first is CPDFEditImageArea) {
                 self.listView.selectImageAreas = self.listView.editingAreas()!.first as? CPDFEditImageArea
-                self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
+//                self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
                 self.opacitySlider.objectValue = self.listView.opacity(for: self.listView.selectImageAreas)
                 self.opacityVC?.stringValue = Int(opacity * 100).description + "%"
-                self.editImageView.alphaValue = opacity
+//                self.editImageView.alphaValue = opacity
             }
         }
     }
@@ -537,6 +693,10 @@ extension KMEditImagePropertyViewController {
         self.updateImageAreasOpacity(opacity:CGFloat(sliderValue), state: .changed)
     }
     
+    @objc func whAction(_ sender: AnyObject) {
+        
+    }
+    
     @IBAction func rightRotationImageAction(_ sender: Any) {
         if self.listView.editingAreas()?.count ?? 0 < 1 {
             return
@@ -547,7 +707,7 @@ extension KMEditImagePropertyViewController {
             let imageArea = areas!.first as! CPDFEditImageArea
             self.listView.rotate(with: imageArea, rotate: 90)
             self.listView.selectImageAreas = imageArea
-            self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
+//            self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
         } else if areas!.count > 1 {
             for imagesArea in imagesAreas {
                 self.listView.rotate(with: imagesArea, rotate: 90)
@@ -568,7 +728,7 @@ extension KMEditImagePropertyViewController {
             if self.listView.editingAreas()!.count == 1 && (self.listView.editingAreas()!.first is CPDFEditImageArea) {
                 self.listView.selectImageAreas = self.listView.editingAreas()!.first as? CPDFEditImageArea
             }
-            self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
+//            self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
         } else {
             for imagesArea in imagesAreas {
                 self.listView.rotate(with: imagesArea, rotate: -90)
@@ -589,7 +749,7 @@ extension KMEditImagePropertyViewController {
                 if item is CPDFEditImageArea {
                     self.listView.horizontalMirror(with: item as? CPDFEditImageArea)
                     if areas?.count == 1 {
-                        self.editImageView.image = (item as AnyObject).thumbnailImage
+//                        self.editImageView.image = (item as AnyObject).thumbnailImage
                     }
                 } else {
                     for imagesArea in imagesAreas {
@@ -612,7 +772,7 @@ extension KMEditImagePropertyViewController {
             for item in areas! {
                 if item is CPDFEditImageArea {
                     self.listView.verticalMirror(with: item as? CPDFEditImageArea)
-                    self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
+//                    self.editImageView.image = self.listView.selectImageAreas.thumbnailImage
                 } else {
                     for imagesArea in imagesAreas {
                         self.listView.verticalMirror(with: imagesArea)

+ 170 - 117
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.xib

@@ -1,8 +1,8 @@
 <?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">
+<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="22505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="21507"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -16,15 +16,11 @@
                 <outlet property="cancelBox" destination="vr8-ml-OC0" id="kUB-8H-yo0"/>
                 <outlet property="confirmBox" destination="xPh-yv-2Ch" id="sdk-Wa-ZAR"/>
                 <outlet property="cropBox" destination="AAt-gQ-hOo" id="MP2-gY-56R"/>
-                <outlet property="editImageView" destination="1u5-mk-ax5" id="The-iv-pCn"/>
                 <outlet property="exportBox" destination="8lZ-Kd-hWi" id="36X-Q5-M0Z"/>
-                <outlet property="flipHorizontalBox" destination="yYT-gS-HFj" id="lf8-47-4V7"/>
-                <outlet property="flipVerticalBox" destination="qRi-Cl-0oE" id="ice-B3-agn"/>
+                <outlet property="hTextFieldItemView" destination="x7h-ZX-NVn" id="Wc0-I9-yoe"/>
                 <outlet property="headerBox" destination="6yW-By-Sg9" id="7g9-Ja-zZN"/>
                 <outlet property="headerBoxHeight" destination="2Nc-Uj-EEg" id="g90-0Y-Ajz"/>
-                <outlet property="headerBoxMaginWidthConstraint" destination="qGk-qT-mBb" id="2qA-NH-y7u"/>
-                <outlet property="imageBox" destination="5y4-Y4-XuO" id="29i-qF-x7l"/>
-                <outlet property="imageBoxHeight" destination="lWK-rG-QR4" id="Gqy-86-ey9"/>
+                <outlet property="leftRotateBox" destination="AY8-Zu-th7" id="48R-Eo-XLL"/>
                 <outlet property="noBackgroundView" destination="2cv-Bg-EQU" id="cnu-G8-tbS"/>
                 <outlet property="noImageView" destination="H4i-ha-vev" id="gD9-lE-GQS"/>
                 <outlet property="noSubtitleLabel" destination="xT8-m7-QlU" id="jpw-rp-mZf"/>
@@ -36,10 +32,18 @@
                 <outlet property="opacitySlider" destination="Z0O-zt-cBQ" id="lW1-SW-S3f"/>
                 <outlet property="opacityTitleLabel" destination="XPI-yz-g9u" id="NH7-jW-9Vn"/>
                 <outlet property="replaceBox" destination="dSf-T8-3R3" id="WIv-EB-D9V"/>
-                <outlet property="rotateLeftBox" destination="hsv-dq-f4W" id="FPi-g7-M8b"/>
-                <outlet property="rotateRightBox" destination="q4N-oj-5zS" id="Z4f-ct-ofL"/>
+                <outlet property="reverseXBox" destination="pHm-Cq-n6Z" id="ak2-Ac-aCQ"/>
+                <outlet property="reverseYBox" destination="TIB-HX-1bX" id="bjx-v7-q3V"/>
+                <outlet property="rightRotateBox" destination="aan-vb-NGS" id="wKm-ld-4Bc"/>
+                <outlet property="rotateTextFieldItemView" destination="VIp-mo-ECx" id="i18-Uy-KWH"/>
+                <outlet property="rotateTitleLabel" destination="hif-FL-3vF" id="YSr-DN-HIC"/>
                 <outlet property="titleLabel" destination="x6y-yu-lpY" id="Vpa-k7-N5v"/>
+                <outlet property="toolsTitleLabel" destination="dbS-0w-mS5" id="ktz-JI-eEj"/>
+                <outlet property="turnOverTitleLabel" destination="eCo-1Z-05J" id="pho-EN-qZP"/>
                 <outlet property="view" destination="rCh-Bx-sa8" id="Yfd-9x-Vhe"/>
+                <outlet property="wTextFieldItemView" destination="PmV-dZ-BhA" id="eib-qo-q7Z"/>
+                <outlet property="whBox" destination="9WM-Yr-3Hr" id="n6t-nx-pXp"/>
+                <outlet property="whTitleLabel" destination="hgU-r9-q9f" id="DC1-LO-qvZ"/>
             </connections>
         </customObject>
         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
@@ -56,13 +60,13 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <box borderType="none" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="qjn-Az-nK1">
-                                <rect key="frame" x="10" y="252" width="240" height="56"/>
+                                <rect key="frame" x="7" y="248" width="246" height="62"/>
                                 <view key="contentView" id="vpF-9O-Amq">
-                                    <rect key="frame" x="0.0" y="0.0" width="240" height="56"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="246" height="62"/>
                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                     <subviews>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XPI-yz-g9u">
-                                            <rect key="frame" x="-2" y="40" width="49" height="16"/>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XPI-yz-g9u">
+                                            <rect key="frame" x="-2" y="46" width="49" height="16"/>
                                             <textFieldCell key="cell" lineBreakMode="clipping" title="opacity" id="LXH-cy-YvE">
                                                 <font key="font" usesAppearanceFont="YES"/>
                                                 <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -70,7 +74,7 @@
                                             </textFieldCell>
                                         </textField>
                                         <customView translatesAutoresizingMaskIntoConstraints="NO" id="GOt-dw-CGs">
-                                            <rect key="frame" x="0.0" y="0.0" width="240" height="32"/>
+                                            <rect key="frame" x="0.0" y="6" width="246" height="32"/>
                                             <subviews>
                                                 <slider verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Z0O-zt-cBQ">
                                                     <rect key="frame" x="-2" y="0.0" width="144" height="28"/>
@@ -80,7 +84,7 @@
                                                     <sliderCell key="cell" state="on" alignment="left" maxValue="1" doubleValue="1" tickMarkPosition="above" sliderType="linear" id="RhD-fs-Ulr"/>
                                                 </slider>
                                                 <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="9ig-7b-xDq">
-                                                    <rect key="frame" x="158" y="0.0" width="82" height="32"/>
+                                                    <rect key="frame" x="164" y="0.0" width="82" height="32"/>
                                                     <view key="contentView" id="fr5-qz-wFC">
                                                         <rect key="frame" x="0.0" y="0.0" width="82" height="32"/>
                                                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@@ -113,116 +117,152 @@
                                     <constraint firstAttribute="height" constant="56" id="pQN-DI-xiY"/>
                                 </constraints>
                             </box>
+                            <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="eqj-Xy-OX5">
+                                <rect key="frame" x="8" y="202" width="244" height="50"/>
+                                <view key="contentView" id="zu8-9v-SFi">
+                                    <rect key="frame" x="0.0" y="0.0" width="244" height="50"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                    <subviews>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eCo-1Z-05J">
+                                            <rect key="frame" x="-2" y="34" width="37" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="7YT-SN-29T">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="pHm-Cq-n6Z">
+                                            <rect key="frame" x="0.0" y="2" width="32" height="32"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="32" id="oOn-jX-72Q"/>
+                                                <constraint firstAttribute="width" constant="32" id="pvO-Es-hOd"/>
+                                            </constraints>
+                                        </customView>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="TIB-HX-1bX">
+                                            <rect key="frame" x="40" y="2" width="32" height="32"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="32" id="9P6-QH-u9g"/>
+                                                <constraint firstAttribute="height" constant="32" id="GGr-l4-f11"/>
+                                            </constraints>
+                                        </customView>
+                                    </subviews>
+                                    <constraints>
+                                        <constraint firstItem="TIB-HX-1bX" firstAttribute="leading" secondItem="pHm-Cq-n6Z" secondAttribute="trailing" constant="8" id="B37-Tv-bom"/>
+                                        <constraint firstItem="pHm-Cq-n6Z" firstAttribute="top" secondItem="eCo-1Z-05J" secondAttribute="bottom" id="GoE-2W-WAa"/>
+                                        <constraint firstItem="pHm-Cq-n6Z" firstAttribute="leading" secondItem="zu8-9v-SFi" secondAttribute="leading" id="Rbw-f7-88Z"/>
+                                        <constraint firstItem="TIB-HX-1bX" firstAttribute="centerY" secondItem="pHm-Cq-n6Z" secondAttribute="centerY" id="dCL-JX-XD8"/>
+                                        <constraint firstItem="eCo-1Z-05J" firstAttribute="top" secondItem="zu8-9v-SFi" secondAttribute="top" id="fh4-Q9-Yv2"/>
+                                        <constraint firstItem="eCo-1Z-05J" firstAttribute="leading" secondItem="zu8-9v-SFi" secondAttribute="leading" id="ixR-CK-Py4"/>
+                                    </constraints>
+                                </view>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="50" id="Ijq-FJ-Uda"/>
+                                </constraints>
+                            </box>
                             <box borderType="none" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="6yW-By-Sg9">
-                                <rect key="frame" x="0.0" y="324" width="260" height="176"/>
+                                <rect key="frame" x="-3" y="320" width="266" height="182"/>
                                 <view key="contentView" id="IgG-3G-s7G">
-                                    <rect key="frame" x="0.0" y="0.0" width="260" height="176"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="266" height="182"/>
                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                     <subviews>
-                                        <box boxType="custom" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="5y4-Y4-XuO">
-                                            <rect key="frame" x="16" y="40" width="228" height="88"/>
-                                            <view key="contentView" id="dSO-bL-F8j">
-                                                <rect key="frame" x="0.0" y="0.0" width="228" height="88"/>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hgU-r9-q9f">
+                                            <rect key="frame" x="8" y="116" width="37" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="5Xn-4H-Ifh">
+                                                <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 horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="x6y-yu-lpY">
+                                            <rect key="frame" x="14" y="150" width="41" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Image" id="F3k-6q-vFG">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="PmV-dZ-BhA" customClass="KMTextFieldItemView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                            <rect key="frame" x="10" y="84" width="94" height="32"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" constant="94" id="3qk-F4-LsX"/>
+                                                <constraint firstAttribute="height" constant="32" id="Ftc-BY-iyg"/>
+                                            </constraints>
+                                        </customView>
+                                        <box boxType="custom" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="9WM-Yr-3Hr">
+                                            <rect key="frame" x="112" y="84" width="32" height="32"/>
+                                            <view key="contentView" id="67e-I9-UTy">
+                                                <rect key="frame" x="1" y="1" width="30" height="30"/>
                                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                <subviews>
-                                                    <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="1u5-mk-ax5">
-                                                        <rect key="frame" x="0.0" y="0.0" width="228" height="88"/>
-                                                        <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="8rr-97-nmW"/>
-                                                    </imageView>
-                                                </subviews>
-                                                <constraints>
-                                                    <constraint firstItem="1u5-mk-ax5" firstAttribute="top" secondItem="dSO-bL-F8j" secondAttribute="top" id="Quh-QW-jQd"/>
-                                                    <constraint firstAttribute="trailing" secondItem="1u5-mk-ax5" secondAttribute="trailing" id="Vd3-mN-yNj"/>
-                                                    <constraint firstItem="1u5-mk-ax5" firstAttribute="leading" secondItem="dSO-bL-F8j" secondAttribute="leading" id="edG-u3-AWU"/>
-                                                    <constraint firstAttribute="bottom" secondItem="1u5-mk-ax5" secondAttribute="bottom" id="jrr-sJ-AFf"/>
-                                                </constraints>
                                             </view>
                                             <constraints>
-                                                <constraint firstAttribute="height" constant="88" id="lWK-rG-QR4"/>
+                                                <constraint firstAttribute="height" constant="32" id="NvB-0H-Qeq"/>
+                                                <constraint firstAttribute="width" constant="32" id="VJJ-De-3Zx"/>
                                             </constraints>
                                         </box>
-                                        <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="x6y-yu-lpY">
-                                            <rect key="frame" x="14" y="144" width="41" height="16"/>
-                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Image" id="F3k-6q-vFG">
-                                                <font key="font" usesAppearanceFont="YES"/>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="x7h-ZX-NVn" customClass="KMTextFieldItemView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                            <rect key="frame" x="152" y="84" width="94" height="32"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="32" id="9wX-j7-49e"/>
+                                                <constraint firstAttribute="width" constant="94" id="cEC-d9-E3a"/>
+                                            </constraints>
+                                        </customView>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="hif-FL-3vF">
+                                            <rect key="frame" x="8" y="56" width="37" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="79h-GY-A9Z">
+                                                <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>
-                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="gfr-NP-NnO">
-                                            <rect key="frame" x="16" y="0.0" width="228" height="32"/>
-                                            <subviews>
-                                                <box boxType="custom" borderWidth="0.0" cornerRadius="4" translatesAutoresizingMaskIntoConstraints="NO" id="hsv-dq-f4W">
-                                                    <rect key="frame" x="42" y="0.0" width="32" height="32"/>
-                                                    <view key="contentView" id="Pfc-MX-L5k">
-                                                        <rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
-                                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                    </view>
-                                                    <constraints>
-                                                        <constraint firstAttribute="height" constant="32" id="JdW-pW-5LP"/>
-                                                        <constraint firstAttribute="width" constant="32" id="iH5-PG-aXW"/>
-                                                    </constraints>
-                                                    <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                                </box>
-                                                <box boxType="custom" borderWidth="0.0" cornerRadius="4" translatesAutoresizingMaskIntoConstraints="NO" id="q4N-oj-5zS">
-                                                    <rect key="frame" x="82" y="0.0" width="32" height="32"/>
-                                                    <view key="contentView" id="wjS-FB-lYU">
-                                                        <rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
-                                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                    </view>
-                                                    <constraints>
-                                                        <constraint firstAttribute="width" constant="32" id="5EZ-6c-gfn"/>
-                                                        <constraint firstAttribute="height" constant="32" id="hBF-sS-kUZ"/>
-                                                    </constraints>
-                                                    <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                                </box>
-                                                <box boxType="custom" borderWidth="0.0" cornerRadius="4" translatesAutoresizingMaskIntoConstraints="NO" id="yYT-gS-HFj">
-                                                    <rect key="frame" x="122" y="0.0" width="32" height="32"/>
-                                                    <view key="contentView" id="RHD-oQ-JTw">
-                                                        <rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
-                                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                    </view>
-                                                    <constraints>
-                                                        <constraint firstAttribute="height" constant="32" id="71p-12-RG8"/>
-                                                        <constraint firstAttribute="width" constant="32" id="BCx-1K-6eS"/>
-                                                    </constraints>
-                                                    <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                                </box>
-                                                <box boxType="custom" borderWidth="0.0" cornerRadius="4" translatesAutoresizingMaskIntoConstraints="NO" id="qRi-Cl-0oE">
-                                                    <rect key="frame" x="162" y="0.0" width="32" height="32"/>
-                                                    <view key="contentView" id="31k-6d-FoY">
-                                                        <rect key="frame" x="0.0" y="0.0" width="32" height="32"/>
-                                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                                                    </view>
-                                                    <constraints>
-                                                        <constraint firstAttribute="height" constant="32" id="Q5k-0A-5aH"/>
-                                                        <constraint firstAttribute="width" constant="32" id="ef9-Rh-lWM"/>
-                                                    </constraints>
-                                                    <color key="fillColor" red="0.92156862750000001" green="0.92156862750000001" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                                </box>
-                                            </subviews>
+                                        <customView translatesAutoresizingMaskIntoConstraints="NO" id="VIp-mo-ECx" customClass="KMTextFieldItemView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                            <rect key="frame" x="10" y="16" width="160" height="32"/>
                                             <constraints>
-                                                <constraint firstItem="yYT-gS-HFj" firstAttribute="centerX" secondItem="gfr-NP-NnO" secondAttribute="centerX" constant="24" id="2MB-ek-fnF"/>
-                                                <constraint firstItem="qRi-Cl-0oE" firstAttribute="centerY" secondItem="gfr-NP-NnO" secondAttribute="centerY" id="UMZ-Dn-5Tj"/>
-                                                <constraint firstItem="hsv-dq-f4W" firstAttribute="centerX" secondItem="gfr-NP-NnO" secondAttribute="centerX" constant="-56" id="eZg-g9-0bt"/>
-                                                <constraint firstAttribute="height" constant="32" id="fkv-w0-V7Y"/>
-                                                <constraint firstItem="hsv-dq-f4W" firstAttribute="centerY" secondItem="gfr-NP-NnO" secondAttribute="centerY" id="qhy-TQ-DuR"/>
-                                                <constraint firstItem="qRi-Cl-0oE" firstAttribute="centerX" secondItem="gfr-NP-NnO" secondAttribute="centerX" constant="64" id="va9-J1-BXt"/>
-                                                <constraint firstItem="yYT-gS-HFj" firstAttribute="centerY" secondItem="gfr-NP-NnO" secondAttribute="centerY" id="wit-SG-xA9"/>
-                                                <constraint firstItem="q4N-oj-5zS" firstAttribute="centerY" secondItem="gfr-NP-NnO" secondAttribute="centerY" id="yfQ-5k-A0Z"/>
-                                                <constraint firstItem="q4N-oj-5zS" firstAttribute="centerX" secondItem="gfr-NP-NnO" secondAttribute="centerX" constant="-16" id="zhx-EW-Huq"/>
+                                                <constraint firstAttribute="width" constant="160" id="fBp-iI-vL7"/>
+                                                <constraint firstAttribute="height" constant="32" id="gpq-nb-TT2"/>
                                             </constraints>
                                         </customView>
+                                        <box boxType="custom" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="AY8-Zu-th7">
+                                            <rect key="frame" x="178" y="16" width="32" height="32"/>
+                                            <view key="contentView" id="sHE-gV-Ntc">
+                                                <rect key="frame" x="1" y="1" width="30" height="30"/>
+                                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                            </view>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="32" id="BON-Z9-lFL"/>
+                                                <constraint firstAttribute="width" constant="32" id="gNM-3z-jbV"/>
+                                            </constraints>
+                                        </box>
+                                        <box boxType="custom" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="aan-vb-NGS">
+                                            <rect key="frame" x="218" y="16" width="32" height="32"/>
+                                            <view key="contentView" id="RuT-lT-vTn">
+                                                <rect key="frame" x="1" y="1" width="30" height="30"/>
+                                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                            </view>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="32" id="Jqe-ph-ith"/>
+                                                <constraint firstAttribute="width" constant="32" id="aSz-e3-vIv"/>
+                                            </constraints>
+                                        </box>
                                     </subviews>
                                     <constraints>
-                                        <constraint firstItem="5y4-Y4-XuO" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="16" id="8ld-gc-9Uh"/>
-                                        <constraint firstItem="5y4-Y4-XuO" firstAttribute="top" secondItem="x6y-yu-lpY" secondAttribute="bottom" constant="16" id="CHe-nU-LoU"/>
+                                        <constraint firstItem="aan-vb-NGS" firstAttribute="centerY" secondItem="AY8-Zu-th7" secondAttribute="centerY" id="55I-3l-aHT"/>
+                                        <constraint firstItem="AY8-Zu-th7" firstAttribute="leading" secondItem="VIp-mo-ECx" secondAttribute="trailing" constant="8" id="BnB-6T-kSB"/>
+                                        <constraint firstItem="x7h-ZX-NVn" firstAttribute="leading" secondItem="PmV-dZ-BhA" secondAttribute="trailing" constant="48" id="DP3-N8-lVQ"/>
+                                        <constraint firstItem="9WM-Yr-3Hr" firstAttribute="centerY" secondItem="PmV-dZ-BhA" secondAttribute="centerY" id="FiW-GK-JHx"/>
+                                        <constraint firstItem="hif-FL-3vF" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="10" id="Hop-3W-XWW"/>
+                                        <constraint firstItem="x7h-ZX-NVn" firstAttribute="centerY" secondItem="PmV-dZ-BhA" secondAttribute="centerY" id="Pu5-G0-uQm"/>
                                         <constraint firstItem="x6y-yu-lpY" firstAttribute="top" secondItem="IgG-3G-s7G" secondAttribute="top" constant="16" id="RkI-P7-x7J"/>
-                                        <constraint firstAttribute="trailing" secondItem="5y4-Y4-XuO" secondAttribute="trailing" constant="16" id="SXR-sB-1Iu"/>
                                         <constraint firstItem="x6y-yu-lpY" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="16" id="Ug4-5f-oyS"/>
-                                        <constraint firstItem="gfr-NP-NnO" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="16" id="a1a-xg-MOM"/>
-                                        <constraint firstAttribute="trailing" secondItem="gfr-NP-NnO" secondAttribute="trailing" constant="16" id="bMv-hc-qTX"/>
-                                        <constraint firstItem="gfr-NP-NnO" firstAttribute="top" secondItem="5y4-Y4-XuO" secondAttribute="bottom" constant="8" id="qGk-qT-mBb"/>
+                                        <constraint firstItem="AY8-Zu-th7" firstAttribute="trailing" secondItem="aan-vb-NGS" secondAttribute="leading" constant="-8" id="VtC-Yb-d4b"/>
+                                        <constraint firstItem="AY8-Zu-th7" firstAttribute="centerY" secondItem="VIp-mo-ECx" secondAttribute="centerY" id="YrA-TV-dgi"/>
+                                        <constraint firstItem="PmV-dZ-BhA" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="10" id="aMd-Ep-UKp"/>
+                                        <constraint firstItem="hif-FL-3vF" firstAttribute="bottom" secondItem="VIp-mo-ECx" secondAttribute="top" constant="-8" id="cQU-GB-7fd"/>
+                                        <constraint firstItem="9WM-Yr-3Hr" firstAttribute="leading" secondItem="PmV-dZ-BhA" secondAttribute="trailing" constant="8" id="hTg-41-AkP"/>
+                                        <constraint firstItem="VIp-mo-ECx" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="10" id="hyW-Ed-4Tk"/>
+                                        <constraint firstItem="PmV-dZ-BhA" firstAttribute="top" secondItem="hgU-r9-q9f" secondAttribute="bottom" id="kFJ-Id-V99"/>
+                                        <constraint firstItem="hgU-r9-q9f" firstAttribute="top" secondItem="IgG-3G-s7G" secondAttribute="top" constant="50" id="mHW-3r-V3a"/>
+                                        <constraint firstItem="hif-FL-3vF" firstAttribute="top" secondItem="x7h-ZX-NVn" secondAttribute="bottom" constant="12" id="obY-0q-GUd"/>
+                                        <constraint firstItem="hgU-r9-q9f" firstAttribute="leading" secondItem="IgG-3G-s7G" secondAttribute="leading" constant="10" id="wq0-tg-1cn"/>
                                     </constraints>
                                 </view>
                                 <constraints>
@@ -230,11 +270,19 @@
                                 </constraints>
                             </box>
                             <box boxType="custom" borderType="none" borderWidth="0.0" title="Box" titlePosition="noTitle" translatesAutoresizingMaskIntoConstraints="NO" id="9za-vG-ihA">
-                                <rect key="frame" x="16" y="124" width="228" height="112"/>
+                                <rect key="frame" x="16" y="58" width="228" height="128"/>
                                 <view key="contentView" id="ZP8-0e-bWE">
-                                    <rect key="frame" x="0.0" y="0.0" width="228" height="112"/>
+                                    <rect key="frame" x="0.0" y="0.0" width="228" height="128"/>
                                     <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                                     <subviews>
+                                        <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="dbS-0w-mS5">
+                                            <rect key="frame" x="6" y="112" width="37" height="16"/>
+                                            <textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Tba-gg-Mvz">
+                                                <font key="font" usesAppearanceFont="YES"/>
+                                                <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                        </textField>
                                         <box boxType="custom" borderWidth="0.0" cornerRadius="4" title="Box" translatesAutoresizingMaskIntoConstraints="NO" id="vr8-ml-OC0">
                                             <rect key="frame" x="118" y="80" width="110" height="32"/>
                                             <view key="contentView" id="5bE-LY-pCd">
@@ -295,14 +343,16 @@
                                     </subviews>
                                     <constraints>
                                         <constraint firstItem="8lZ-Kd-hWi" firstAttribute="top" secondItem="dSf-T8-3R3" secondAttribute="bottom" constant="8" id="1cM-b0-HG6"/>
-                                        <constraint firstItem="vr8-ml-OC0" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" id="7eg-5O-Noy"/>
+                                        <constraint firstItem="vr8-ml-OC0" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" constant="16" id="7eg-5O-Noy"/>
                                         <constraint firstItem="dSf-T8-3R3" firstAttribute="leading" secondItem="AAt-gQ-hOo" secondAttribute="leading" id="DLy-ZC-KU3"/>
+                                        <constraint firstItem="dbS-0w-mS5" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" id="Jqr-5w-XfE"/>
+                                        <constraint firstItem="dbS-0w-mS5" firstAttribute="leading" secondItem="ZP8-0e-bWE" secondAttribute="leading" constant="8" id="O7u-oY-fGr"/>
                                         <constraint firstAttribute="trailing" secondItem="AAt-gQ-hOo" secondAttribute="trailing" id="ahn-mQ-E04"/>
-                                        <constraint firstItem="xPh-yv-2Ch" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" id="cR6-6m-qQi"/>
+                                        <constraint firstItem="xPh-yv-2Ch" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" constant="16" id="cR6-6m-qQi"/>
                                         <constraint firstItem="dSf-T8-3R3" firstAttribute="top" secondItem="AAt-gQ-hOo" secondAttribute="bottom" constant="8" id="duj-XY-A1h"/>
                                         <constraint firstAttribute="trailing" secondItem="vr8-ml-OC0" secondAttribute="trailing" id="fu2-Bc-acA"/>
                                         <constraint firstItem="dSf-T8-3R3" firstAttribute="trailing" secondItem="vr8-ml-OC0" secondAttribute="trailing" id="iAd-S8-C1J"/>
-                                        <constraint firstItem="AAt-gQ-hOo" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" id="lsl-8s-FyF"/>
+                                        <constraint firstItem="AAt-gQ-hOo" firstAttribute="top" secondItem="ZP8-0e-bWE" secondAttribute="top" constant="16" id="lsl-8s-FyF"/>
                                         <constraint firstItem="xPh-yv-2Ch" firstAttribute="leading" secondItem="ZP8-0e-bWE" secondAttribute="leading" id="mOu-vx-pMD"/>
                                         <constraint firstItem="AAt-gQ-hOo" firstAttribute="leading" secondItem="ZP8-0e-bWE" secondAttribute="leading" id="n2m-zi-EMC"/>
                                         <constraint firstItem="dSf-T8-3R3" firstAttribute="trailing" secondItem="8lZ-Kd-hWi" secondAttribute="trailing" id="ouP-EF-VqU"/>
@@ -310,11 +360,11 @@
                                     </constraints>
                                 </view>
                                 <constraints>
-                                    <constraint firstAttribute="height" constant="112" id="q4K-hM-hqe"/>
+                                    <constraint firstAttribute="height" constant="128" id="q4K-hM-hqe"/>
                                 </constraints>
                             </box>
-                            <customView hidden="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3AP-7h-Nfc" customClass="KMEditPropertyAlignmentView" customModule="PDF_Reader_Pro" customModuleProvider="target">
-                                <rect key="frame" x="16" y="8" width="228" height="100"/>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="3AP-7h-Nfc" customClass="KMEditPropertyAlignmentView" customModule="PDF_Reader_Pro" customModuleProvider="target">
+                                <rect key="frame" x="16" y="-58" width="228" height="100"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="100" id="fcW-mh-2WD"/>
                                 </constraints>
@@ -330,7 +380,7 @@
                                         </constraints>
                                         <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="VmL-3i-3hR"/>
                                     </imageView>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cBS-ZD-gNe">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="cBS-ZD-gNe">
                                         <rect key="frame" x="94" y="152" width="73" height="16"/>
                                         <textFieldCell key="cell" lineBreakMode="clipping" alignment="center" title="Add Image" id="BJo-l6-NBY">
                                             <font key="font" metaFont="system"/>
@@ -338,7 +388,7 @@
                                             <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
                                         </textFieldCell>
                                     </textField>
-                                    <textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xT8-m7-QlU">
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xT8-m7-QlU">
                                         <rect key="frame" x="44" y="112" width="172" height="40"/>
                                         <constraints>
                                             <constraint firstAttribute="width" constant="168" id="Fhy-XT-ZBN"/>
@@ -363,6 +413,8 @@
                         </subviews>
                         <constraints>
                             <constraint firstAttribute="bottom" secondItem="2cv-Bg-EQU" secondAttribute="bottom" id="4oe-1N-VuF"/>
+                            <constraint firstItem="qjn-Az-nK1" firstAttribute="bottom" secondItem="eqj-Xy-OX5" secondAttribute="top" id="88P-ym-ngd"/>
+                            <constraint firstAttribute="trailing" secondItem="eqj-Xy-OX5" secondAttribute="trailing" constant="8" id="Bkm-2V-KKh"/>
                             <constraint firstAttribute="trailing" secondItem="3AP-7h-Nfc" secondAttribute="trailing" constant="16" id="DPV-qc-7Mx"/>
                             <constraint firstAttribute="trailing" secondItem="6yW-By-Sg9" secondAttribute="trailing" id="HzJ-TZ-atu"/>
                             <constraint firstItem="6yW-By-Sg9" firstAttribute="top" secondItem="wc3-Ma-X7s" secondAttribute="top" id="IFt-ky-q6h"/>
@@ -370,7 +422,8 @@
                             <constraint firstItem="3AP-7h-Nfc" firstAttribute="top" secondItem="9za-vG-ihA" secondAttribute="bottom" constant="16" id="Vog-68-6WN"/>
                             <constraint firstItem="qjn-Az-nK1" firstAttribute="leading" secondItem="wc3-Ma-X7s" secondAttribute="leading" constant="10" id="WQh-6J-l34"/>
                             <constraint firstAttribute="trailing" secondItem="qjn-Az-nK1" secondAttribute="trailing" constant="10" id="Z7T-fd-4CF"/>
-                            <constraint firstItem="9za-vG-ihA" firstAttribute="top" secondItem="qjn-Az-nK1" secondAttribute="bottom" constant="16" id="agw-2V-YyY"/>
+                            <constraint firstItem="9za-vG-ihA" firstAttribute="top" secondItem="qjn-Az-nK1" secondAttribute="bottom" constant="66" id="agw-2V-YyY"/>
+                            <constraint firstItem="eqj-Xy-OX5" firstAttribute="leading" secondItem="wc3-Ma-X7s" secondAttribute="leading" constant="8" id="b5o-0P-XZb"/>
                             <constraint firstItem="3AP-7h-Nfc" firstAttribute="leading" secondItem="wc3-Ma-X7s" secondAttribute="leading" constant="16" id="bxW-A6-7ur"/>
                             <constraint firstAttribute="trailing" secondItem="9za-vG-ihA" secondAttribute="trailing" constant="16" id="guW-jF-VVi"/>
                             <constraint firstItem="6yW-By-Sg9" firstAttribute="leading" secondItem="wc3-Ma-X7s" secondAttribute="leading" id="hFm-HD-mvX"/>