|
@@ -47,6 +47,8 @@ class KMTextBoxController: NSViewController {
|
|
|
|
|
|
private var annotations: [CPDFFreeTextAnnotation] = []
|
|
|
|
|
|
+ private var editColorGroup: ComponentCColorGroup?
|
|
|
+
|
|
|
var pdfView: CPDFListView?
|
|
|
|
|
|
//MARK: - func
|
|
@@ -491,6 +493,7 @@ class KMTextBoxController: NSViewController {
|
|
|
dashProperty.state = .normal
|
|
|
solidProperty.state = .normal
|
|
|
}
|
|
|
+ lineTypeSelector.reloadData()
|
|
|
|
|
|
if let value = lineWidth {
|
|
|
let percent = value/18
|
|
@@ -561,6 +564,64 @@ extension KMTextBoxController: ComponentCColorDelegate {
|
|
|
KMAnnotationPropertiesColorManager.manager.updateDefaultColors(colors, forKey: KMFreeText_FillColorsKey)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ func componentCColorDidRightMouseUpWithStrings(_ view: NSView) -> [String] {
|
|
|
+ return [KMLocalizedString("Change Color"), KMLocalizedString("Restore default color")]
|
|
|
+ }
|
|
|
+
|
|
|
+ func componentCColorDidRightMenuItemClicked(_ colorGroup: ComponentCColorGroup, _ view: NSView, menuItemProperty: ComponentMenuitemProperty?) {
|
|
|
+ self.editColorGroup = colorGroup
|
|
|
+
|
|
|
+ if menuItemProperty?.text == KMLocalizedString("Change Color") {
|
|
|
+ if NSColorPanel.sharedColorPanelExists {
|
|
|
+ NSColorPanel.shared.setTarget(nil)
|
|
|
+ NSColorPanel.shared.setAction(nil)
|
|
|
+ }
|
|
|
+ NSColorPanel.shared.setTarget(self)
|
|
|
+ NSColorPanel.shared.setAction(#selector(colorChoose(_:)))
|
|
|
+ if let colorItem = view as? ComponentCColorItem, let color = colorItem.properties?.color {
|
|
|
+ NSColorPanel.shared.color = color
|
|
|
+ }
|
|
|
+
|
|
|
+ let viewRect = view.superview?.convert(view.frame, to: nil) ?? CGRectZero
|
|
|
+ var rect = NSColorPanel.shared.frame
|
|
|
+ rect.origin.x = viewRect.minX
|
|
|
+ rect.origin.y = viewRect.minY - 30
|
|
|
+ NSColorPanel.shared.setFrame(rect, display: true)
|
|
|
+
|
|
|
+ NSColorPanel.shared.orderFront(nil)
|
|
|
+ } else if menuItemProperty?.text == KMLocalizedString("Restore default color") {
|
|
|
+ if let colorItem = colorGroup.rightClickedItem {
|
|
|
+ var key: String?
|
|
|
+ if colorGroup == fontColorGroup {
|
|
|
+ key = KMFreeTextPropertColorsKey
|
|
|
+ } else if colorGroup == borderColorGroup {
|
|
|
+ key = KMFreeText_BorderColorsKey
|
|
|
+ } else if colorGroup == fillColorGroup {
|
|
|
+ key = KMFreeText_FillColorsKey
|
|
|
+ }
|
|
|
+ if let value = key {
|
|
|
+ let colors: [NSColor] = KMAnnotationPropertiesColorManager.manager.defaultColors(key: value)
|
|
|
+ if colors.count > 4, colorItem.itemIndex >= 0, colorItem.itemIndex < colors.count {
|
|
|
+ colorItem.properties?.color = colors[colorItem.itemIndex]
|
|
|
+ colorItem.reloadData()
|
|
|
+ colorGroup.componentCColorDidChoosePanelColor(colorGroup, nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func colorChoose(_ sender: Any) {
|
|
|
+ if let colorGroup = self.editColorGroup, let colorItem = colorGroup.rightClickedItem {
|
|
|
+ let color = NSColorPanel.shared.color
|
|
|
+ colorItem.properties?.color = color
|
|
|
+
|
|
|
+ colorItem.reloadData()
|
|
|
+
|
|
|
+ colorGroup.componentCColorDidChoosePanelColor(colorGroup, nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//MARK: - ComponentSliderDelegate
|