// // TabTableViewCell.swift // Tusker // // Created by Shadowfacts on 10/5/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import UIKit protocol TabTableViewCellDelegate { func setEnabled(tab: Tab, enabled: Bool) } class TabTableViewCell: UITableViewCell { var delegate: TabTableViewCellDelegate? @IBOutlet weak var nameLabel: UILabel! @IBOutlet weak var enabledSwitch: UISwitch! var tab: Tab! override func awakeFromNib() { super.awakeFromNib() // compensate for inset created by table view editing mode even when no delete control shown nameLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: -20).isActive = true } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } func updateUI(for tab: Tab) { self.tab = tab enabledSwitch.isEnabled = tab != .preferences enabledSwitch.setOn(Preferences.shared.tabIndex(tab) >= 0, animated: false) nameLabel.text = tab.humanName } @IBAction func enabledSwitchChanged(_ sender: Any) { delegate?.setEnabled(tab: tab, enabled: enabledSwitch.isOn) } }