// // SidebarOutlineView.swift // NetNewsWire // // Created by Brent Simmons on 11/17/15. // Copyright © 2015 Ranchero Software, LLC. All rights reserved. // import AppKit import Tree import AppKitExtras final class SidebarOutlineView : NSOutlineView { @IBOutlet var keyboardDelegate: KeyboardDelegate! // MARK: NSTableView override func frameOfCell(atColumn column: Int, row: Int) -> NSRect { // Don’t allow the pseudo-feeds at the top level to be indented. var frame = super.frameOfCell(atColumn: column, row: row) frame.origin.x += 4.0 frame.size.width -= 4.0 let node = item(atRow: row) as! Node guard let parentNode = node.parent, parentNode.isRoot else { return frame } guard node.representedObject is PseudoFeed else { return frame } frame.origin.x -= indentationPerLevel frame.size.width += indentationPerLevel return frame } // MARK: NSView override func viewWillStartLiveResize() { if let scrollView = self.enclosingScrollView { scrollView.hasVerticalScroller = false } super.viewWillStartLiveResize() } override func viewDidEndLiveResize() { if let scrollView = self.enclosingScrollView { scrollView.hasVerticalScroller = true } super.viewDidEndLiveResize() } // MARK: NSResponder override func keyDown(with event: NSEvent) { if keyboardDelegate.keydown(event, in: self) { return } super.keyDown(with: event) } }