Browse Source

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

tangchao 1 year ago
parent
commit
6958c7fb5f

+ 509 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationChoiceWidgetAppearanceViewController.swift

@@ -0,0 +1,509 @@
+//
+//  KMAnnotationChoiceWidgetAppearanceViewController.swift
+//  PDF Reader Pro
+//
+//  Created by wanjun on 2024/1/16.
+//
+
+import Cocoa
+
+private enum KMPDFAnnotationFontWeightType: Int {
+    case ultraLight = 0
+    case thin
+    case light
+    case regular
+    case medium
+    case semibold
+    case bold
+    case heavy
+    case black
+}
+
+class KMAnnotationChoiceWidgetAppearanceViewController: NSViewController {
+    
+    private var _annotations: [CPDFChoiceWidgetAnnotation] = []
+    private var _formMode: CAnnotationType = .radioButton
+    var pdfView: CPDFListView?
+    var annotationModel: CPDFAnnotationModel?
+    
+    // Outlets
+    @IBOutlet private var fillColorLabel: NSTextField!
+    @IBOutlet private var fillColorPickerView: KMColorPickerView!
+    @IBOutlet private var fontViewBottom: NSLayoutConstraint!
+    @IBOutlet private var fontLabel: NSTextField!
+    @IBOutlet private var fontPopUpButton: KMPopUpButton!
+    @IBOutlet private var fontStylePopUpButton: KMPopUpButton!
+    @IBOutlet private var fontSizeComboBox: KMComboBox!
+    @IBOutlet private var fontButton: NSButton!
+    @IBOutlet private var colorPickerView: KMColorPickerView!
+
+    // Properties
+    private var annotation: CPDFChoiceWidgetAnnotation?
+    private var isFromMode: Bool = false
+    private var annotationFont: NSFont?
+    private var fontWeightType: KMPDFAnnotationFontWeightType = .ultraLight
+    
+    deinit {
+        fillColorPickerView.target = nil
+        fillColorPickerView.action = nil
+        colorPickerView.target = nil
+        colorPickerView.action = nil
+        NSColorPanel.shared.setTarget(nil)
+        NSColorPanel.shared.setAction(nil)
+        NSFontManager.shared.target = nil
+        
+        NotificationCenter.default.removeObserver(self)
+        DistributedNotificationCenter.default().removeObserver(self)
+        annotation = nil
+        annotationFont = nil
+    }
+    
+    // MARK: Init
+    
+    override func loadView() {
+        super.loadView()
+        
+        NotificationCenter.default.addObserver(self, selector: #selector(formButtonLabelTextField), name: Notification.Name("KMFormActionButtonLabelTextField"), object: nil)
+        
+        fillColorLabel.stringValue = NSLocalizedString("Colors", comment: "")
+        fillColorLabel.textColor = KMAppearance.Layout.h0Color()
+        fontLabel.stringValue = NSLocalizedString("Fonts", comment: "")
+        fontLabel.textColor = KMAppearance.Layout.h0Color()
+        fillColorPickerView.noContentString = true
+        fillColorPickerView.annotationTypeString = NSLocalizedString("Background Color", comment: "")
+        fillColorPickerView.annotationType = .fromFillColors
+        fillColorPickerView.isFillColor = true
+        fillColorPickerView.isCallColorPanelAction = true
+        
+        colorPickerView.noContentString = true
+        colorPickerView.annotationTypeString = NSLocalizedString("Text Color", comment: "")
+        colorPickerView.annotationType = .fromColors
+        colorPickerView.isCallColorPanelAction = true
+        
+        fontStylePopUpButton.type = .arrowDown
+        fontSizeComboBox.type = .none
+        fontSizeComboBox.comboxRect = fontSizeComboBox.bounds
+        fontPopUpButton.type = .arrowUpDown
+        
+        fontPopUpButton.wantsLayer = true
+        fontStylePopUpButton.wantsLayer = true
+        fontSizeComboBox.wantsLayer = true
+        
+        fontPopUpButton.layer!.borderWidth = 1.0
+        fontStylePopUpButton.layer!.borderWidth = 1.0
+        fontSizeComboBox.layer!.borderWidth = 1.0
+        
+        fontPopUpButton.layer!.cornerRadius = 1.0
+        fontStylePopUpButton.layer!.cornerRadius = 1.0
+        fontSizeComboBox.layer!.cornerRadius = 1.0
+        
+        updateViewColor()
+        
+        reloadData()
+    }
+
+    override func viewDidAppear() {
+        super.viewDidAppear()
+        
+        let showConvertDetails = KMPropertiesViewPopController.showChangeColorDetails()
+        if showConvertDetails, let document = self.view.window?.windowController?.document as? NSDocument,
+            document.fileURL != nil {
+            KMPropertiesViewPopController.defaultManager().showChangeColorDetailsView(colorPickerView.firstButton)
+        }
+        
+        NotificationCenter.default.addObserver(self, selector: #selector(themeChanged(_:)),
+                                               name: Notification.Name("AppleInterfaceThemeChangedNotification"), object: nil)
+    }
+    
+    // MARK: Private Method
+    
+    func reloadData() {
+        var opacity: CGFloat = 1
+        if let color = annotation!.backgroundColor {
+            color.usingColorSpaceName(NSColorSpaceName.calibratedRGB)?.getRed(nil, green: nil, blue: nil, alpha: &opacity)
+        }
+
+        if let fontColor = annotation?.fontColor,
+           annotation != nil /*|| annotation?.type == .widgetPushButtonControl*/ {
+            fillColorPickerView.color = annotation?.backgroundColor
+            colorPickerView.color = fontColor
+        }
+
+        fontSizeComboBox.stringValue = "\(annotation?.font.pointSize) pt"
+
+        DispatchQueue.global(qos: .default).async { [self] in
+            let fonts = NSFontManager.shared.availableFontFamilies
+            var selectedIndex = 0
+            let family = annotation?.font.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.family) as? String ?? ""
+            let style = annotation?.font.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.face) as? String ?? ""
+
+            let menu = NSMenu()
+            
+            for (index, fontName) in fonts.enumerated() {
+                if let font = NSFont(name: fontName, size: 12.0) {
+                    let attributes = [NSAttributedString.Key.font: font]
+                    let attributedString = NSAttributedString(string: fontName, attributes: attributes)
+                    let item = NSMenuItem()
+                    item.attributedTitle = attributedString
+                    menu.addItem(item)
+                    if annotation?.font.fontName == font.fontName {
+                        selectedIndex = index
+                    }
+                }
+            }
+
+            DispatchQueue.main.async { [self] in
+                fontPopUpButton.menu = menu
+                fontPopUpButton.selectItem(at: selectedIndex)
+                let selectedStyleIndex = setFontStyleWithFontName(family, currentStyle: style)
+                fontStylePopUpButton.selectItem(at: Int(selectedStyleIndex))
+            }
+        }
+
+        annotationFont = annotation?.font
+
+        let fontManager = NSFontManager.shared
+        fontManager.target = self
+        fontManager.action = #selector(changeFont(_:))
+    }
+    
+    func updateAnnotationMode() {
+        let userDefaults = UserDefaults.standard
+        let note = annotation!
+        let annotationMode = self.formMode
+        
+        switch annotationMode {
+        case .actionButton:
+            userDefaults.setColor(note.backgroundColor, forKey: SKAnnotationActionButtonWidgetBackgroundColorKey)
+            userDefaults.setColor(note.fontColor, forKey: SKAnnotationActionButtonWidgetFontColorKey)
+            userDefaults.set(note.font.fontName, forKey: SKAnnotationActionButtonWidgetFontNameKey)
+            userDefaults.set(note.font.pointSize, forKey: SKAnnotationActionButtonWidgetFontSizeKey)
+        case .comboBox:
+            userDefaults.setColor(note.backgroundColor, forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
+            userDefaults.setColor(note.fontColor, forKey: SKAnnotationChoiceWidgetFontColorKey)
+            userDefaults.set(note.font.fontName, forKey: SKAnnotationChoiceWidgetFontNameKey)
+            userDefaults.set(note.font.pointSize, forKey: SKAnnotationChoiceWidgetFontSizeKey)
+        case .listMenu:
+            userDefaults.setColor(note.backgroundColor, forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
+            userDefaults.setColor(note.fontColor, forKey: SKAnnotationChoiceListWidgetFontColorKey)
+            userDefaults.set(note.font.fontName, forKey: SKAnnotationChoiceListWidgetFontNameKey)
+            userDefaults.set(note.font.pointSize, forKey: SKAnnotationChoiceListWidgetFontSizeKey)
+        default:
+            break
+        }
+    }
+    
+    func colorWithCGColor(_ cgColor: CGColor?) -> NSColor? {
+        guard let cgColor = cgColor else { return nil }
+        return NSColor(cgColor: cgColor)
+    }
+
+    func updateViewColor() {
+        if KMAppearance.isDarkMode() {
+            let darkBorderColor = NSColor(red: 86/255.0, green: 88/255.0, blue: 90/255.0, alpha: 1.0).cgColor
+            let darkBackgroundColor = NSColor(red: 57/255.0, green: 60/255.0, blue: 62/255.0, alpha: 1.0).cgColor
+
+            fontPopUpButton.layer?.borderColor = darkBorderColor
+            fontStylePopUpButton.layer?.borderColor = darkBorderColor
+            fontSizeComboBox.layer?.borderColor = darkBorderColor
+
+            fontPopUpButton.layer?.backgroundColor = darkBackgroundColor
+            fontStylePopUpButton.layer?.backgroundColor = darkBackgroundColor
+            fontSizeComboBox.layer?.backgroundColor = darkBackgroundColor
+        } else {
+            let lightBorderColor = NSColor(red: 218/255.0, green: 219/255.0, blue: 222/255.0, alpha: 1.0).cgColor
+            let lightBackgroundColor = NSColor.white.cgColor
+
+            fontPopUpButton.layer?.borderColor = lightBorderColor
+            fontStylePopUpButton.layer?.borderColor = lightBorderColor
+            fontSizeComboBox.layer?.borderColor = lightBorderColor
+
+            fontPopUpButton.layer?.backgroundColor = lightBackgroundColor
+            fontStylePopUpButton.layer?.backgroundColor = lightBackgroundColor
+            fontSizeComboBox.layer?.backgroundColor = lightBackgroundColor
+        }
+    }
+
+    func changeStoredFontInfo(_ sender: Any) {
+        for tAnnotation in annotations {
+//            tAnnotation.removeAllAppearanceStreams()
+//            if let font = (sender as AnyObject).convertFont(tAnnotation.font) {
+//                tAnnotation.font = font
+//            }
+        }
+    }
+
+    func setFontStyleWithFontName(_ fontName: String, currentStyle style: String?) -> UInt {
+        var selectIndex: UInt = 0
+        let menu = NSMenu()
+        if let fontFamily = NSFontManager.shared.availableMembers(ofFontFamily: fontName) {
+            for (index, array) in fontFamily.enumerated() {
+                let styleName = array[1] as? String ?? ""
+                if style == styleName {
+                    selectIndex = UInt(index)
+                }
+                let attributeFontDescriptor = NSFontDescriptor(fontAttributes: [NSFontDescriptor.AttributeName.family: fontName, NSFontDescriptor.AttributeName.face: styleName])
+                let font = NSFont(descriptor: attributeFontDescriptor, size: 12.0)
+                let attrited = [NSAttributedString.Key.font: font]
+                let string = NSAttributedString(string: styleName, attributes: attrited)
+                let item = NSMenuItem()
+                item.attributedTitle = string
+                menu.addItem(item)
+            }
+        }
+        if style == nil {
+            selectIndex = 0
+        }
+        fontStylePopUpButton.menu = menu
+        return selectIndex
+    }
+    
+    private func updateAnnotation() {
+        if annotationModel?.annotation != nil {
+            for tAnnotation in annotations {
+                pdfView?.setNeedsDisplayAnnotationViewFor(tAnnotation.page)
+            }
+        }
+    }
+    
+    // MARK: Set & Get
+    
+    var formMode: CAnnotationType {
+        get {
+            return _formMode
+        }
+        set {
+            _formMode = newValue
+            isFromMode = true
+
+            let sud = UserDefaults.standard
+            var note: CPDFChoiceWidgetAnnotation?
+            var bounds = NSRect(x: 0, y: 0, width: 60, height: 25)
+            var backgroundColor: NSColor?
+            var fontColor: NSColor?
+
+            if formMode == .listMenu {
+                bounds = NSRect(x: 0, y: 0, width: 100, height: 80)
+                note = CPDFChoiceWidgetAnnotation(PDFListViewNoteWith: pdfView!.document, listChoice: true)
+
+                backgroundColor = sud.color(forKey: SKAnnotationChoiceListWidgetBackgroundColorKey)
+                note?.backgroundColor = backgroundColor ?? NSColor.clear
+
+                fontColor = sud.color(forKey: SKAnnotationChoiceListWidgetFontColorKey)
+                note?.fontColor = fontColor
+
+                if let font = sud.font(forNameKey: SKAnnotationChoiceListWidgetFontNameKey,
+                                       sizeKey: SKAnnotationChoiceListWidgetFontSizeKey) {
+                    note?.font = font
+                }
+            } else if formMode == .comboBox {
+                bounds = NSRect(x: 0, y: 0, width: 100, height: 25)
+                note = CPDFChoiceWidgetAnnotation(PDFListViewNoteWith: pdfView!.document, listChoice: false)
+
+                backgroundColor = sud.color(forKey: SKAnnotationChoiceWidgetBackgroundColorKey)
+                note?.backgroundColor = backgroundColor ?? NSColor.clear
+
+                fontColor = sud.color(forKey: SKAnnotationChoiceWidgetFontColorKey)
+                note?.fontColor = fontColor
+
+                if let font = sud.font(forNameKey: SKAnnotationChoiceWidgetFontNameKey,
+                                       sizeKey: SKAnnotationChoiceWidgetFontSizeKey) {
+                    note?.font = font
+                }
+            } else if formMode == .actionButton {
+                bounds = NSRect(x: 0, y: 0, width: 100, height: 80)
+//                note = KMPDFAnnotationChoiceWidgetSub(bounds: bounds)
+
+                backgroundColor = sud.color(forKey: SKAnnotationActionButtonWidgetBackgroundColorKey)
+                note?.backgroundColor = backgroundColor ?? NSColor.clear
+
+                fontColor = sud.color(forKey: SKAnnotationActionButtonWidgetFontColorKey)
+                note?.fontColor = fontColor
+
+                if let font = sud.font(forNameKey: SKAnnotationActionButtonWidgetFontNameKey,
+                                       sizeKey: SKAnnotationActionButtonWidgetFontSizeKey) {
+                    note?.font = font
+                }
+            } else {
+                note = CPDFChoiceWidgetAnnotation(document: pdfView?.document)
+            }
+
+            if let note1 = note {
+                self.annotations = [note1]
+                self.annotation = note1
+            }
+        }
+    }
+
+    var annotations: [CPDFChoiceWidgetAnnotation] {
+        get {
+            return _annotations
+        }
+        set {
+            _annotations = newValue
+            annotation = _annotations.first
+        }
+    }
+    
+    // MARK: Button Action
+    
+    @IBAction func colorPickerViewAction(_ sender: Any) {
+        for tAnnotation in annotations {
+//            tAnnotation.removeAllAppearanceStreams()
+            tAnnotation.fontColor = colorPickerView.color
+        }
+        updateAnnotation()
+    }
+
+    @IBAction func fillColorPickerViewAction(_ sender: Any) {
+        for tAnnotation in annotations {
+//            tAnnotation.removeAllAppearanceStreams()
+            tAnnotation.backgroundColor = fillColorPickerView.color
+        }
+        updateAnnotation()
+    }
+    
+    @IBAction func buttonClickedChangeFont(_ sender: Any) {
+//        guard let weakSelf = self else { return }
+
+//        let fontWindowController = KMAnnotationFontWindowController.sharedAnnotationFont()
+//        guard let window = fontWindowController.window else { return }
+//
+//        fontWindowController.annotations = weakSelf.annotations
+//
+//        fontWindowController.annotationAlignCallback = { selectedCount in
+//            for tAnnotation in weakSelf.annotations {
+//                tAnnotation.removeAllAppearanceStreams()
+//
+//                switch selectedCount {
+//                case 0:
+//                    tAnnotation.alignment = .left
+//                case 2:
+//                    tAnnotation.alignment = .center
+//                case 1:
+//                    tAnnotation.alignment = .right
+//                case 3:
+//                    tAnnotation.alignment = .justified
+//                default:
+//                    break
+//                }
+//            }
+//            weakSelf.pdfview.setNeedsDisplay(true)
+//        }
+//
+//        fontWindowController.annotationCallback = { annotation in
+//            // Handle annotation callback if needed
+//        }
+//
+//        window.orderFront(sender)
+    }
+
+    @IBAction func fontColorButtonAction(_ sender: NSButton) {
+        NSColorPanel.shared.setTarget(self)
+        NSColorPanel.shared.setAction(#selector(colorPanelAction(_:)))
+        NSColorPanel.shared.orderFront(nil)
+    }
+
+    @objc func colorPanelAction(_ sender: Any) {
+        let color = NSColorPanel.shared.color
+        for tAnnotation in annotations {
+//                tAnnotation.removeAllAppearanceStreams()
+            tAnnotation.fontColor = color
+        }
+        updateAnnotation()
+    }
+
+    @IBAction func currentFontColorButtonAction(_ sender: NSButton) {
+        if let cgColor = sender.layer?.backgroundColor,
+           let color = colorWithCGColor(cgColor) {
+            for tAnnotation in annotations {
+//                tAnnotation.removeAllAppearanceStreams()
+                tAnnotation.fontColor = color
+            }
+            updateAnnotation()
+        }
+    }
+
+    @IBAction func fontPopUpButtonAction(_ sender: NSPopUpButton) {
+        if let selectedItem = fontPopUpButton.selectedItem {
+            let familyString = selectedItem.attributedTitle?.string ?? ""
+            let selectIndex = setFontStyleWithFontName(familyString, currentStyle: nil)
+            if let styleString = fontStylePopUpButton.selectedItem?.title {
+                fontStylePopUpButton.selectItem(at: Int(selectIndex))
+                
+                for tAnnotation in annotations {
+//                    tAnnotation.removeAllAppearanceStreams()
+                    if let font = annotation!.font {
+                        if let fontSize = font.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.size) as? NSNumber {
+                            let attributeFontDescriptor = NSFontDescriptor(fontAttributes: [NSFontDescriptor.AttributeName.family: familyString, NSFontDescriptor.AttributeName.face: styleString])
+                            let newFont = NSFont(descriptor: attributeFontDescriptor, size: CGFloat(fontSize.floatValue))
+                            
+                            if let newFont = newFont {
+                                tAnnotation.font = newFont
+                            }
+                        }
+                    }
+                }
+                updateAnnotation()
+            }
+        }
+    }
+    
+    @IBAction func fontSizeComboBoxAction(_ sender: NSComboBox) {
+        for tAnnotation in annotations {
+//            tAnnotation.removeAllAppearanceStreams()
+            if let font = tAnnotation.font {
+                if let newFont = NSFont(name: font.fontName, size: CGFloat(fontSizeComboBox.floatValue)) {
+                    tAnnotation.font = newFont
+                }
+            }
+        }
+        updateAnnotation()
+    }
+
+    @IBAction func fontStylePopUpButtonAction(_ sender: NSPopUpButton) {
+        guard let styleString = fontStylePopUpButton.selectedItem?.title else {
+            return
+        }
+        
+        for tAnnotation in annotations {
+            if let font = tAnnotation.font {
+                if let fontSize = font.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.size) as? String,
+                   let familyString = font.fontDescriptor.object(forKey: NSFontDescriptor.AttributeName.family) as? String {
+                    
+                    let floatValue = Float(fontSize)
+                    let cgFloatValue = CGFloat(floatValue!)
+
+                    let attributeFontDescriptor = NSFontDescriptor(fontAttributes: [NSFontDescriptor.AttributeName.family: familyString, NSFontDescriptor.AttributeName.face: styleString])
+                    let newFont = NSFont(descriptor: attributeFontDescriptor, size: cgFloatValue)
+                    if newFont != nil {
+                        tAnnotation.font = newFont
+                    }
+                }
+            }
+        }
+        updateAnnotation()
+    }
+    
+    // MARK: NSNotification Action
+    
+    @objc func formButtonLabelTextField() {
+        reloadData()
+    }
+
+    @objc func changeFont(_ sender: Any) {
+//        annotationFont = sender.convertFont(annotationFont)
+        
+        for tAnnotation in annotations {
+//                tAnnotation.removeAllAppearanceStreams()
+//            tAnnotation.setFont(annotationFont)
+        }
+        updateAnnotation()
+    }
+
+    @objc func themeChanged(_ notification: Notification) {
+        DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { [weak self] in
+            self?.updateViewColor()
+        }
+    }
+}

+ 237 - 0
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/ViewController/FormProperties/KMAnnotationChoiceWidgetAppearanceViewController.xib

@@ -0,0 +1,237 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="18122" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
+    <dependencies>
+        <deployment identifier="macosx"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="18122"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="KMAnnotationChoiceWidgetAppearanceViewController">
+            <connections>
+                <outlet property="colorPickerView" destination="fb8-83-Upj" id="SRL-RL-w8c"/>
+                <outlet property="fillColorLabel" destination="IId-XT-GX4" id="9EZ-wi-XAX"/>
+                <outlet property="fillColorPickerView" destination="F5z-22-r2f" id="yHQ-CA-vCB"/>
+                <outlet property="fontButton" destination="0qZ-0s-ONw" id="HT1-NO-KaQ"/>
+                <outlet property="fontLabel" destination="1dR-tg-XTu" id="hYu-Ce-ING"/>
+                <outlet property="fontPopUpButton" destination="Dds-CG-9jA" id="7VU-wp-XBn"/>
+                <outlet property="fontSizeComboBox" destination="8Ve-E4-2UE" id="l1Q-Tf-pxQ"/>
+                <outlet property="fontStylePopUpButton" destination="2u3-Kk-MNa" id="eh8-aU-RG9"/>
+                <outlet property="fontViewBottom" destination="TdR-gp-EI8" id="6y1-Y1-ov8"/>
+                <outlet property="view" destination="fWT-Ms-Gfw" id="qDc-if-QUO"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" id="fWT-Ms-Gfw">
+            <rect key="frame" x="0.0" y="0.0" width="475" height="512"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="oGt-vH-jZz" customClass="KMClipView">
+                <rect key="frame" x="0.0" y="0.0" width="475" height="512"/>
+                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                <subviews>
+                    <view translatesAutoresizingMaskIntoConstraints="NO" id="hDQ-zI-HH9">
+                        <rect key="frame" x="0.0" y="265" width="475" height="247"/>
+                        <subviews>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="sUG-di-Kdv">
+                                <rect key="frame" x="16" y="165" width="443" height="72"/>
+                                <subviews>
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IId-XT-GX4">
+                                        <rect key="frame" x="-2" y="42" width="42" height="20"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="20" id="2HK-FU-Gre"/>
+                                        </constraints>
+                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Color" id="52J-2P-Yep">
+                                            <font key="font" metaFont="systemBold" size="14"/>
+                                            <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                        </textFieldCell>
+                                    </textField>
+                                    <customView placeholderIntrinsicWidth="240" placeholderIntrinsicHeight="26" translatesAutoresizingMaskIntoConstraints="NO" id="F5z-22-r2f" customClass="KMColorPickerView">
+                                        <rect key="frame" x="0.0" y="0.0" width="443" height="32"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="32" id="uyy-tS-u3h"/>
+                                        </constraints>
+                                        <connections>
+                                            <action selector="fillColorPickerViewAction:" target="-2" id="Yj8-eC-gjW"/>
+                                        </connections>
+                                    </customView>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="IId-XT-GX4" firstAttribute="leading" secondItem="sUG-di-Kdv" secondAttribute="leading" id="7Sc-uq-NCQ"/>
+                                    <constraint firstAttribute="bottom" secondItem="F5z-22-r2f" secondAttribute="bottom" id="Vac-Kh-VwC"/>
+                                    <constraint firstItem="IId-XT-GX4" firstAttribute="top" secondItem="sUG-di-Kdv" secondAttribute="top" constant="10" id="VfL-LY-uQC"/>
+                                    <constraint firstItem="F5z-22-r2f" firstAttribute="top" secondItem="IId-XT-GX4" secondAttribute="bottom" constant="10" id="koz-ic-bTT"/>
+                                    <constraint firstItem="F5z-22-r2f" firstAttribute="leading" secondItem="sUG-di-Kdv" secondAttribute="leading" id="rB4-HU-xS7"/>
+                                    <constraint firstAttribute="trailing" secondItem="F5z-22-r2f" secondAttribute="trailing" id="v6c-CZ-6Jz"/>
+                                </constraints>
+                            </customView>
+                            <customView translatesAutoresizingMaskIntoConstraints="NO" id="QuF-Kd-WRq">
+                                <rect key="frame" x="16" y="10" width="443" height="145"/>
+                                <subviews>
+                                    <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1dR-tg-XTu">
+                                        <rect key="frame" x="-2" y="118" width="36" height="17"/>
+                                        <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Font" id="aLz-5f-LzI">
+                                            <font key="font" metaFont="systemBold" size="14"/>
+                                            <color key="textColor" red="0.40000000000000002" green="0.40000000000000002" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                        </textFieldCell>
+                                    </textField>
+                                    <button translatesAutoresizingMaskIntoConstraints="NO" id="0qZ-0s-ONw">
+                                        <rect key="frame" x="417" y="119" width="16" height="16"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="16" id="RQ2-Np-u1f"/>
+                                            <constraint firstAttribute="width" constant="16" id="ebk-LL-wBK"/>
+                                        </constraints>
+                                        <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="KMImageNameUXIconBtnFontsetNor" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="DMe-4N-iGI">
+                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="system"/>
+                                        </buttonCell>
+                                        <connections>
+                                            <action selector="buttonClicked_ChangeFont:" target="-2" id="ccS-m1-x8A"/>
+                                        </connections>
+                                    </button>
+                                    <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2u3-Kk-MNa" customClass="KMPopUpButton">
+                                        <rect key="frame" x="-2" y="3" width="349" height="36"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="24" id="A08-h9-JXQ"/>
+                                        </constraints>
+                                        <popUpButtonCell key="cell" type="push" title="UltraLight" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="border" inset="2" arrowPosition="noArrow" selectedItem="b8w-9P-1Ld" id="MeQ-zr-ReI" customClass="KMPopUpButtonCell">
+                                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="menu"/>
+                                            <menu key="menu" id="6eM-Of-hda">
+                                                <items>
+                                                    <menuItem title="UltraLight" state="on" id="b8w-9P-1Ld"/>
+                                                    <menuItem title="Thin" id="yDt-lm-uEq"/>
+                                                    <menuItem title="Light" id="yLi-12-iS3"/>
+                                                    <menuItem title="Regular" id="cXt-wI-p25"/>
+                                                    <menuItem title="Medium" id="KOD-mo-89K"/>
+                                                    <menuItem title="Semibold" id="Sq5-xS-RsL"/>
+                                                    <menuItem title="Bold" id="wLQ-Cx-0Yx"/>
+                                                    <menuItem title="Heavy" id="Ry6-wE-uNq"/>
+                                                    <menuItem title="Black" id="lzE-Ia-NkE"/>
+                                                </items>
+                                            </menu>
+                                        </popUpButtonCell>
+                                        <connections>
+                                            <action selector="fontStylePopUpButtonAction:" target="-2" id="Vgt-PU-i4T"/>
+                                        </connections>
+                                    </popUpButton>
+                                    <comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8Ve-E4-2UE" customClass="KMComboBox">
+                                        <rect key="frame" x="348" y="10" width="95" height="23"/>
+                                        <constraints>
+                                            <constraint firstAttribute="width" constant="92" id="yqp-xQ-AJY"/>
+                                        </constraints>
+                                        <comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" alignment="center" completes="NO" numberOfVisibleItems="5" id="Pzf-xX-zIz" customClass="KMComboBoxCell">
+                                            <font key="font" metaFont="system"/>
+                                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            <objectValues>
+                                                <string>4 pt</string>
+                                                <string>6 pt</string>
+                                                <string>8 pt</string>
+                                                <string>9 pt</string>
+                                                <string>10 pt</string>
+                                                <string>11 pt</string>
+                                                <string>12 pt</string>
+                                                <string>13 pt</string>
+                                                <string>14 pt</string>
+                                                <string>15 pt</string>
+                                                <string>16 pt</string>
+                                                <string>17 pt</string>
+                                                <string>18 pt</string>
+                                                <string>24 pt</string>
+                                                <string>36 pt</string>
+                                                <string>48 pt</string>
+                                                <string>64 pt</string>
+                                                <string>72 pt</string>
+                                                <string>98 pt</string>
+                                                <string>144 pt</string>
+                                                <string>288 pt</string>
+                                            </objectValues>
+                                        </comboBoxCell>
+                                        <connections>
+                                            <action selector="fontSizeComboBoxAction:" target="-2" id="fJc-QM-eBL"/>
+                                        </connections>
+                                    </comboBox>
+                                    <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Dds-CG-9jA" customClass="KMPopUpButton">
+                                        <rect key="frame" x="-2" y="35" width="452" height="36"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="24" id="BKI-cy-EMV"/>
+                                        </constraints>
+                                        <popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" arrowPosition="noArrow" selectedItem="Lif-0J-Dbd" id="qTm-jx-qUv" customClass="KMPopUpButtonCell">
+                                            <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
+                                            <font key="font" metaFont="menu"/>
+                                            <menu key="menu" id="u73-CF-6q8">
+                                                <items>
+                                                    <menuItem title="Item 1" state="on" id="Lif-0J-Dbd"/>
+                                                    <menuItem title="Item 2" id="5Fb-ce-SCc"/>
+                                                    <menuItem title="Item 3" id="Dz1-Ef-UYw"/>
+                                                </items>
+                                            </menu>
+                                        </popUpButtonCell>
+                                        <connections>
+                                            <action selector="fontPopUpButtonAction:" target="-2" id="Rlu-Q8-tCK"/>
+                                        </connections>
+                                    </popUpButton>
+                                    <customView placeholderIntrinsicWidth="240" placeholderIntrinsicHeight="26" translatesAutoresizingMaskIntoConstraints="NO" id="fb8-83-Upj" customClass="KMColorPickerView">
+                                        <rect key="frame" x="0.0" y="76" width="443" height="32"/>
+                                        <constraints>
+                                            <constraint firstAttribute="height" constant="32" id="7uL-Qc-jV3"/>
+                                        </constraints>
+                                        <connections>
+                                            <action selector="colorPickerViewAction:" target="-2" id="p9x-bh-BSb"/>
+                                        </connections>
+                                    </customView>
+                                </subviews>
+                                <constraints>
+                                    <constraint firstItem="0qZ-0s-ONw" firstAttribute="centerY" secondItem="1dR-tg-XTu" secondAttribute="centerY" id="5Ka-ej-yFq"/>
+                                    <constraint firstAttribute="trailing" secondItem="8Ve-E4-2UE" secondAttribute="trailing" constant="3" id="6xe-X0-PK6"/>
+                                    <constraint firstItem="fb8-83-Upj" firstAttribute="leading" secondItem="QuF-Kd-WRq" secondAttribute="leading" id="6ys-v3-pbk"/>
+                                    <constraint firstItem="2u3-Kk-MNa" firstAttribute="leading" secondItem="QuF-Kd-WRq" secondAttribute="leading" constant="5" id="9s6-xg-Vlh"/>
+                                    <constraint firstItem="1dR-tg-XTu" firstAttribute="top" secondItem="QuF-Kd-WRq" secondAttribute="top" constant="10" id="COj-pC-29G"/>
+                                    <constraint firstAttribute="trailing" secondItem="Dds-CG-9jA" secondAttribute="trailing" id="CUi-3K-j4X"/>
+                                    <constraint firstItem="8Ve-E4-2UE" firstAttribute="leading" secondItem="2u3-Kk-MNa" secondAttribute="trailing" constant="8" id="DBP-9U-v39"/>
+                                    <constraint firstItem="2u3-Kk-MNa" firstAttribute="top" secondItem="Dds-CG-9jA" secondAttribute="bottom" constant="8" id="FiD-ZZ-SrT"/>
+                                    <constraint firstItem="fb8-83-Upj" firstAttribute="top" secondItem="1dR-tg-XTu" secondAttribute="bottom" constant="10" id="Tba-tO-wnb"/>
+                                    <constraint firstItem="1dR-tg-XTu" firstAttribute="leading" secondItem="QuF-Kd-WRq" secondAttribute="leading" id="c6f-x3-Kk4"/>
+                                    <constraint firstItem="Dds-CG-9jA" firstAttribute="leading" secondItem="QuF-Kd-WRq" secondAttribute="leading" constant="5" id="cX7-uV-MMh"/>
+                                    <constraint firstItem="8Ve-E4-2UE" firstAttribute="centerY" secondItem="2u3-Kk-MNa" secondAttribute="centerY" id="iwq-am-rdp"/>
+                                    <constraint firstAttribute="bottom" secondItem="2u3-Kk-MNa" secondAttribute="bottom" constant="10" id="lTE-zD-gjx"/>
+                                    <constraint firstAttribute="trailing" secondItem="0qZ-0s-ONw" secondAttribute="trailing" constant="10" id="mZ3-t3-vnc"/>
+                                    <constraint firstAttribute="trailing" secondItem="fb8-83-Upj" secondAttribute="trailing" id="uPT-kR-Aep"/>
+                                    <constraint firstItem="Dds-CG-9jA" firstAttribute="top" secondItem="fb8-83-Upj" secondAttribute="bottom" constant="10" id="udP-n9-Bfd"/>
+                                </constraints>
+                            </customView>
+                        </subviews>
+                        <constraints>
+                            <constraint firstItem="sUG-di-Kdv" firstAttribute="top" secondItem="hDQ-zI-HH9" secondAttribute="top" constant="10" id="2iN-eA-TuC"/>
+                            <constraint firstItem="QuF-Kd-WRq" firstAttribute="leading" secondItem="sUG-di-Kdv" secondAttribute="leading" id="TFJ-MW-cnn"/>
+                            <constraint firstAttribute="bottom" secondItem="QuF-Kd-WRq" secondAttribute="bottom" constant="10" id="TdR-gp-EI8"/>
+                            <constraint firstItem="QuF-Kd-WRq" firstAttribute="top" secondItem="sUG-di-Kdv" secondAttribute="bottom" constant="10" id="V4o-8d-V7y"/>
+                            <constraint firstItem="sUG-di-Kdv" firstAttribute="leading" secondItem="hDQ-zI-HH9" secondAttribute="leading" constant="16" id="WcG-h4-R4g"/>
+                            <constraint firstItem="QuF-Kd-WRq" firstAttribute="trailing" secondItem="sUG-di-Kdv" secondAttribute="trailing" id="e5w-se-dga"/>
+                            <constraint firstAttribute="trailing" secondItem="sUG-di-Kdv" secondAttribute="trailing" constant="16" id="ic3-hn-7bc"/>
+                        </constraints>
+                    </view>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="trailing" secondItem="hDQ-zI-HH9" secondAttribute="trailing" id="77z-CO-Rbe"/>
+                    <constraint firstItem="hDQ-zI-HH9" firstAttribute="leading" secondItem="oGt-vH-jZz" secondAttribute="leading" id="FgR-wu-xha"/>
+                    <constraint firstItem="hDQ-zI-HH9" firstAttribute="top" secondItem="oGt-vH-jZz" secondAttribute="top" id="uck-mB-4FT"/>
+                </constraints>
+            </clipView>
+            <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="F7F-k2-qHB">
+                <rect key="frame" x="-100" y="-100" width="303" height="15"/>
+                <autoresizingMask key="autoresizingMask"/>
+            </scroller>
+            <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="b8z-Iw-PVb">
+                <rect key="frame" x="459" y="0.0" width="16" height="512"/>
+                <autoresizingMask key="autoresizingMask"/>
+            </scroller>
+            <point key="canvasLocation" x="-112.5" y="172"/>
+        </scrollView>
+    </objects>
+    <resources>
+        <image name="KMImageNameUXIconBtnFontsetNor" width="17" height="16"/>
+    </resources>
+</document>

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

@@ -829,6 +829,12 @@
 		9F8810882B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F8810842B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib */; };
 		9F8810892B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F8810842B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib */; };
 		9F88108A2B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F8810842B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib */; };
+		9F88108D2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F88108B2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift */; };
+		9F88108E2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F88108B2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift */; };
+		9F88108F2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F88108B2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift */; };
+		9F8810902B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F88108C2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib */; };
+		9F8810912B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F88108C2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib */; };
+		9F8810922B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9F88108C2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib */; };
 		9F8DDF2629237910006CDC73 /* Array+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8DDF2529237910006CDC73 /* Array+KMExtensions.swift */; };
 		9F8DDF2729237910006CDC73 /* Array+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8DDF2529237910006CDC73 /* Array+KMExtensions.swift */; };
 		9F8DDF2829237910006CDC73 /* Array+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8DDF2529237910006CDC73 /* Array+KMExtensions.swift */; };
@@ -5198,6 +5204,8 @@
 		9F8539F52947137400DF644E /* newtab.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = newtab.pdf; sourceTree = "<group>"; };
 		9F8810832B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAnnotationButtonWidgetOptionsViewController.swift; sourceTree = "<group>"; };
 		9F8810842B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAnnotationButtonWidgetOptionsViewController.xib; sourceTree = "<group>"; };
+		9F88108B2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMAnnotationChoiceWidgetAppearanceViewController.swift; sourceTree = "<group>"; };
+		9F88108C2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMAnnotationChoiceWidgetAppearanceViewController.xib; sourceTree = "<group>"; };
 		9F8DDF2529237910006CDC73 /* Array+KMExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+KMExtensions.swift"; sourceTree = "<group>"; };
 		9F8DDF2B2924B855006CDC73 /* KMPDFToolsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPDFToolsViewController.swift; sourceTree = "<group>"; };
 		9F8DDF2C2924B855006CDC73 /* KMPDFToolsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMPDFToolsViewController.xib; sourceTree = "<group>"; };
@@ -7775,6 +7783,8 @@
 				9F69DBB92B55014F003D4C45 /* KMAnnotationButtonWidgetAppearanceViewController.xib */,
 				9F8810832B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.swift */,
 				9F8810842B564E9700F69815 /* KMAnnotationButtonWidgetOptionsViewController.xib */,
+				9F88108B2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift */,
+				9F88108C2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib */,
 			);
 			path = FormProperties;
 			sourceTree = "<group>";
@@ -12585,6 +12595,7 @@
 				BBFBE6C228DD7B98008B2335 /* Assets.xcassets in Resources */,
 				AD1D483E2AFB81F4007AC1F0 /* KMMergeBlankView.xib in Resources */,
 				9F1FE4DE29406E4700E952CA /* .gclient in Resources */,
+				9F8810902B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */,
 				AD8810A329A8459000178CA1 /* KMComparativeTableViewController.xib in Resources */,
 				AD867F9829D955D200F00440 /* KMBOTAOutlineCellView.xib in Resources */,
 				9F1F82BF292E01860092C4B4 /* KMCloudEmptyCollectionViewItem.xib in Resources */,
@@ -13140,6 +13151,7 @@
 				9F3D819729A33A290087B5AD /* KMDesignDropdown.xib in Resources */,
 				BB03D6912B01C7AB008C9976 /* KMPDFEditInsertBlankPageWindow.xib in Resources */,
 				BBFE6E792930E53000142C01 /* KMMergePopoverViewController.xib in Resources */,
+				9F8810912B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */,
 				9FDD0F972952FF4D000C4DAD /* $metadata.json in Resources */,
 				BB7F7C0429AA586900A3E4E7 /* signAddBack.png in Resources */,
 				BB1969D22B2833FF00922736 /* KMProgressWindowController.xib in Resources */,
@@ -13555,6 +13567,7 @@
 				ADE3C1C629A4C13700793B13 /* KMPrintAccessoryController_OC.xib in Resources */,
 				ADEC7A83299397F8009A8256 /* SF-Pro-Text-Regular.otf in Resources */,
 				9FD0FA2E29CD3ED400F2AB0D /* KMRightSideEmptyVC.xib in Resources */,
+				9F8810922B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.xib in Resources */,
 				9F94748129FA24200042F949 /* Credits.rtf in Resources */,
 				AD1D480D2AFB18DA007AC1F0 /* KMCompressWIndowControllerNew.xib in Resources */,
 				AD85D1A92AF09864000F4D28 /* KMHomeQuickToolsWindowController.xib in Resources */,
@@ -15027,6 +15040,7 @@
 				BB146FCF299DC0D100784A6A /* GTMMIMEDocument.m in Sources */,
 				9F1F82EA2935D02E0092C4B4 /* KMComboBox.swift in Sources */,
 				ADDEEA722AD3EFE200EF675D /* KMButton.swift in Sources */,
+				9F88108D2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */,
 				BB49ECE5293EF54800C82CA2 /* KMCustomPDFView.swift in Sources */,
 				9F0CB48F29683DEE00007028 /* KMPropertiesPanelLineSubVC.swift in Sources */,
 				BB6719E92AD2A57C003D44D5 /* CPDFLinkAnnotation+PDFListView.swift in Sources */,
@@ -15977,6 +15991,7 @@
 				ADAFDA572AEB451600F084BC /* KMHomeContentView.swift in Sources */,
 				BBFE6E66293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */,
 				BBEC00E6295C4D3C00A26C98 /* KMBatesPageInfoView.swift in Sources */,
+				9F88108E2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */,
 				BB276A512B0376B300AB5578 /* KMBatchOperateRemoveHeaderFooterViewController.swift in Sources */,
 				F37322E8292DF9410013862C /* CPDFAnnotationModel.m in Sources */,
 				BBDA8A6A2A31B50C006A2C4E /* KMCustomStepperView.swift in Sources */,
@@ -17240,6 +17255,7 @@
 				BB986AED2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */,
 				BB0A55122A302DB700B6E84B /* KMTextField.swift in Sources */,
 				9F0CB5032986560D00007028 /* KMDesignToken+BorderTop.swift in Sources */,
+				9F88108F2B56614600F69815 /* KMAnnotationChoiceWidgetAppearanceViewController.swift in Sources */,
 				9F0CB4CB2986533F00007028 /* KMDesignToken+Sizing.swift in Sources */,
 				BB1B0AC72B4FC6E900889528 /* KMGuideInfoWindow.swift in Sources */,
 				ADD1B70C29471FA500C3FFF7 /* KMPrintChoosePresenter.swift in Sources */,