|
@@ -75,7 +75,7 @@ extension KMToolbarItemView {
|
|
|
self.nameBtn.setTitleColor(color: Self.fetchTextNormalColor())
|
|
|
}
|
|
|
}
|
|
|
- self._updateSelectBackground()
|
|
|
+ self.updateSelectBackground()
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -85,9 +85,6 @@ extension KMToolbarItemView {
|
|
|
self.nameBtn.isEnabled = !self.unEnabled
|
|
|
self.imageViewBtn.isEnabled = !self.unEnabled
|
|
|
self.needExpandButton.isEnabled = !self.unEnabled
|
|
|
- if let data = self.customizeView {
|
|
|
- self.subviewsdEnable(view: data, isEnable: !self.unEnabled)
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
var isShowCustomToolTip = false {
|
|
@@ -226,7 +223,7 @@ extension KMToolbarItemView {
|
|
|
view.title = ""
|
|
|
return view
|
|
|
}()
|
|
|
- private var needExpandButton: NSButton = {
|
|
|
+ var needExpandButton: NSButton = {
|
|
|
let view = NSButton()
|
|
|
view.bezelStyle = .regularSquare
|
|
|
view.isBordered = false
|
|
@@ -234,24 +231,7 @@ extension KMToolbarItemView {
|
|
|
view.image = NSImage(named: "KMImageNameUXIconBtnTriDownNor")
|
|
|
return view
|
|
|
}()
|
|
|
- private var _popOver: NSPopover?
|
|
|
- var popOver: NSPopover? {
|
|
|
- get {
|
|
|
- return self._popOver
|
|
|
- }
|
|
|
- set {
|
|
|
- if self._popOver == nil || self._popOver!.isEqual(to: newValue) == false {
|
|
|
- self._popOver = newValue
|
|
|
- if (newValue != nil) {
|
|
|
- self.layer?.backgroundColor = Self.selectedBackgroundColor.cgColor
|
|
|
- } else {
|
|
|
- self._updateSelectBackground()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- private var _menuViewController: KMCustomButtonPopMenuViewController?
|
|
|
private var _kNormalImage: NSImage?
|
|
|
private var _originalHelpTip: String?
|
|
|
|
|
@@ -313,32 +293,7 @@ extension KMToolbarItemView {
|
|
|
promptV.layer?.backgroundColor = NSColor(red: 1, green: 56/255.0, blue: 25/255.0, alpha: 1).cgColor
|
|
|
|
|
|
self.isShowPrompt = false
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(_windowClosedPop), name: KMToolbarItemView.popOverClosedNotificationName, object: nil)
|
|
|
- }
|
|
|
-
|
|
|
- convenience init(itemIdentifier: String, postition imagePositionImagePosition: NSControl.ImagePosition, withPopMenu popMenuViewController: KMCustomButtonPopMenuViewController?) {
|
|
|
- self.init()
|
|
|
-
|
|
|
- self.boxImagePosition = imagePositionImagePosition
|
|
|
- self._menuViewController = popMenuViewController
|
|
|
- self._itemIdentifier = itemIdentifier
|
|
|
- self.wantsLayer = true
|
|
|
- self.layer?.cornerRadius = 4
|
|
|
- self.layer?.masksToBounds = true
|
|
|
- self.nameBtn.font = Self.textFont
|
|
|
-
|
|
|
- let promptV = NSView()
|
|
|
- self.promptView_ = promptV
|
|
|
- self.addSubview(promptV)
|
|
|
- promptV.wantsLayer = true
|
|
|
- promptV.layer?.cornerRadius = 3
|
|
|
- promptV.layer?.backgroundColor = NSColor(red: 1, green: 56/255.0, blue: 25/255.0, alpha: 1).cgColor
|
|
|
- self.isShowPrompt = false
|
|
|
-
|
|
|
- self._layoutView()
|
|
|
- if (popMenuViewController != nil) {
|
|
|
- NotificationCenter.default.addObserver(self, selector: #selector(_windowClosedPop), name: KMToolbarItemView.popOverClosedNotificationName, object: nil)
|
|
|
- }
|
|
|
+// NotificationCenter.default.addObserver(self, selector: #selector(_windowClosedPop), name: KMToolbarItemView.popOverClosedNotificationName, object: nil)
|
|
|
}
|
|
|
|
|
|
override func draw(_ dirtyRect: NSRect) {
|
|
@@ -417,17 +372,6 @@ extension KMToolbarItemView {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if self.isPopToolTip {
|
|
|
- self._showPopTip(self)
|
|
|
- }else {
|
|
|
- if (self.needExpandAction) {
|
|
|
- // KMImageNameUXIconBtnTriDownSel
|
|
|
- self.needExpandButton.image = NSImage(named: "KMImageNameUXIconBtnTriDownNor")
|
|
|
- self._showPop(self)
|
|
|
- }else if (self.isShowCustomToolTip) {
|
|
|
- self.perform(#selector(_showHUDHint), with: nil, afterDelay: 0.1)
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
override func mouseExited(with event: NSEvent) {
|
|
@@ -469,15 +413,6 @@ extension KMToolbarItemView {
|
|
|
if(self.nameBtn.superview != nil && !self.isSelected) {
|
|
|
self.nameBtn.setTitleColor(color: Self.fetchTextNormalColor())
|
|
|
}
|
|
|
- if self.isPopToolTip {
|
|
|
- NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(_showHUDHint), object: nil)
|
|
|
- self._closePop()
|
|
|
- }else{
|
|
|
- if (self.isShowCustomToolTip && !self.needExpandAction) {
|
|
|
- NSObject.cancelPreviousPerformRequests(withTarget: self, selector: #selector(_showHUDHint), object: nil)
|
|
|
- self._closePop()
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
public func calculateWidth() -> CGFloat {
|
|
@@ -485,7 +420,7 @@ extension KMToolbarItemView {
|
|
|
return iWidth
|
|
|
}
|
|
|
|
|
|
- private func _updateSelectBackground() {
|
|
|
+ func updateSelectBackground() {
|
|
|
if self.selectBackgroundType == .none {
|
|
|
if self.isSelected {
|
|
|
self.layer?.backgroundColor = Self.selectedBackgroundColor.cgColor
|
|
@@ -506,69 +441,6 @@ extension KMToolbarItemView {
|
|
|
// MARK: - Private Methods
|
|
|
|
|
|
extension KMToolbarItemView {
|
|
|
- private func _showPop(_ sender: NSView) {
|
|
|
- if (self._popOver != nil) {
|
|
|
- return
|
|
|
- }
|
|
|
- let menuViewController = KMCustomButtonPopMenuViewController()
|
|
|
- menuViewController.delegate = self
|
|
|
- menuViewController.dataSources = self
|
|
|
- self.popOver = NSPopover()
|
|
|
- self.popOver?.delegate = self
|
|
|
- self.popOver?.contentViewController = menuViewController
|
|
|
- self.popOver?.animates = false
|
|
|
- self.popOver?.behavior = .semitransient
|
|
|
- self.popOver?.contentSize = menuViewController.view.frame.size
|
|
|
-
|
|
|
- var sourcesRect = sender.bounds
|
|
|
- sourcesRect = sender.convert(sourcesRect, to: nil)
|
|
|
- sourcesRect.origin.y -= 20
|
|
|
- sourcesRect.size.height += 20
|
|
|
- self.window?.popover = self.popOver
|
|
|
- self.window?.sourcesRect = sourcesRect
|
|
|
-
|
|
|
- self.popOver?.show(relativeTo: CGRectInset(self.bounds, 0, 5), of: self, preferredEdge: .minY)
|
|
|
- }
|
|
|
-
|
|
|
- func _showPopTip(_ sender: NSView) {
|
|
|
- if (self._popOver != nil) {
|
|
|
- return
|
|
|
- }
|
|
|
- let popViewController = KMToolbarItemPopViewController()
|
|
|
- self.popOver = NSPopover()
|
|
|
- self.popOver?.contentViewController = popViewController
|
|
|
- self.popOver?.animates = false
|
|
|
- self.popOver?.behavior = .semitransient
|
|
|
- self.popOver?.contentSize = popViewController.view.frame.size
|
|
|
-
|
|
|
- popViewController.updateWithHelpTip(helpTip: self.toolTip ?? "")
|
|
|
- self.popOver?.show(relativeTo: CGRectInset(self.bounds, 0, 5), of: self, preferredEdge: .minY)
|
|
|
- }
|
|
|
-
|
|
|
- private func _closePop() {
|
|
|
- self.popOver?.close()
|
|
|
- self.popOver = nil
|
|
|
- }
|
|
|
-
|
|
|
- @objc private func _showHUDHint() {
|
|
|
- // KMToolbarItemPopViewController *popViewController = [[[KMToolbarItemPopViewController alloc] init] autorelease];
|
|
|
- // self.popOver = [[[NSPopover alloc] init] autorelease];
|
|
|
- // self.popOver.contentViewController = popViewController;
|
|
|
- // self.popOver.animates = NO;
|
|
|
- // self.popOver.behavior = NSPopoverBehaviorSemitransient;
|
|
|
- // self.popOver.backgroundColor = [KMAppearance KMBluegrey01Color];
|
|
|
- //
|
|
|
- // self.popOver.contentSize = popViewController.view.frame.size;
|
|
|
- // [popViewController updateWithHelpTip:self.originalHelpTip];
|
|
|
- // [self.popOver showRelativeToRect:self.bounds ofView:self preferredEdge:NSRectEdgeMinY];
|
|
|
- }
|
|
|
-
|
|
|
- @objc private func _windowClosedPop(sender: Notification) {
|
|
|
- if let data = self._popOver?.isEqual(to: sender.object), data {
|
|
|
- self.popOver = nil
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
private func _layoutView() {
|
|
|
if self.nameBtn.superview != nil {
|
|
|
self.nameBtn.removeFromSuperview()
|
|
@@ -744,101 +616,3 @@ extension KMToolbarItemView {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-extension KMToolbarItemView: NSPopoverDelegate {
|
|
|
- func popoverDidClose(_ notification: Notification) {
|
|
|
- if let data = self.popOver?.isEqual(to: notification.object), data {
|
|
|
- self._closePop()
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-extension KMToolbarItemView: KMCustomButtonPopMenuViewControllerDelegate, KMCustomButtonPopMenuViewControllerDataSources {
|
|
|
- func customViewButtonPopDidSelectIndex(_ index: Int) {
|
|
|
- self._closePop()
|
|
|
-
|
|
|
-// if (self.itemIdentifier == KMToolbarPageEditPageRangeItemIdentifier) {
|
|
|
- if let items = self.menuFormRepresentation?.submenu?.items {
|
|
|
- let item = items[index]
|
|
|
- _ = item.target?.perform(item.action, with: item)
|
|
|
- }
|
|
|
-// }
|
|
|
- }
|
|
|
-
|
|
|
- func numberOfLine() -> Int {
|
|
|
-// if (self.itemIdentifier == KMToolbarPageEditPageRangeItemIdentifier) {
|
|
|
- if let items = self.menuFormRepresentation?.submenu?.items {
|
|
|
- return items.count
|
|
|
- }
|
|
|
-// }
|
|
|
- return 0
|
|
|
- }
|
|
|
-
|
|
|
- func stringForLine(at index: Int) -> String? {
|
|
|
-// if (self.itemIdentifier == KMToolbarPageEditPageRangeItemIdentifier) {
|
|
|
- if let items = self.menuFormRepresentation?.submenu?.items {
|
|
|
- return items[index].title
|
|
|
- }
|
|
|
-// }
|
|
|
- return nil
|
|
|
- }
|
|
|
-
|
|
|
- func needInsertSeperateLine(at index: Int) -> Bool {
|
|
|
- if let items = self.menuFormRepresentation?.submenu?.items {
|
|
|
- return items[index].isSeparatorItem
|
|
|
- }
|
|
|
- return false
|
|
|
- }
|
|
|
-
|
|
|
- func needHightLightLine(at index: Int) -> Bool {
|
|
|
- return false
|
|
|
- }
|
|
|
-
|
|
|
- func imageForLine(at index: Int) -> NSImage? {
|
|
|
- if let items = self.menuFormRepresentation?.submenu?.items {
|
|
|
- return items[index].image
|
|
|
- }
|
|
|
- return nil
|
|
|
- }
|
|
|
-
|
|
|
- func itemEnable(at index: Int) -> Bool {
|
|
|
- if self.itemIdentifier == KMToolbarToolFormAlignIdentifier {
|
|
|
- if index <= 6 {
|
|
|
- if let cnt = self.pdfView?.activeAnnotations.count, cnt >= 2 {
|
|
|
- return true
|
|
|
- }
|
|
|
- } else {
|
|
|
- if let cnt = self.pdfView?.activeAnnotations.count, cnt >= 3 {
|
|
|
- return true
|
|
|
- }
|
|
|
- }
|
|
|
- return false
|
|
|
- }
|
|
|
- return true
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-extension KMToolbarItemView {
|
|
|
- func subviewsdEnable(view: NSView, isEnable: Bool) {
|
|
|
- if let data = view as? NSButton {
|
|
|
- data.isEnabled = isEnable
|
|
|
- }
|
|
|
-
|
|
|
- if let data = (view as? NSTextField) {
|
|
|
- data.isEnabled = isEnable
|
|
|
- }
|
|
|
-
|
|
|
- for subview in view.subviews {
|
|
|
- if subview.subviews.count != 0 {
|
|
|
- self.subviewsdEnable(view: subview, isEnable: isEnable)
|
|
|
- }
|
|
|
- if let data = subview as? NSButton {
|
|
|
- data.isEnabled = isEnable
|
|
|
- }
|
|
|
-
|
|
|
- if let data = (subview as? NSTextField) {
|
|
|
- data.isEnabled = isEnable
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|