KMConvertImageSettingView.swift 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. //
  2. // KMConvertImageSettingView.swift
  3. // PDF Master
  4. //
  5. // Created by tangchao on 2022/12/6.
  6. //
  7. class KMConvertImageSettingView: KMConvertSettingView {
  8. @IBOutlet weak var fileTypeTitleLabel: NSTextField!
  9. @IBOutlet weak var formatComboBox: NSComboBox!
  10. @IBOutlet weak var resolutionComboBox: NSComboBox!
  11. @IBOutlet weak var formatBox: NSBox!
  12. @IBOutlet weak var pageRangeBox: NSBox!
  13. @IBOutlet weak var topBoxHeightConst: NSLayoutConstraint!
  14. @IBOutlet weak var dpiTitleLabel: NSTextField!
  15. @IBOutlet weak var dpiSelectBox: NSBox!
  16. private var formartView: KMDesignSelect?
  17. private var dpiVC: KMDesignSelect?
  18. var selectedFormatIndex = 0
  19. var selectedResolutionIndex = 3
  20. override func awakeFromNib() {
  21. super.awakeFromNib()
  22. self.fileTypeTitleLabel.stringValue = NSLocalizedString("Format", comment: "")
  23. self.fileTypeTitleLabel.textColor = NSColor(hex: "#616469")
  24. self.fileTypeTitleLabel.font = .SFProTextSemibold(12)
  25. self.formartView = KMDesignSelect.init(withType: .Combox)
  26. self.formatBox.fillColor = .clear
  27. self.formatBox.contentView = self.formartView!.view
  28. self.formartView?.removeAllItems()
  29. self.formartView?.addItems(withObjectValues: ["JPEG","JPG","PNG","GIF","TIFF","TGA","BMP","JPEG-2000"])
  30. self.formartView?.selectItem(at: 0)
  31. self.formartView?.editable = false //默认属性,初始化可不设置
  32. self.formartView?.delete = self
  33. self.formartView?.updateUI()
  34. self.dpiTitleLabel.stringValue = NSLocalizedString("Resolution", comment: "")
  35. self.dpiTitleLabel.textColor = NSColor(hex: "#616469")
  36. self.dpiTitleLabel.font = .SFProTextBold(12)
  37. self.dpiVC = KMDesignSelect(withType: .Combox)
  38. self.dpiSelectBox.contentView = self.dpiVC?.view
  39. self.dpiVC?.removeAllItems()
  40. self.dpiVC?.addItems(withObjectValues: ["50 dpi", "72 dpi", "96 dpi", "150 dpi", "300 dpi", "600 dpi"])
  41. self.dpiVC?.selectItem(at: self.selectedResolutionIndex)
  42. self.dpiVC?.delete = self
  43. self.dpiVC?.updateUI()
  44. self.topBoxHeightConst.constant = 80
  45. self.resolutionComboBox.isHidden = true
  46. }
  47. override func viewDidMoveToWindow() {
  48. super.viewDidMoveToWindow()
  49. if (self.pageRangeItemView == nil) {
  50. let viwe = KMConvertPageRangeSettingItemView.createFromNib()
  51. self.pageRangeBox.contentView = viwe
  52. self.pageRangeItemView = viwe
  53. viwe?.itemClick = { [unowned self] index, _ in
  54. pageRangeSelectedIndex = index
  55. guard let callback = self.pageRangeDidChange else {
  56. return
  57. }
  58. callback(KMPageRange(rawValue: index)!)
  59. }
  60. viwe?.textDidEndEditingCallback = { [unowned self] textString in
  61. let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex)
  62. if (pageRange != .custom) {
  63. return
  64. }
  65. guard let callback = pageRangeDidInputFinishCallback else {
  66. return
  67. }
  68. callback(textString)
  69. }
  70. }
  71. self.pageRangeItemView?.isTextDidEndCallback = true
  72. self.pageRangeItemView?.pageCount = self.pageCount
  73. }
  74. override func getPageRangeString() -> String {
  75. if let view = self.pageRangeItemView {
  76. return view.pageRangeValue
  77. }
  78. return ""
  79. }
  80. }
  81. extension KMConvertImageSettingView: KMSelectPopButtonDelegate {
  82. func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) {
  83. if (obj.isEqual(to: self.formartView)) {
  84. if formartView!.indexOfSelectedItem < 0 {
  85. selectedFormatIndex = 0
  86. } else {
  87. selectedFormatIndex = formartView!.indexOfSelectedItem
  88. }
  89. } else if (obj.isEqual(to: self.dpiVC)) {
  90. if let index = self.dpiVC?.indexOfSelectedItem {
  91. self.selectedResolutionIndex = max(index, 0)
  92. }
  93. }
  94. }
  95. }