diff options
Diffstat (limited to 'WireGuard/WireGuard/UI/iOS/EditTunnel/TunnelEditSwitchCell.swift')
-rw-r--r-- | WireGuard/WireGuard/UI/iOS/EditTunnel/TunnelEditSwitchCell.swift | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/WireGuard/WireGuard/UI/iOS/EditTunnel/TunnelEditSwitchCell.swift b/WireGuard/WireGuard/UI/iOS/EditTunnel/TunnelEditSwitchCell.swift new file mode 100644 index 0000000..658fb95 --- /dev/null +++ b/WireGuard/WireGuard/UI/iOS/EditTunnel/TunnelEditSwitchCell.swift @@ -0,0 +1,47 @@ +// SPDX-License-Identifier: MIT +// Copyright © 2018 WireGuard LLC. All Rights Reserved. + +import UIKit + +class TunnelEditSwitchCell: UITableViewCell { + var message: String { + get { return textLabel?.text ?? "" } + set(value) { textLabel!.text = value } + } + var isOn: Bool { + get { return switchView.isOn } + set(value) { switchView.isOn = value } + } + var isEnabled: Bool { + get { return switchView.isEnabled } + set(value) { + switchView.isEnabled = value + textLabel?.textColor = value ? UIColor.black : UIColor.gray + } + } + + var onSwitchToggled: ((Bool) -> Void)? + + let switchView: UISwitch + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + switchView = UISwitch() + super.init(style: .default, reuseIdentifier: reuseIdentifier) + accessoryView = switchView + switchView.addTarget(self, action: #selector(switchToggled), for: .valueChanged) + } + + @objc func switchToggled() { + onSwitchToggled?(switchView.isOn) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func prepareForReuse() { + super.prepareForReuse() + message = "" + isOn = false + } +} |