|
@@ -31,6 +31,8 @@ class KMRectangleController: NSViewController {
|
|
|
private let solidProperty = ComponentCSelectorProperty.init(size: .s, state: .normal, text: "", iconImage: NSImage(named: "lineStyle_solid"))
|
|
|
private let dashProperty = ComponentCSelectorProperty.init(size: .s, state: .normal, text: "", iconImage: NSImage(named: "lineStyle_dash"))
|
|
|
|
|
|
+ private var editColorGroup: ComponentCColorGroup?
|
|
|
+
|
|
|
private var annotations: [CPDFAnnotation] = [] //CPDFCircleAnnotation, CPDFSquareAnnotation
|
|
|
|
|
|
private var circleAnnotations: [CPDFCircleAnnotation] {
|
|
@@ -427,6 +429,78 @@ extension KMRectangleController: ComponentCColorDelegate {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ 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 self.squareAnnotations.count > 0 || viewManager?.subToolMode == .Rectangle {
|
|
|
+ if colorGroup == colorGroup {
|
|
|
+ key = KMRectangle_DefaultColorsKey
|
|
|
+ } else if colorGroup == fillColorGroup {
|
|
|
+ key = KMRectangle_Default_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)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if self.circleAnnotations.count > 0 || viewManager?.subToolMode == .Circle {
|
|
|
+ if colorGroup == colorGroup {
|
|
|
+ key = KMCircle_DefaultColorsKey
|
|
|
+ } else if colorGroup == fillColorGroup {
|
|
|
+ key = KMCircle_Default_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
|