private static let gamePageURL = "http://www.dmm.com/netgame/social/-/gadgets/=/app_id=854854/"
private static let loginPageURLPrefix = "https://www.dmm.com/my/-/login/=/"
- @IBOutlet var webView: WebView!
+ @IBOutlet private var webView: WebView!
override var nibName: NSNib.Name {
window.endSheet(panelWindow)
}
- @IBAction func screenShot(_ sender: AnyObject?) {
+ func screenshotOld() {
let frame = webView.visibleRect
let screenshotBorder = UserDefaults.standard[.screenShotBorderWidth]
guard let rep = webView.bitmapImageRepForCachingDisplay(in: f) else { return }
webView.cacheDisplay(in: frame, to: rep)
- AppDelegate.shared.registerScreenshot(rep, fromOnScreen: .zero)
+
+ ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ .registerScreenshot(rep, name: localizedAppName())
+ }
+
+ @available(OSX 10.13, *)
+ func screenshot() {
+
+ let frame = view.visibleRect
+ let screenshotBorder = UserDefaults.standard[.screenShotBorderWidth]
+ let f = frame.insetBy(dx: -screenshotBorder, dy: -screenshotBorder)
+ let windowCoordinateFrame = view.convert(f, to: nil)
+
+ guard let window = view.window else { return Logger.shared.log("Can not get window") }
+ let screenCoordinsteFrame = window.convertToScreen(windowCoordinateFrame)
+
+ guard let screen = NSScreen.main else { return Logger.shared.log("Can not get Screen") }
+ let scFrame = screen.frame
+
+ guard let cxt = window.graphicsContext?.cgContext else { return Logger.shared.log("Cannot get Context") }
+ let deviceCoordinateFrame = cxt.convertToDeviceSpace(screenCoordinsteFrame)
+ let raio = deviceCoordinateFrame.size.width / screenCoordinsteFrame.size.width
+
+ let trimRect = CGRect(x: raio * screenCoordinsteFrame.origin.x,
+ y: raio * (scFrame.size.height - screenCoordinsteFrame.origin.y - screenCoordinsteFrame.size.height),
+ width: raio * screenCoordinsteFrame.size.width,
+ height: raio * screenCoordinsteFrame.size.height)
+
+ guard let fullSizeImage = CGDisplayCreateImage(CGMainDisplayID()) else { return Logger.shared.log("Can not get Image") }
+
+ guard let image = fullSizeImage.cropping(to: trimRect) else { return Logger.shared.log("Can not trim image") }
+
+ let rep = NSBitmapImageRep(cgImage: image)
+
+ if rep.size != NSSize(width: 800, height: 480) {
+ rep.size = NSSize(width: 800, height: 480)
+ }
+
+ ScreenshotRegister(ApplicationDirecrories.screenshotSaveDirectoryURL)
+ .registerScreenshot(rep, name: localizedAppName())
+ }
+
+ @IBAction func screenShot(_ sender: AnyObject?) {
+
+ if #available(OSX 10.13, *) {
+
+ screenshot()
+
+ } else {
+
+ screenshotOld()
+ }
}
override func validateMenuItem(_ menuItem: NSMenuItem) -> Bool {