|
@@ -16,6 +16,11 @@ typealias KMHomeContentViewQucikToolsDidSelect = (_ view: KMHomeContentView, _ i
|
|
|
typealias KMHomeContentViewQucikToolsAddAction = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
|
|
|
typealias KMHomeContentViewQucikToolsRemoveAction = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
|
|
|
|
|
|
+enum KMHomeQucikToolsShowType {
|
|
|
+ case expand
|
|
|
+ case collapse
|
|
|
+}
|
|
|
+
|
|
|
class KMHomeContentView: KMBaseXibView {
|
|
|
@IBOutlet weak var qucikToolsLabel: NSTextField!
|
|
|
@IBOutlet weak var qucikToolsView: KMQucikToolsView!
|
|
@@ -23,6 +28,7 @@ class KMHomeContentView: KMBaseXibView {
|
|
|
@IBOutlet weak var pageLabel: NSTextField!
|
|
|
@IBOutlet weak var rightButton: NSButton!
|
|
|
@IBOutlet weak var moreButton: KMButton!
|
|
|
+ @IBOutlet weak var qucikToolsConstraintHeight: NSLayoutConstraint!
|
|
|
|
|
|
|
|
|
@IBOutlet weak var recentlyLabel: NSTextField!
|
|
@@ -40,6 +46,17 @@ class KMHomeContentView: KMBaseXibView {
|
|
|
var qucikToolsAddAction: KMHomeContentViewQucikToolsAddAction?
|
|
|
var qucikToolsRemoveAction: KMHomeContentViewQucikToolsRemoveAction?
|
|
|
|
|
|
+ var qucikToolsType: KMHomeQucikToolsShowType = .expand {
|
|
|
+ didSet {
|
|
|
+ self.qucikToolsView.type = qucikToolsType
|
|
|
+ if qucikToolsType == .collapse {
|
|
|
+ self.qucikToolsConstraintHeight.constant = 166
|
|
|
+ } else {
|
|
|
+ self.qucikToolsConstraintHeight.constant = 262
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
override func draw(_ dirtyRect: NSRect) {
|
|
|
super.draw(dirtyRect)
|
|
|
|
|
@@ -131,13 +148,45 @@ extension KMHomeContentView {
|
|
|
self.qucikToolsView.nextPage()
|
|
|
}
|
|
|
|
|
|
- @IBAction func moreButtonAction(_ sender: Any) {
|
|
|
- let homeQuickToolsWindowController: KMHomeQuickToolsWindowController = KMHomeQuickToolsWindowController.sharedHomeQuickTools
|
|
|
- homeQuickToolsWindowController.window?.center()
|
|
|
- NSWindow.currentWindow().addChildWindow(homeQuickToolsWindowController.window!, ordered: NSWindow.OrderingMode.above)
|
|
|
+ @IBAction func moreButtonAction(_ sender: NSButton) {
|
|
|
+ let collapse = NSLocalizedString("Collapse All", comment: "")
|
|
|
+ let quickTools = NSLocalizedString("Manage Quick Tools", comment: "")
|
|
|
+ let expand = NSLocalizedString("Expand All", comment: "")
|
|
|
+
|
|
|
+ var array: [String] = []
|
|
|
+ if qucikToolsType == .expand {
|
|
|
+ array = [collapse, quickTools]
|
|
|
+ } else {
|
|
|
+ array = [expand, quickTools]
|
|
|
+ }
|
|
|
+
|
|
|
+ let vc: KMHomePopViewController = KMHomePopViewController().initWithPopViewDataArr(array)
|
|
|
+ let createFilePopover: NSPopover = NSPopover.init()
|
|
|
+ createFilePopover.contentViewController = vc
|
|
|
+ createFilePopover.delegate = self
|
|
|
+ createFilePopover.animates = true
|
|
|
+ createFilePopover.behavior = .semitransient
|
|
|
+ createFilePopover.setValue(true, forKey: "shouldHideAnchor")
|
|
|
+ createFilePopover.show(relativeTo: CGRect(x: sender.bounds.origin.x, y: 10, width: sender.bounds.size.width, height: sender.bounds.size.height), of: sender, preferredEdge: .maxY)
|
|
|
+
|
|
|
+// vc.customBoxWidthLayoutConstraint.constant = sender.frame.width
|
|
|
+ vc.downCallback = { [unowned self] (downEntered: Bool, count: String) -> Void in
|
|
|
+ if downEntered {
|
|
|
+ createFilePopover.close()
|
|
|
+ if count == collapse {
|
|
|
+ self.qucikToolsType = .collapse
|
|
|
+ } else if count == expand {
|
|
|
+ self.qucikToolsType = .expand
|
|
|
+ } else if count == quickTools {
|
|
|
+ let homeQuickToolsWindowController: KMHomeQuickToolsWindowController = KMHomeQuickToolsWindowController.sharedHomeQuickTools
|
|
|
+ homeQuickToolsWindowController.window?.center()
|
|
|
+ NSWindow.currentWindow().addChildWindow(homeQuickToolsWindowController.window!, ordered: NSWindow.OrderingMode.above)
|
|
|
|
|
|
- homeQuickToolsWindowController.dataChange = { [unowned self] controller in
|
|
|
- self.qucikToolsView.reloadData()
|
|
|
+ homeQuickToolsWindowController.dataChange = { [unowned self] controller in
|
|
|
+ self.qucikToolsView.reloadData()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -157,3 +206,7 @@ extension KMHomeContentView {
|
|
|
callBack(self)
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+extension KMHomeContentView: NSPopoverDelegate {
|
|
|
+
|
|
|
+}
|