123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- //
- // CPageRangeSelectView.swift
- // PDFViewer-Swift
- //
- // Copyright © 2014-2024 PDF Technologies, Inc. All Rights Reserved.
- //
- // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- // This notice may not be removed from this file.
- //
- import UIKit
- @objc protocol CPageRangeSelectViewDelegate: AnyObject {
- @objc optional func pageRangeSelectView(_ pageRangeSelectView: CPageRangeSelectView, pageRange: String)
- }
- class CPageRangeSelectView: UIView {
-
- weak var delegate: CPageRangeSelectViewDelegate?
-
- var parentVC: UIViewController?
-
- private var titleLabel: UILabel?
-
- var pageRangeView: UIView?
-
- var pageRangeLabel: UILabel?
-
- var pageRangeButton: UIButton?
-
- var pageRangeIcon: UIImageView?
-
- // MARK: - Initializers
-
- override init(frame: CGRect) {
-
- super.init(frame: frame)
-
- titleLabel = UILabel()
- titleLabel?.autoresizingMask = .flexibleRightMargin
- titleLabel?.text = NSLocalizedString("Page Range", comment: "")
- titleLabel?.textColor = .gray
- titleLabel?.font = UIFont.systemFont(ofSize: 12.0)
- if titleLabel != nil {
- addSubview(titleLabel!)
- }
-
- pageRangeView = UIView()
- pageRangeView?.autoresizingMask = .flexibleLeftMargin
- pageRangeView?.layer.borderColor = UIColor.gray.cgColor
- pageRangeView?.layer.borderWidth = 0.5
- pageRangeView?.layer.cornerRadius = 5
- pageRangeView?.layer.masksToBounds = true
- if pageRangeView != nil {
- addSubview(pageRangeView!)
- }
-
- pageRangeLabel = UILabel()
- pageRangeLabel?.text = NSLocalizedString("All Pages", comment: "")
- pageRangeLabel?.font = UIFont.systemFont(ofSize: 14)
- pageRangeLabel?.textColor = CPDFColorUtils.CPageEditToolbarFontColor()
- pageRangeLabel?.textAlignment = .left
- if pageRangeLabel != nil {
- pageRangeView?.addSubview(pageRangeLabel!)
- }
-
- pageRangeIcon = UIImageView(image: UIImage(named: "CWatermarkPreImage", in: Bundle(for: self.classForCoder), compatibleWith: nil))
- if pageRangeIcon != nil {
- pageRangeView?.addSubview(pageRangeIcon!)
- }
-
- pageRangeButton = UIButton()
- pageRangeButton?.backgroundColor = .clear
- pageRangeButton?.addTarget(self, action: #selector(buttonItemClicked_range), for: .touchUpInside)
- if pageRangeButton != nil {
- pageRangeView?.addSubview(pageRangeButton!)
- }
- }
-
- override func layoutSubviews() {
- super.layoutSubviews()
-
- titleLabel?.frame = CGRect(x: 20, y: 0, width: 100, height: 30)
- pageRangeView?.frame = CGRect(x: bounds.size.width - 200, y: 0, width: 180, height: 30)
- pageRangeLabel?.frame = CGRect(x: 5, y: 0, width: 145, height: 30)
- pageRangeIcon?.frame = CGRect(x: 150, y: 5, width: 20, height: 20)
- pageRangeButton?.frame = pageRangeView?.bounds ?? .zero
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- // MARK: - Action
-
- @objc func buttonItemClicked_range(_ sender: UIButton) {
- let alertController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet)
- if UI_USER_INTERFACE_IDIOM() == .pad {
- alertController.popoverPresentationController?.sourceView = self.pageRangeButton
- alertController.popoverPresentationController?.sourceRect = ((self.pageRangeButton)?.bounds) ?? .zero
- }
-
- let defaultRange = UIAlertAction(title: NSLocalizedString("All Pages", comment: ""), style: .default) { (action) in
- self.pageRangeLabel?.text = NSLocalizedString("All Pages", comment: "")
- self.delegate?.pageRangeSelectView?(self, pageRange: "")
- }
-
- let customRange = UIAlertAction(title: NSLocalizedString("Current Page", comment: ""), style: .default) { (action) in
- self.pageRangeLabel?.text = NSLocalizedString("Current Page", comment: "")
- self.delegate?.pageRangeSelectView?(self, pageRange: "0")
- }
-
- let cancelAction = UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .cancel) { (action) in
-
- }
-
- alertController.addAction(defaultRange)
- alertController.addAction(customRange)
- alertController.addAction(cancelAction)
-
- parentVC?.present(alertController, animated: true, completion: nil)
- }
-
- }
|