|
@@ -6,30 +6,38 @@
|
|
|
//
|
|
|
|
|
|
import Cocoa
|
|
|
+import KMComponentLibrary
|
|
|
|
|
|
@objc protocol CDistanceSettingWindowControllerDelegate: AnyObject {
|
|
|
@objc optional func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, distanceMeasureInfo: CPDFDistanceMeasureInfo?)
|
|
|
@objc optional func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, perimeterMeasureInfo: CPDFPerimeterMeasureInfo?)
|
|
|
+
|
|
|
+ @objc optional func distanceSettingWindowController(_ distanceSettingWindowController: CDistanceSettingWindowController, updateMeasureInfo measureInfo: CPDFMeasureInfo?)
|
|
|
}
|
|
|
|
|
|
-@objc class CDistanceSettingWindowController: NSWindowController, NSTextFieldDelegate {
|
|
|
-
|
|
|
- @IBOutlet weak var rulerBaseTexField: NSTextField!
|
|
|
- @IBOutlet weak var rulerBasePopButton: NSPopUpButton!
|
|
|
- @IBOutlet weak var rulerTranslateTextField: NSTextField!
|
|
|
- @IBOutlet weak var rulerTranslatePopButton: NSPopUpButton!
|
|
|
- @IBOutlet weak var precisionPopButton: NSPopUpButton!
|
|
|
- @IBOutlet weak var doneButton: NSButton!
|
|
|
- @IBOutlet weak var cancelButton: NSButton!
|
|
|
+@objc class CDistanceSettingWindowController: KMNBaseWindowController {
|
|
|
|
|
|
+ @IBOutlet var titleLabel: NSTextField!
|
|
|
+
|
|
|
@IBOutlet weak var customLabel: NSTextField!
|
|
|
- @IBOutlet weak var drawingLabel: NSTextField!
|
|
|
+
|
|
|
+ @IBOutlet var rulerBaseInput: ComponentInput!
|
|
|
+ @IBOutlet var rulerBaseSelect: ComponentSelect!
|
|
|
+
|
|
|
+ @IBOutlet var rulerTranslateInput: ComponentInput!
|
|
|
+ @IBOutlet var rulerTranslateSelect: ComponentSelect!
|
|
|
+
|
|
|
@IBOutlet weak var precisionLabel: NSTextField!
|
|
|
+ @IBOutlet var precisionSelect: ComponentSelect!
|
|
|
+
|
|
|
+ @IBOutlet var cancelButton: ComponentButton!
|
|
|
+ @IBOutlet var doneButton: ComponentButton!
|
|
|
|
|
|
@objc weak var delegate: CDistanceSettingWindowControllerDelegate?
|
|
|
|
|
|
var distanceMeasureInfo: CPDFDistanceMeasureInfo?
|
|
|
var perimeterMeasureInfo: CPDFPerimeterMeasureInfo?
|
|
|
+ var measureInfo: CPDFMeasureInfo?
|
|
|
|
|
|
var modalSession: NSApplication.ModalSession?
|
|
|
var isDistance: Bool = false
|
|
@@ -41,6 +49,7 @@ import Cocoa
|
|
|
Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
|
|
|
commonInit()
|
|
|
configurationLanguage()
|
|
|
+ setupProperty()
|
|
|
}
|
|
|
|
|
|
@objc init(perimeterMeasureInfo: CPDFPerimeterMeasureInfo) {
|
|
@@ -50,26 +59,106 @@ import Cocoa
|
|
|
Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
|
|
|
commonInit()
|
|
|
configurationLanguage()
|
|
|
+ setupProperty()
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc init(measureInfo: CPDFMeasureInfo) {
|
|
|
+ super.init(window: nil)
|
|
|
+
|
|
|
+ self.measureInfo = measureInfo
|
|
|
+
|
|
|
+ self.isDistance = false
|
|
|
+
|
|
|
+ Bundle.main.loadNibNamed("CDistanceSettingWindowController", owner: self, topLevelObjects: nil)
|
|
|
+ commonInit()
|
|
|
+ configurationLanguage()
|
|
|
+ setupProperty()
|
|
|
}
|
|
|
|
|
|
+
|
|
|
required init?(coder: NSCoder) {
|
|
|
super.init(coder: coder)
|
|
|
}
|
|
|
|
|
|
override func windowDidLoad() {
|
|
|
super.windowDidLoad()
|
|
|
-
|
|
|
-// commonInit()
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private func configurationLanguage() {
|
|
|
- self.window?.title = NSLocalizedString("Measure Settings", comment: "")
|
|
|
- customLabel.stringValue = NSLocalizedString("Custom Scale", comment: "")
|
|
|
- drawingLabel.stringValue = NSLocalizedString("Drawing Dimensions: Actual Size", comment: "")
|
|
|
- precisionLabel.stringValue = NSLocalizedString("Precision Setting", comment: "")
|
|
|
- doneButton.title = NSLocalizedString("Done", comment: "")
|
|
|
- cancelButton.title = NSLocalizedString("Cancel", comment: "")
|
|
|
-
|
|
|
+
|
|
|
+ customLabel.stringValue = KMLocalizedString("Scale")
|
|
|
+ precisionLabel.stringValue = KMLocalizedString("Precision Setting")
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ func setupProperty() {
|
|
|
+
|
|
|
+ rulerBaseInput.properties = ComponentInputProperty(size: .s, text: "", regexString: "0123456789")
|
|
|
+ rulerBaseInput.delegate = self
|
|
|
+
|
|
|
+ rulerBaseSelect.properties = ComponentSelectProperties(size: .s,
|
|
|
+ state: .normal,
|
|
|
+ creatable: false,
|
|
|
+ text: "cm")
|
|
|
+ if true {
|
|
|
+ var sizeItemArr: [ComponentMenuitemProperty] = []
|
|
|
+ for string in ["in", "cm", "mm"] {
|
|
|
+ let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
|
|
|
+ sizeItemArr.append(item)
|
|
|
+ }
|
|
|
+ rulerBaseSelect.updateMenuItemsArr(sizeItemArr)
|
|
|
+ }
|
|
|
+ rulerBaseSelect.delegate = self
|
|
|
+
|
|
|
+ rulerTranslateInput.properties = ComponentInputProperty(size: .s, text: "", regexString: "0123456789")
|
|
|
+ rulerTranslateInput.delegate = self
|
|
|
+
|
|
|
+ rulerTranslateSelect.properties = ComponentSelectProperties(size: .s,
|
|
|
+ state: .normal,
|
|
|
+ creatable: false,
|
|
|
+ text: "cm")
|
|
|
+ if true {
|
|
|
+ var sizeItemArr: [ComponentMenuitemProperty] = []
|
|
|
+ for string in ["pt", "cm", "in", "mm", "m", "km", "ft", "yd", "mi"] {
|
|
|
+ let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
|
|
|
+ sizeItemArr.append(item)
|
|
|
+ }
|
|
|
+ rulerTranslateSelect.updateMenuItemsArr(sizeItemArr)
|
|
|
+ }
|
|
|
+ rulerTranslateSelect.delegate = self
|
|
|
+
|
|
|
+
|
|
|
+ precisionSelect.properties = ComponentSelectProperties(size: .s,
|
|
|
+ state: .normal,
|
|
|
+ creatable: false,
|
|
|
+ text: "0.01")
|
|
|
+ if true {
|
|
|
+ var sizeItemArr: [ComponentMenuitemProperty] = []
|
|
|
+ for string in ["1", "0.1", "0.01", "0.001", "0.0001"] {
|
|
|
+ let item = ComponentMenuitemProperty(type: .normal, text: string, identifier: string)
|
|
|
+ sizeItemArr.append(item)
|
|
|
+ }
|
|
|
+ precisionSelect.updateMenuItemsArr(sizeItemArr)
|
|
|
+ }
|
|
|
+ precisionSelect.delegate = self
|
|
|
+
|
|
|
+
|
|
|
+ cancelButton.properties = ComponentButtonProperty(type: .default_tertiary,
|
|
|
+ size: .s,
|
|
|
+ buttonText: KMLocalizedString("Cancel"),
|
|
|
+ keepPressState: false)
|
|
|
+ cancelButton.setTarget(self, action: #selector(buttonItemClick_Cancel(_:)))
|
|
|
+
|
|
|
+ doneButton.properties = ComponentButtonProperty(type: .primary,
|
|
|
+ size: .s,
|
|
|
+ buttonText: KMLocalizedString("OK"),
|
|
|
+ keepPressState: false)
|
|
|
+ doneButton.setTarget(self, action: #selector(buttonItemClick_Done(_:)))
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private func commonInit() {
|
|
@@ -80,63 +169,58 @@ import Cocoa
|
|
|
measureInfo = perimeterMeasureInfo!
|
|
|
}
|
|
|
|
|
|
- rulerBaseTexField.stringValue = String(format: "%0.0f", measureInfo.rulerBase)
|
|
|
- rulerTranslateTextField.stringValue = String(format: "%0.0f", measureInfo.rulerTranslate)
|
|
|
-
|
|
|
- rulerBasePopButton.removeAllItems()
|
|
|
- rulerBasePopButton.addItems(withTitles: ["in", "cm", "mm"])
|
|
|
-
|
|
|
+ rulerBaseInput.properties.text = String(format: "%0.0f", measureInfo.rulerBase)
|
|
|
+ rulerBaseInput.reloadData()
|
|
|
+
|
|
|
if measureInfo.rulerBaseUnit == CPDFMeasureConstants.sharedInstance().cpdfIn {
|
|
|
- rulerBasePopButton.selectItem(withTitle: "in")
|
|
|
+ rulerBaseSelect.selectItemAtIndex(0)
|
|
|
} else if measureInfo.rulerBaseUnit == CPDFMeasureConstants.sharedInstance().cpdfCm {
|
|
|
- rulerBasePopButton.selectItem(withTitle: "cm")
|
|
|
+ rulerBaseSelect.selectItemAtIndex(1)
|
|
|
} else if measureInfo.rulerBaseUnit == CPDFMeasureConstants.sharedInstance().cpdfMm {
|
|
|
- rulerBasePopButton.selectItem(withTitle: "mm")
|
|
|
+ rulerBaseSelect.selectItemAtIndex(2)
|
|
|
}
|
|
|
+ rulerBaseSelect.reloadData()
|
|
|
|
|
|
- rulerTranslatePopButton.removeAllItems()
|
|
|
- rulerTranslatePopButton.addItems(withTitles: ["pt", "cm", "in", "mm", "m", "km", "ft", "yd", "mi"])
|
|
|
+ rulerTranslateInput.properties.text = String(format: "%0.0f", measureInfo.rulerTranslate)
|
|
|
+ rulerTranslateInput.reloadData()
|
|
|
|
|
|
if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfPt {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "pt")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(0)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfIn {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "in")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(1)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfCm {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "cm")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(2)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfMm {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "mm")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(3)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfM {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "m")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(4)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfKm {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "km")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(5)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfFt {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "ft")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(6)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfYd {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "yd")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(7)
|
|
|
} else if measureInfo.rulerTranslateUnit == CPDFMeasureConstants.sharedInstance().cpdfMi {
|
|
|
- rulerTranslatePopButton.selectItem(withTitle: "mi")
|
|
|
+ rulerTranslateSelect.selectItemAtIndex(8)
|
|
|
}
|
|
|
-
|
|
|
- precisionPopButton.removeAllItems()
|
|
|
- precisionPopButton.addItems(withTitles: ["1", "0.1", "0.01", "0.001", "0.0001"])
|
|
|
+ rulerTranslateSelect.reloadData()
|
|
|
|
|
|
switch measureInfo.precision {
|
|
|
case 1:
|
|
|
- precisionPopButton.selectItem(withTitle: "1")
|
|
|
+ precisionSelect.selectItemAtIndex(0)
|
|
|
case 10:
|
|
|
- precisionPopButton.selectItem(withTitle: "0.1")
|
|
|
+ precisionSelect.selectItemAtIndex(1)
|
|
|
case 100:
|
|
|
- precisionPopButton.selectItem(withTitle: "0.01")
|
|
|
+ precisionSelect.selectItemAtIndex(2)
|
|
|
case 1000:
|
|
|
- precisionPopButton.selectItem(withTitle: "0.001")
|
|
|
+ precisionSelect.selectItemAtIndex(3)
|
|
|
case 10000:
|
|
|
- precisionPopButton.selectItem(withTitle: "0.0001")
|
|
|
+ precisionSelect.selectItemAtIndex(4)
|
|
|
default:
|
|
|
break
|
|
|
}
|
|
|
-
|
|
|
- rulerBaseTexField.delegate = self
|
|
|
- rulerTranslateTextField.delegate = self
|
|
|
+ precisionSelect.reloadData()
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@IBAction func startModal(_ sender: Any) {
|
|
@@ -155,16 +239,142 @@ import Cocoa
|
|
|
self.window?.orderOut(self)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @objc func buttonItemClick_Cancel(_ sender: Any) {
|
|
|
+ if isDistance {
|
|
|
+ delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: nil)
|
|
|
+ } else {
|
|
|
+ delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: nil)
|
|
|
+ }
|
|
|
+ endModal("")
|
|
|
+ }
|
|
|
|
|
|
- func controlTextDidChange(_ obj: Notification) {
|
|
|
- if rulerBaseTexField.stringValue.count > 6 {
|
|
|
- rulerBaseTexField.stringValue = String(rulerBaseTexField.stringValue.prefix(6))
|
|
|
- } else if rulerTranslateTextField.stringValue.count > 6 {
|
|
|
- rulerTranslateTextField.stringValue = String(rulerTranslateTextField.stringValue.prefix(6))
|
|
|
+ @objc func buttonItemClick_Done(_ sender: Any) {
|
|
|
+// if isDistance {
|
|
|
+// if let distanceMeasureInfo = distanceMeasureInfo {
|
|
|
+// distanceMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
|
|
|
+// distanceMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
|
|
|
+// delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: distanceMeasureInfo)
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// if let perimeterMeasureInfo = perimeterMeasureInfo {
|
|
|
+// perimeterMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
|
|
|
+// perimeterMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
|
|
|
+// delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: perimeterMeasureInfo)
|
|
|
+// }
|
|
|
+// }
|
|
|
+ endModal("")
|
|
|
+ }
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//MARK: - ComponentSelectDelegate
|
|
|
+extension CDistanceSettingWindowController: ComponentSelectDelegate {
|
|
|
+ func componentSelectDidSelect(view: ComponentSelect?, menuItemProperty: ComponentMenuitemProperty?) {
|
|
|
+ if view == rulerBaseSelect {
|
|
|
+ let selectIndex = rulerBaseSelect.indexOfSelect()
|
|
|
+ var rulerBaseUnit = ""
|
|
|
+ switch selectIndex {
|
|
|
+ case 0:
|
|
|
+ rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfIn
|
|
|
+ case 1:
|
|
|
+ rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfCm
|
|
|
+ case 2:
|
|
|
+ rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfMm
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+
|
|
|
+ if isDistance {
|
|
|
+ distanceMeasureInfo?.rulerBaseUnit = rulerBaseUnit
|
|
|
+ } else {
|
|
|
+ perimeterMeasureInfo?.rulerBaseUnit = rulerBaseUnit
|
|
|
+ }
|
|
|
+ } else if view == rulerTranslateSelect {
|
|
|
+ let selectIndex = rulerTranslateSelect.indexOfSelect()
|
|
|
+ var rulerTranslateUnit = ""
|
|
|
+ var factor: CGFloat = 0
|
|
|
+ switch selectIndex {
|
|
|
+ case 0:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfPt
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptPt
|
|
|
+ case 1:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfCm
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptCm
|
|
|
+ case 2:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfIn
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptIn
|
|
|
+ case 3:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfMm
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptMm
|
|
|
+ case 4:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfM
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptM
|
|
|
+ case 5:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfKm
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptKm
|
|
|
+ case 6:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfFt
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptFt
|
|
|
+ case 7:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfYd
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptYd
|
|
|
+ case 8:
|
|
|
+ rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfMi
|
|
|
+ factor = CPDFMeasureConstants.sharedInstance().ptMi
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+
|
|
|
+ if isDistance {
|
|
|
+ distanceMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
|
|
|
+ distanceMeasureInfo?.factor = factor
|
|
|
+ } else {
|
|
|
+ perimeterMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
|
|
|
+ perimeterMeasureInfo?.factor = factor
|
|
|
+ }
|
|
|
+ } else if view == precisionSelect {
|
|
|
+ let selectIndex = precisionSelect.indexOfSelect()
|
|
|
+
|
|
|
+ var precision: Int = 0
|
|
|
+ switch selectIndex {
|
|
|
+ case 0:
|
|
|
+ precision = CPDFMeasureConstants.sharedInstance().precisionValueZero
|
|
|
+ case 1:
|
|
|
+ precision = CPDFMeasureConstants.sharedInstance().precisionValueOne
|
|
|
+ case 2:
|
|
|
+ precision = CPDFMeasureConstants.sharedInstance().precisionValueTwo
|
|
|
+ case 3:
|
|
|
+ precision = CPDFMeasureConstants.sharedInstance().precisionValueThree
|
|
|
+ case 4:
|
|
|
+ precision = CPDFMeasureConstants.sharedInstance().precisionValueFour
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+
|
|
|
+ if isDistance {
|
|
|
+ distanceMeasureInfo?.precision = precision
|
|
|
+ } else {
|
|
|
+ perimeterMeasureInfo?.precision = precision
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//MARK: - ComponentInputDelegate
|
|
|
+extension CDistanceSettingWindowController: ComponentInputDelegate {
|
|
|
+ func componentSelectTextDidChange(_ view: ComponentSelect) {
|
|
|
+ if rulerBaseInput.properties.text.count > 6 {
|
|
|
+ rulerBaseInput.properties.text = String(rulerBaseInput.properties.text.prefix(6))
|
|
|
+ rulerBaseInput.reloadData()
|
|
|
+ } else if rulerTranslateInput.properties.text.count > 6 {
|
|
|
+ rulerTranslateInput.properties.text = String(rulerTranslateInput.properties.text.prefix(6))
|
|
|
}
|
|
|
|
|
|
- let rulerBaseText = rulerBaseTexField.stringValue
|
|
|
- let rulerTranslateText = rulerTranslateTextField.stringValue
|
|
|
+ let rulerBaseText = rulerBaseInput.properties.text
|
|
|
+ let rulerTranslateText = rulerTranslateInput.properties.text
|
|
|
let nonDigits = CharacterSet.decimalDigits.inverted
|
|
|
if rulerBaseText.rangeOfCharacter(from: nonDigits) != nil ||
|
|
|
rulerTranslateText.rangeOfCharacter(from: nonDigits) != nil ||
|
|
@@ -172,127 +382,10 @@ import Cocoa
|
|
|
rulerTranslateText.isEmpty ||
|
|
|
rulerBaseText == "0" ||
|
|
|
rulerTranslateText == "0" {
|
|
|
- doneButton.isEnabled = false
|
|
|
- } else {
|
|
|
- doneButton.isEnabled = true
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @IBAction func buttonItemClick_Rulerbase(_ sender: NSPopUpButton) {
|
|
|
- let selectIndex = sender.indexOfSelectedItem
|
|
|
- var rulerBaseUnit = ""
|
|
|
- switch selectIndex {
|
|
|
- case 0:
|
|
|
- rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfIn
|
|
|
- case 1:
|
|
|
- rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfCm
|
|
|
- case 2:
|
|
|
- rulerBaseUnit = CPDFMeasureConstants.sharedInstance().cpdfMm
|
|
|
- default:
|
|
|
- break
|
|
|
- }
|
|
|
-
|
|
|
- if isDistance {
|
|
|
- distanceMeasureInfo?.rulerBaseUnit = rulerBaseUnit
|
|
|
- } else {
|
|
|
- perimeterMeasureInfo?.rulerBaseUnit = rulerBaseUnit
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @IBAction func buttonItemClick_Rulertranslate(_ sender: NSPopUpButton) {
|
|
|
- let selectIndex = sender.indexOfSelectedItem
|
|
|
- var rulerTranslateUnit = ""
|
|
|
- var factor: CGFloat = 0
|
|
|
- switch selectIndex {
|
|
|
- case 0:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfPt
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptPt
|
|
|
- case 1:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfCm
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptCm
|
|
|
- case 2:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfIn
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptIn
|
|
|
- case 3:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfMm
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptMm
|
|
|
- case 4:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfM
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptM
|
|
|
- case 5:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfKm
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptKm
|
|
|
- case 6:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfFt
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptFt
|
|
|
- case 7:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfYd
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptYd
|
|
|
- case 8:
|
|
|
- rulerTranslateUnit = CPDFMeasureConstants.sharedInstance().cpdfMi
|
|
|
- factor = CPDFMeasureConstants.sharedInstance().ptMi
|
|
|
- default:
|
|
|
- break
|
|
|
- }
|
|
|
-
|
|
|
- if isDistance {
|
|
|
- distanceMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
|
|
|
- distanceMeasureInfo?.factor = factor
|
|
|
+ doneButton.properties.isDisabled = true
|
|
|
} else {
|
|
|
- perimeterMeasureInfo?.rulerTranslateUnit = rulerTranslateUnit
|
|
|
- perimeterMeasureInfo?.factor = factor
|
|
|
+ doneButton.properties.isDisabled = false
|
|
|
}
|
|
|
+ doneButton.reloadData()
|
|
|
}
|
|
|
-
|
|
|
- @IBAction func buttonItemClick_Precision(_ sender: NSPopUpButton) {
|
|
|
- let selectIndex = sender.indexOfSelectedItem
|
|
|
- var precision: Int = 0
|
|
|
- switch selectIndex {
|
|
|
- case 0:
|
|
|
- precision = CPDFMeasureConstants.sharedInstance().precisionValueZero
|
|
|
- case 1:
|
|
|
- precision = CPDFMeasureConstants.sharedInstance().precisionValueOne
|
|
|
- case 2:
|
|
|
- precision = CPDFMeasureConstants.sharedInstance().precisionValueTwo
|
|
|
- case 3:
|
|
|
- precision = CPDFMeasureConstants.sharedInstance().precisionValueThree
|
|
|
- case 4:
|
|
|
- precision = CPDFMeasureConstants.sharedInstance().precisionValueFour
|
|
|
- default:
|
|
|
- break
|
|
|
- }
|
|
|
-
|
|
|
- if isDistance {
|
|
|
- distanceMeasureInfo?.precision = precision
|
|
|
- } else {
|
|
|
- perimeterMeasureInfo?.precision = precision
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @IBAction func buttonItemClick_Cancel(_ sender: Any) {
|
|
|
- if isDistance {
|
|
|
- delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: nil)
|
|
|
- } else {
|
|
|
- delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: nil)
|
|
|
- }
|
|
|
- endModal("")
|
|
|
- }
|
|
|
-
|
|
|
- @IBAction func buttonItemClick_Done(_ sender: Any) {
|
|
|
- if isDistance {
|
|
|
- if let distanceMeasureInfo = distanceMeasureInfo {
|
|
|
- distanceMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
|
|
|
- distanceMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
|
|
|
- delegate?.distanceSettingWindowController?(self, distanceMeasureInfo: distanceMeasureInfo)
|
|
|
- }
|
|
|
- } else {
|
|
|
- if let perimeterMeasureInfo = perimeterMeasureInfo {
|
|
|
- perimeterMeasureInfo.rulerBase = CGFloat(Float(rulerBaseTexField.stringValue) ?? 0)
|
|
|
- perimeterMeasureInfo.rulerTranslate = CGFloat(Float(rulerTranslateTextField.stringValue) ?? 0)
|
|
|
- delegate?.distanceSettingWindowController?(self, perimeterMeasureInfo: perimeterMeasureInfo)
|
|
|
- }
|
|
|
- }
|
|
|
- endModal("")
|
|
|
- }
|
|
|
-
|
|
|
}
|