in src/Tulsi/OptionsEditorController.swift [346:394]
func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? {
if tableColumn == nil { return nil }
let identifier = tableColumn!.identifier
if OptionsEditorController.bindingsControlledColumns.contains(identifier.rawValue) {
return outlineView.makeView(withIdentifier: identifier, owner: self)
}
let optionNode = optionNodeForItem(item as AnyObject, outlineView: outlineView)
let optionLevel = OptionsEditorNode.OptionLevel(rawValue: identifier.rawValue)!
let (displayItem, inherited) = optionNode.displayItemForOptionLevel(optionLevel)
let explicit = !inherited
let highlighted = explicit && optionLevel == optionNode.mostSpecializedOptionLevel
let editable = optionNode.editableForOptionLevel(optionLevel)
let view: NSView?
switch optionNode.valueType {
case .string:
view = outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: OptionsEditorController.tableCellViewIdentifier),
owner: self)
if let tableCellView = view as? TextTableCellView {
prepareTableCellView(tableCellView,
withValue: displayItem,
explicit: explicit,
highlighted: highlighted,
editable: editable)
}
case .stringEnum:
fallthrough
case .bool:
let identifier: String
if explicit {
identifier = OptionsEditorController.boldPopUpButtonCellViewIdentifier
}
else {
identifier = OptionsEditorController.popUpButtonCellViewIdentifier
}
view = outlineView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: identifier), owner: self)
if let tableCellView = view as? PopUpButtonTableCellView {
preparePopUpButtonTableCellView(tableCellView,
withMenuItems: optionNode.multiSelectItems,
selectedValue: displayItem,
highlighted: highlighted,
editable: editable)
}
}
return view
}