forked from shadowfacts/Tusker
48 lines
1.2 KiB
Swift
48 lines
1.2 KiB
Swift
//
|
|
// 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)
|
|
}
|
|
|
|
}
|