KMPrintSettingView.swift 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. //
  2. // KMPrintSettingView.swift
  3. // PDF Master
  4. //
  5. // Created by lizhe on 2023/12/4.
  6. //
  7. import Cocoa
  8. typealias KMPrintSettingViewPageSettingChange = (_ view: KMPrintSettingView, _ model: KMPrintModel) -> Void
  9. typealias KMPrintSettingViewPrintSettingChange = (_ view: KMPrintSettingView, _ model: KMPrintModel) -> Void
  10. class KMPrintSettingView: KMBaseXibView {
  11. @IBOutlet weak var defaultView: KMPrintDefaultView!
  12. @IBOutlet weak var posterView: KMPrintPosterView!
  13. @IBOutlet weak var multipageView: KMPrintMultipageView!
  14. @IBOutlet weak var pamphletView: KMPrintPamphletView!
  15. var pageSettingChange: KMPrintSettingViewPageSettingChange?
  16. var printSettingChange: KMPrintSettingViewPrintSettingChange?
  17. var type: KMPrintModelType = .size {
  18. didSet {
  19. self.reloadData()
  20. }
  21. }
  22. override func setup() {
  23. defaultView.pageSettingChange = { [unowned self] view, model in
  24. self.pageSettingChange?(self, model)
  25. }
  26. defaultView.printSettingChange = { [unowned self] view, model in
  27. self.printSettingChange?(self, model)
  28. }
  29. posterView.pageSettingChangeAction = { [unowned self] view, model in
  30. self.pageSettingChange?(self, model)
  31. }
  32. posterView.printSettingChangeAction = { [unowned self] view, model in
  33. self.printSettingChange?(self, model)
  34. }
  35. multipageView.pageSettingChangeAction = { [unowned self] view, model in
  36. self.pageSettingChange?(self, model)
  37. }
  38. multipageView.printSettingChangeAction = { [unowned self] view, model in
  39. self.printSettingChange?(self, model)
  40. }
  41. }
  42. override func reloadData() {
  43. self.defaultView.isHidden = true
  44. self.posterView.isHidden = true
  45. self.multipageView.isHidden = true
  46. self.pamphletView.isHidden = true
  47. switch type {
  48. case .size:
  49. self.defaultView.isHidden = false
  50. case .poster:
  51. self.posterView.isHidden = false
  52. case .multipage:
  53. self.multipageView.isHidden = false
  54. case .pamphlet:
  55. self.pamphletView.isHidden = false
  56. default:
  57. break
  58. }
  59. }
  60. }