// // KMPageEditInsertCustomPageWindowController.swift // PDF Reader Pro // // Created by tangchao on 2023/1/11. // typealias KMPageEditInsertCustomPageItemClick = (_ index: Int) -> () class KMPageEditInsertCustomPageWindowController: KMBaseWindowController { @IBOutlet weak var titleLabel: NSTextField! @IBOutlet weak var typeBox: NSBox! @IBOutlet weak var pageSizeBox: NSBox! @IBOutlet weak var directionBox: NSBox! var typeView = KMPageEditInsertTypeItemView() var pageSizeView = KMPageEditInsertPageSizeItemView() var directionView = KMPageEditInsertDirectionItemView() @IBOutlet weak var cancelButton: NSButton! @IBOutlet weak var insertButton: NSButton! var cancelVC: KMDesignButton? var insertVC: KMDesignButton? var selectedPageSize: NSSize = NSZeroSize var itemClick: KMPageEditInsertCustomPageItemClick? convenience init() { self.init(windowNibName: "KMPageEditInsertCustomPageWindowController") } var typeIndex: Int { get { // self.typeView.selectedIndex return 1 } } var pageSize: NSSize { get { self.pageSizeView.getPageSize } } var direction: Int { get { return self.directionView.getDirection() } } override func windowDidLoad() { super.windowDidLoad() // self.typeBox.contentView?.addSubview(self.typeView) // self.typeView.frame = self.typeBox.contentView!.bounds // self.typeView.autoresizingMask = [.width, .height] // self.typeView.items = [(NSLocalizedString("Blank page", comment: ""), ""), // (NSLocalizedString("Line page", comment: ""), "horizontal_line"), // (NSLocalizedString("Five line score", comment: ""), "five_line_score"), // (NSLocalizedString("Plaid page", comment: ""), "plaid")] } override func initDefaultValue() { super.initDefaultValue() self.titleLabel.stringValue = NSLocalizedString("Insert Custom Page", comment: "") self.titleLabel.font = .SFProTextSemiboldFont(16) self.titleLabel.textColor = KMAppearance.titleColor() self.cancelVC?.target = self self.cancelVC?.action = #selector(cancelButtonAction) self.cancelVC?.stringValue = NSLocalizedString("Cancel", comment: "") self.cancelVC?.button(type: .Sec, size: .m) self.cancelVC?.button.keyEquivalent = KMKeyEquivalent.esc.string() self.insertVC?.target = self self.insertVC?.action = #selector(insertButtonAction) self.insertVC?.stringValue = NSLocalizedString("Insert", comment: "") self.insertVC?.button(type: .Cta, size: .m) self.insertVC?.button.keyEquivalent = KMKeyEquivalent.enter } override func initSubViews() { super.initSubViews() self.pageSizeBox.contentView = self.pageSizeView self.pageSizeView.selectedPageSize = self.selectedPageSize self.pageSizeView.itemClick = { [unowned self] index, params in if (index == 1) { /// 当前页 var radioIndex: Int = 0 if let value = params.first as? Int { radioIndex = value } if (radioIndex == 1) { // 当前页 } else if (radioIndex == 2) { /// 标准 } else if (radioIndex == 3) { /// 自定义 } } else if (index == 2) { /// 标准[下拉框] let size = self.pageSizeView.getPageSize if (size.width > size.height) { self.directionView.switchDirection(isHor: true) } else { self.directionView.switchDirection(isHor: false) } } else if (index == 3) { /// 自定义[宽度] let size = self.pageSizeView.getCustomSize if (size.width > size.height) { self.directionView.switchDirection(isHor: true) } else { self.directionView.switchDirection(isHor: false) } } else if (index == 4) { /// 自定义[高度] let size = self.pageSizeView.getCustomSize if (size.height > size.width) { self.directionView.switchDirection(isHor: false) } else { self.directionView.switchDirection(isHor: true) } } else if (index == 5) { /// 自定义[下拉框] } } self.directionBox.contentView = self.directionView self.directionView.itemClick = { [weak self] index, value in if (index == 1) { /// 横向页面 self?.pageSizeView.changeDirection(isHor: true) } else if (index == 2) { /// 纵向页面 self?.pageSizeView.changeDirection(isHor: false) } } self.cancelVC = KMDesignButton(withType: .Text) self.cancelButton.addSubview(self.cancelVC!.view) self.cancelVC?.view.frame = self.cancelButton.bounds self.cancelVC?.view.autoresizingMask = [.width, .height] self.insertVC = KMDesignButton(withType: .Text) self.insertButton.addSubview(self.insertVC!.view) self.insertVC?.view.frame = self.insertButton.bounds self.insertVC?.view.autoresizingMask = [.width, .height] } @objc func cancelButtonAction() { guard let callback = self.itemClick else { return } callback(1) } @objc func insertButtonAction() { guard let callback = self.itemClick else { return } callback(2) } }