2 // AncherageRepairTimerViewController.swift
5 // Created by Hori,Masaki on 2016/12/29.
6 // Copyright © 2016年 Hori,Masaki. All rights reserved.
11 class AncherageRepairTimerViewController: NSViewController {
13 static let regularHeight: CGFloat = 76
14 static let smallHeight: CGFloat = regularHeight - 32
16 private let anchorageRepairManager = AnchorageRepairManager.default
18 @IBOutlet var screenshotButton:NSButton!
20 dynamic var repairTime: NSNumber?
21 override var nibName: String! {
22 return "AncherageRepairTimerViewController"
24 var controlSize: NSControlSize = .regular {
26 if controlSize == newValue { return }
27 var frame = view.frame
28 frame.size.height = newValue == .regular ? AncherageRepairTimerViewController.regularHeight : AncherageRepairTimerViewController.smallHeight
31 var buttonFrame = screenshotButton.frame
32 buttonFrame.size.width += newValue == .regular ? 32.0 : -32.0
33 screenshotButton.frame = buttonFrame
38 private var trackingArea: NSTrackingArea?
40 override func viewDidLoad() {
43 let appDelegate = NSApplication.shared().delegate as! AppDelegate
44 appDelegate.addCounterUpdate { [weak self] () in
45 guard let `self` = self else { return }
46 self.repairTime = self.calcRepairTime()
49 override func mouseEntered(with event: NSEvent) {
50 screenshotButton.image = NSImage(named: "Camera")
52 override func mouseExited(with event: NSEvent) {
53 screenshotButton.image = NSImage(named: "CameraDisabled")
56 private func refleshTrackingArea() {
57 view.trackingAreas.forEach {
58 view.removeTrackingArea($0)
60 trackingArea = NSTrackingArea(rect: screenshotButton.frame, options: [.mouseEnteredAndExited, .activeInActiveApp], owner: self, userInfo: nil)
61 view.addTrackingArea(trackingArea!)
64 private func calcRepairTime() -> NSNumber? {
65 let time = anchorageRepairManager.repairTime
66 let complete = time.timeIntervalSince1970
67 let now = Date(timeIntervalSinceNow: 0.0)
68 let diff = complete - now.timeIntervalSince1970
69 return NSNumber(value: diff + 20.0 * 60)