123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- //
- // KMConvertImageSettingView.swift
- // PDF Master
- //
- // Created by tangchao on 2022/12/6.
- //
- import Cocoa
- class KMConvertImageSettingView: KMConvertSettingView, NibLoadable {
- @IBOutlet weak var fileTypeTitleLabel: NSTextField!
- @IBOutlet weak var formatComboBox: NSComboBox!
- @IBOutlet weak var resolutionComboBox: NSComboBox!
-
- @IBOutlet weak var formatBox: NSBox!
- var formartView: KMDesignSelect!
-
- @IBOutlet weak var pageRangeBox: NSBox!
-
- @IBOutlet weak var topBoxHeightConst: NSLayoutConstraint!
-
- var selectedFormatIndex = 0
- var selectedResolutionIndex = 3
- static var nibName: String? {
- return "KMConvertBaseWindowController"
- }
-
- static func createFromNib(in bundle: Bundle = Bundle.main) -> Self? {
- guard let nibName = nibName else { return nil }
- var topLevelArray: NSArray? = nil
- bundle.loadNibNamed(NSNib.Name(nibName), owner: nil, topLevelObjects: &topLevelArray)
- guard let results = topLevelArray else { return nil }
- let views = Array<Any>(results).filter { $0 is Self }
- return views.last as? Self
- }
-
- override func awakeFromNib() {
- super.awakeFromNib()
-
- fileTypeTitleLabel.stringValue = NSLocalizedString("Format", comment: "")
- fileTypeTitleLabel.textColor = NSColor(hex: "#616469")
- fileTypeTitleLabel.font = .SFProTextSemibold(12)
-
- formartView = KMDesignSelect.init(withType: .Combox)
-
- formatBox.fillColor = .clear
- formatBox.contentView = formartView.view
-
- formartView.removeAllItems()
- formartView.addItems(withObjectValues: ["JPEG","JPG","PNG","GIF","TIFF","TGA","BMP","JPEG-2000"])
- formartView.selectItem(at: 0)
- formartView.editable = false //默认属性,初始化可不设置
- formartView.delete = self
- formartView.updateUI()
-
- // resolutionComboBox.isEditable = false
- // resolutionComboBox.removeAllItems()
- // resolutionComboBox.addItems(withObjectValues: ["50 dpi", "72 dpi", "96 dpi", "150 dpi", "300 dpi", "600 dpi"])
- // resolutionComboBox.selectItem(at: 3)
- // resolutionComboBox.delegate = self
-
- self.topBoxHeightConst.constant = 80
- resolutionComboBox.isHidden = true
- }
-
- override func viewDidMoveToWindow() {
- super.viewDidMoveToWindow()
-
- let pageRangeItemView = KMConvertPageRangeSettingItemView.createFromNib()
- pageRangeItemView?.frame = pageRangeBox.contentView!.bounds
- pageRangeItemView?.autoresizingMask = NSView.AutoresizingMask(rawValue: 18)
- pageRangeBox.contentView = pageRangeItemView
- self.pageRangeItemView = pageRangeItemView
- pageRangeItemView?.isTextDidEndCallback = true
- pageRangeItemView?.pageCount = self.pageCount
-
- pageRangeItemView?.itemClick = { [unowned self] index, _ in
- pageRangeSelectedIndex = index
-
- guard let callback = self.pageRangeDidChange else {
- return
- }
-
- callback(KMPageRange(rawValue: index)!)
- }
-
- pageRangeItemView?.textDidEndEditingCallback = { [unowned self] textString in
- let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex)
- if (pageRange != .custom) {
- return
- }
-
- guard let callback = pageRangeDidInputFinishCallback else {
- return
- }
-
- callback(textString)
- }
- }
-
- override func getPageRangeString() -> String {
- if let view = self.pageRangeItemView {
- return view.pageRangeValue
- }
- return ""
- }
- }
- extension KMConvertImageSettingView: KMSelectPopButtonDelegate {
- func km_comboBoxSelectionDidChange(_ obj: KMDesignSelect) {
- if formartView.isEqual(to: obj) {
- if formartView.indexOfSelectedItem < 0 {
- selectedFormatIndex = 0
- } else {
- selectedFormatIndex = formartView.indexOfSelectedItem
- }
- }
- // else if resolutionComboBox.isEqual(to: notification.object) {
- // if resolutionComboBox.indexOfSelectedItem < 0 {
- // selectedResolutionIndex = 0
- // } else {
- // selectedResolutionIndex = resolutionComboBox.indexOfSelectedItem
- // }
- // }
- }
-
- func km_controlTextDidEndEditing(_ obj: KMDesignSelect) {
-
- }
- }
|