KMCropSettingWindowController.swift 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. //
  2. // KMCropSettingWindowController.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2022/12/30.
  6. //
  7. import Cocoa
  8. typealias KMCropSettingWindowControllerItemClick = (_ index: Int) -> ()
  9. class KMCropSettingWindowController: NSWindowController {
  10. @IBOutlet weak var titleLabel: NSTextField!
  11. @IBOutlet weak var pageRangeBox: NSBox!
  12. @IBOutlet weak var pageSizeBox: NSBox!
  13. @IBOutlet weak var applyButton: NSButton!
  14. @IBOutlet weak var cancelButton: NSButton!
  15. private var pagePageView = KMConvertPageRangeSettingItemView.createFromNib()
  16. private var pageSizeView = KMCropSettingPageSizeView()
  17. var itemClick: KMCropSettingWindowControllerItemClick!
  18. var pageCount: Int = 0
  19. var pageRangeIndex: Int = 0
  20. var pageRangePages: Array<Int> = []
  21. var pageSize: String = "None"
  22. override func windowDidLoad() {
  23. super.windowDidLoad()
  24. self.titleLabel.stringValue = "裁剪设置"
  25. let pageRangeView = self.pagePageView
  26. pageRangeView?.frame = self.pageRangeBox.contentView!.bounds
  27. pageRangeView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
  28. self.pageRangeBox.contentView?.addSubview(pageRangeView!)
  29. pageRangeView!.pageSizeComboBox.removeAllItems()
  30. pageRangeView!.pageSizeComboBox.addItems(withObjectValues: ["当前页面","全部页面", "奇数页面", "偶数页面", "自定义页面"])
  31. pageRangeView!.pageSizeComboBox.selectItem(at: 0)
  32. pageRangeView?.isTextDidEndCallback = true
  33. pageRangeView?.itemClick = {
  34. [self] (index: Int) in
  35. self.pageRangeIndex = index
  36. }
  37. pageRangeView?.textDidEndEditingCallback = {
  38. [self] (textString: String) in
  39. let array = KMPageRangeTools.findSelectPage(pageRangeString: textString, pageCount: self.pageCount)
  40. if (array.count <= 0) {
  41. let alert = NSAlert()
  42. alert.alertStyle = .warning
  43. alert.messageText = NSLocalizedString("Invalid page range or the page number is out of range. Please try again.", comment: "")
  44. alert.runModal()
  45. return
  46. }
  47. self.pageRangePages.removeAll()
  48. for i in array {
  49. self.pageRangePages.append(i)
  50. }
  51. }
  52. let pageSizeView = self.pageSizeView
  53. pageSizeView.frame = self.pageSizeBox.contentView!.bounds
  54. pageSizeView.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
  55. self.pageSizeBox.contentView?.addSubview(pageSizeView)
  56. pageSizeView.itemClick = {
  57. (index: Int, value: Any) in
  58. self.pageSize = value as! String
  59. }
  60. cancelButton.title = NSLocalizedString("取消", comment: "")
  61. cancelButton.isBordered = false
  62. cancelButton.wantsLayer = true
  63. cancelButton.layer?.borderWidth = 1
  64. cancelButton.layer?.borderColor = NSColor.black.cgColor
  65. cancelButton.layer?.cornerRadius = 4
  66. cancelButton.target = self
  67. cancelButton.action = #selector(cancelButtonAction)
  68. applyButton.title = NSLocalizedString("应用", comment: "")
  69. applyButton.isBordered = false
  70. applyButton.wantsLayer = true
  71. applyButton.layer?.cornerRadius = 4
  72. applyButton.target = self
  73. applyButton.action = #selector(applyButtonAction)
  74. applyButton.layer?.backgroundColor = NSColor.black.cgColor
  75. applyButton.attributedTitle = NSMutableAttributedString(string: applyButton.title, attributes: [NSAttributedString.Key.foregroundColor : NSColor.white])
  76. }
  77. @objc func cancelButtonAction() {
  78. guard let callback = self.itemClick else {
  79. return
  80. }
  81. callback(1)
  82. }
  83. @objc func applyButtonAction() {
  84. guard let callback = self.itemClick else {
  85. return
  86. }
  87. callback(2)
  88. }
  89. }