You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
// Copyright © 2015 Abhishek Banthia |
|
|
|
import Cocoa |
|
|
|
class HourMarkerViewItem: NSCollectionViewItem { |
|
static let reuseIdentifier = NSUserInterfaceItemIdentifier("HourMarkerViewItem") |
|
|
|
@IBOutlet var constraintFromTop: NSLayoutConstraint! |
|
@IBOutlet var verticalLine: NSBox! |
|
|
|
public var indexTag: Int = -1 |
|
|
|
func setup(with hour: Int) { |
|
var dateComponents = DateComponents() |
|
dateComponents.minute = hour * 15 |
|
indexTag = hour |
|
|
|
for constraint in view.constraints where constraint.identifier == "constrainFromTop" { |
|
if hour % 4 == 0 { |
|
constraint.constant = 0 |
|
} else { |
|
constraint.constant = 20 |
|
} |
|
} |
|
} |
|
|
|
func setupLineColor() { |
|
for subview in view.subviews where subview is NSBox { |
|
subview.layer?.backgroundColor = NSColor.black.cgColor |
|
} |
|
} |
|
|
|
func resetLineColor() { |
|
for subview in view.subviews where subview is NSBox { |
|
subview.layer?.backgroundColor = nil |
|
} |
|
} |
|
|
|
override var acceptsFirstResponder: Bool { |
|
return false |
|
} |
|
} |
|
|
|
extension Date { |
|
public var nextHour: Date { |
|
let calendar = Calendar.current |
|
let minutes = calendar.component(.minute, from: self) |
|
let components = DateComponents(hour: 1, minute: -minutes) |
|
return calendar.date(byAdding: components, to: self) ?? self |
|
} |
|
}
|
|
|