123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import Cocoa
- class KMPrintAccessoryController: NSViewController, NSPrintPanelAccessorizing {
- let AUTOROTATE_KEY = "autoRotate"
- let AUTOROTATE_KEYPATH = "representedObject.dictionary.PDFPrintAutoRotate"
- let PRINTSCALINGMODE_KEY = "printScalingMode"
- let PRINTSCALINGMODE_KEYPATH = "representedObject.dictionary.PDFPrintScalingMode"
- let REPRESENTEDOBJECT_KEY = "representedObject"
-
- var printOperation: NSPrintOperation?
- @objc var printScalingMode: PDFPrintScalingMode
- {
- @objc set {
- let printInfo = self.representedObject as! NSPrintInfo
- printInfo.dictionary().setObject(newValue.rawValue, forKey: "PDFPrintScalingMode" as NSCopying)
- }
- @objc get {
- return PDFPrintScalingMode(rawValue: (self.value(forKeyPath: PRINTSCALINGMODE_KEYPATH)) as! Int) ?? .pageScaleNone
- }
- }
- var autoRotate: Bool = false
-
- @IBOutlet weak var actualSizeButton: NSButton!
- @IBOutlet weak var scaleFachPageButton: NSButton!
- @IBOutlet weak var onlyScaleDownLargeButton: NSButton!
-
-
-
- func keyPathsForValuesAffectingPreview() -> Set<String> {
- return NSSet(objects: "printScalingMode") as! Set<String>
- }
-
-
-
-
- func localizedSummaryItems() -> [[NSPrintPanel.AccessorySummaryKey : String]] {
- let autoRotation = self.autoRotate ? NSLocalizedString("On", comment: "") : NSLocalizedString("Off", comment: "")
- var autoScaling = ""
- return [[NSPrintPanel.AccessorySummaryKey.itemName: NSLocalizedString("Page Auto Rotation", comment: ""),
- NSPrintPanel.AccessorySummaryKey.itemDescription : autoRotation],
- [NSPrintPanel.AccessorySummaryKey.itemName: NSLocalizedString("Page Auto Scaling", comment: ""),
- NSPrintPanel.AccessorySummaryKey.itemDescription : autoScaling]]
- }
-
- @IBAction func actualSizeButtonAction(_ sender: Any) {
- self.printScalingMode = .pageScaleNone
- }
- @IBAction func scaleFachPageButtonAction(_ sender: Any) {
- self.printScalingMode = .pageScaleToFit
- }
- @IBAction func onlyScaleDownLargeButtonAction(_ sender: Any) {
- self.printScalingMode = .pageScaleDownToFit
- }
-
-
- }
|