123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- //
- // KMRedactPageRangeContentView.swift
- // PDF Reader Pro
- //
- // Created by tangchao on 2023/1/19.
- //
- import Cocoa
- class KMRedactPageRangeContentView: KMRedactContentBaseView {
- @IBOutlet weak var currentPageRadio: NSButton!
- @IBOutlet weak var allPageRadio: NSButton!
- @IBOutlet weak var oddPageRadio: NSButton!
- @IBOutlet weak var evenPageRadio: NSButton!
- @IBOutlet weak var customPageRadio: NSButton!
- @IBOutlet weak var inputView: NSView!
- @IBOutlet weak var inputTextField: NSTextField!
- @IBOutlet weak var totalNumberLabel: NSTextField!
-
- var pageCount: Int {
- get {
- -1
- }
- set {
- self.totalNumberLabel.stringValue = "/\(newValue)"
- }
- }
-
- override func awakeFromNib() {
- super.awakeFromNib()
-
- self.currentPageRadio.title = NSLocalizedString("Mark current page", comment: "")
- self.allPageRadio.title = NSLocalizedString("Mark all pages", comment: "")
- self.oddPageRadio.title = NSLocalizedString("Mark odd pages", comment: "")
- self.evenPageRadio.title = NSLocalizedString("Mark even pages", comment: "")
- self.customPageRadio.title = NSLocalizedString("Mark specific page range", comment: "")
-
- for radio in [self.currentPageRadio, self.allPageRadio, self.oddPageRadio, self.evenPageRadio, self.customPageRadio] {
- radio?.target = self
- radio?.action = #selector(radioAction)
- }
-
- selectRadio(self.currentPageRadio)
-
- self.inputView.wantsLayer = true
- self.inputView.layer?.backgroundColor = NSColor(white: 238.0/255.0, alpha: 1.0).cgColor
- self.inputTextField.placeholderString = NSLocalizedString("e.g. 1,3-5,10", comment: "")
- self.inputTextField.focusRingType = .none
- self.inputTextField.delegate = self
- }
-
- @objc private func radioAction(sender: NSButton) {
- selectRadio(sender)
-
- guard let callback = self.itemClick else {
- return
- }
-
- var index: Int = 1
- for radio in [self.currentPageRadio, self.allPageRadio, self.oddPageRadio, self.evenPageRadio, self.customPageRadio] {
- if ((radio?.isEqual(to: sender))!) {
- break
- }
- index += 1
- }
-
- callback(index, nil)
- }
-
- private func selectRadio(_ selectedRadio: NSButton) {
- for radio in [self.currentPageRadio, self.allPageRadio, self.oddPageRadio, self.evenPageRadio, self.customPageRadio] {
- if ((radio?.isEqual(to: selectedRadio))!) {
- radio?.state = .on
- } else {
- radio?.state = .off
- }
- }
-
- if (customPageRadio.state == .on) {
- self.inputTextField.isEditable = true
- } else {
- self.inputTextField.isEditable = false
- }
- }
- }
- extension KMRedactPageRangeContentView: NSTextFieldDelegate {
- func controlTextDidChange(_ obj: Notification) {
- if ((self.inputTextField.isEqual(to: obj.object)) == false) {
- return
- }
-
- guard let callback = self.itemClick else {
- return
- }
- callback(6, self.inputTextField.stringValue)
- }
- }
|