// // KMHomeContentView.swift // PDF Master // // Created by lizhe on 2023/10/27. // import Cocoa typealias KMHomeContentViewHistoryDidSelect = (_ view: KMHomeContentView, _ url: URL) -> Void typealias KMHomeContentViewQucikToolsDidSelect = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void class KMHomeContentView: KMBaseXibView { @IBOutlet weak var qucikToolsLabel: NSTextField! @IBOutlet weak var qucikToolsView: KMQucikToolsView! @IBOutlet weak var leftButton: NSButton! @IBOutlet weak var pageLabel: NSTextField! @IBOutlet weak var rightButton: NSButton! @IBOutlet weak var moreButton: KMButton! @IBOutlet weak var recentlyLabel: NSTextField! @IBOutlet weak var historyListView: KMHomeHistoryListView! @IBOutlet weak var horizontalButton: NSButton! @IBOutlet weak var verticalButton: NSButton! @IBOutlet weak var cleanButton: KMButton! var historyDidSelect: KMHomeContentViewHistoryDidSelect? var qucikToolsDidSelect: KMHomeContentViewQucikToolsDidSelect? override func draw(_ dirtyRect: NSRect) { super.draw(dirtyRect) // Drawing code here. self.setup() } override func setup() { self.pageLabel.textColor = KMAppearance.Layout.h0Color() self.qucikToolsView.didSelect = { [unowned self] view, item in guard let callBack = qucikToolsDidSelect else { return } callBack(self, item) } self.qucikToolsView.pageChange = { [unowned self] view in self.updatePageLabel() } self.historyListView.didSelect = { [unowned self] view, url in guard let callBack = historyDidSelect else { return } callBack(self, url) } self.updatePageLabel() } func updatePageLabel() { self.pageLabel.stringValue = "\(qucikToolsView.currentPage()) / \(qucikToolsView.pageCount())" } } //MARK: Action extension KMHomeContentView { @IBAction func leftButtonAction(_ sender: Any) { self.qucikToolsView.previousPage() } @IBAction func rightButtonAction(_ sender: Any) { 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) homeQuickToolsWindowController.dataChange = { [unowned self] controller in self.qucikToolsView.reloadData() } } @IBAction func horizontalButtonAction(_ sender: Any) { self.historyListView.showType = .horizontal } @IBAction func verticalButtonAction(_ sender: Any) { self.historyListView.showType = .vertical } @IBAction func cleanButtonAction(_ sender: Any) { } }