KMHomeContentView.swift 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //
  2. // KMHomeContentView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/10/27.
  6. //
  7. import Cocoa
  8. typealias KMHomeContentViewHistoryDidSelect = (_ view: KMHomeContentView, _ url: URL) -> Void
  9. typealias KMHomeContentViewQucikToolsDidSelect = (_ view: KMHomeContentView, _ item: KMQucikToolsModel) -> Void
  10. class KMHomeContentView: KMBaseXibView {
  11. @IBOutlet weak var qucikToolsLabel: NSTextField!
  12. @IBOutlet weak var qucikToolsView: KMQucikToolsView!
  13. @IBOutlet weak var leftButton: NSButton!
  14. @IBOutlet weak var pageLabel: NSTextField!
  15. @IBOutlet weak var rightButton: NSButton!
  16. @IBOutlet weak var moreButton: KMButton!
  17. @IBOutlet weak var recentlyLabel: NSTextField!
  18. @IBOutlet weak var historyListView: KMHomeHistoryListView!
  19. @IBOutlet weak var horizontalButton: NSButton!
  20. @IBOutlet weak var verticalButton: NSButton!
  21. @IBOutlet weak var cleanButton: KMButton!
  22. var historyDidSelect: KMHomeContentViewHistoryDidSelect?
  23. var qucikToolsDidSelect: KMHomeContentViewQucikToolsDidSelect?
  24. override func draw(_ dirtyRect: NSRect) {
  25. super.draw(dirtyRect)
  26. // Drawing code here.
  27. self.setup()
  28. }
  29. override func setup() {
  30. self.pageLabel.textColor = KMAppearance.Layout.h0Color()
  31. self.qucikToolsView.didSelect = { [unowned self] view, item in
  32. guard let callBack = qucikToolsDidSelect else { return }
  33. callBack(self, item)
  34. }
  35. self.qucikToolsView.pageChange = { [unowned self] view in
  36. self.updatePageLabel()
  37. }
  38. self.historyListView.didSelect = { [unowned self] view, url in
  39. guard let callBack = historyDidSelect else { return }
  40. callBack(self, url)
  41. }
  42. self.updatePageLabel()
  43. }
  44. func updatePageLabel() {
  45. self.pageLabel.stringValue = "\(qucikToolsView.currentPage()) / \(qucikToolsView.pageCount())"
  46. }
  47. }
  48. //MARK: Action
  49. extension KMHomeContentView {
  50. @IBAction func leftButtonAction(_ sender: Any) {
  51. self.qucikToolsView.previousPage()
  52. }
  53. @IBAction func rightButtonAction(_ sender: Any) {
  54. self.qucikToolsView.nextPage()
  55. }
  56. @IBAction func moreButtonAction(_ sender: Any) {
  57. let homeQuickToolsWindowController: KMHomeQuickToolsWindowController = KMHomeQuickToolsWindowController.sharedHomeQuickTools
  58. homeQuickToolsWindowController.window?.center()
  59. NSWindow.currentWindow().addChildWindow(homeQuickToolsWindowController.window!, ordered: NSWindow.OrderingMode.above)
  60. homeQuickToolsWindowController.dataChange = { [unowned self] controller in
  61. self.qucikToolsView.reloadData()
  62. }
  63. }
  64. @IBAction func horizontalButtonAction(_ sender: Any) {
  65. self.historyListView.showType = .horizontal
  66. }
  67. @IBAction func verticalButtonAction(_ sender: Any) {
  68. self.historyListView.showType = .vertical
  69. }
  70. @IBAction func cleanButtonAction(_ sender: Any) {
  71. }
  72. }