// // TimelineTableRowView.swift // NetNewsWire // // Created by Brent Simmons on 8/31/15. // Copyright © 2015 Ranchero Software, LLC. All rights reserved. // import AppKit class TimelineTableRowView : NSTableRowView { private var separator: NSView? override var isOpaque: Bool { return true } override var isEmphasized: Bool { didSet { cellView?.isEmphasized = isEmphasized } } override var isSelected: Bool { didSet { cellView?.isSelected = isSelected separator?.isHidden = isSelected } } init() { super.init(frame: NSRect.zero) } required init?(coder: NSCoder) { super.init(coder: coder) } private var cellView: TimelineTableCellView? { for oneSubview in subviews { if let foundView = oneSubview as? TimelineTableCellView { return foundView } } return nil } override func viewDidMoveToSuperview() { if #available(macOS 11.0, *) { addSeparatorView() } else { if AppDefaults.shared.timelineShowsSeparators { addSeparatorView() } } } private func addSeparatorView() { guard let cellView = cellView else { return } separator = NSView() separator!.translatesAutoresizingMaskIntoConstraints = false separator!.wantsLayer = true separator!.layer?.backgroundColor = AppAssets.timelineSeparatorColor.cgColor addSubview(separator!) if #available(macOS 11.0, *) { NSLayoutConstraint.activate([ separator!.leadingAnchor.constraint(equalTo: cellView.leadingAnchor, constant: 20), separator!.trailingAnchor.constraint(equalTo: cellView.trailingAnchor, constant: -4), separator!.heightAnchor.constraint(equalToConstant: 1), separator!.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 0) ]) } else { NSLayoutConstraint.activate([ separator!.leadingAnchor.constraint(equalTo: cellView.leadingAnchor, constant: 34), separator!.trailingAnchor.constraint(equalTo: cellView.trailingAnchor, constant: -28), separator!.heightAnchor.constraint(equalToConstant: 1), separator!.bottomAnchor.constraint(equalTo: bottomAnchor, constant: 0) ]) } } }