Repo created
This commit is contained in:
parent
4af19165ec
commit
68073add76
12458 changed files with 12350765 additions and 2 deletions
107
iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayersCell.swift
Normal file
107
iphone/Maps/UI/BottomMenu/Menu/Cells/BottomMenuLayersCell.swift
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
import UIKit
|
||||
|
||||
class BottomMenuLayersCell: UITableViewCell {
|
||||
@IBOutlet weak var closeButton: CircleImageButton!
|
||||
|
||||
@IBOutlet private var subwayButton: BottomMenuLayerButton! {
|
||||
didSet {
|
||||
updateSubwayButton()
|
||||
}
|
||||
}
|
||||
@IBOutlet private var isoLinesButton: BottomMenuLayerButton! {
|
||||
didSet {
|
||||
updateIsoLinesButton()
|
||||
}
|
||||
}
|
||||
@IBOutlet private var outdoorButton: BottomMenuLayerButton! {
|
||||
didSet {
|
||||
updateOutdoorButton()
|
||||
}
|
||||
}
|
||||
|
||||
var onClose: (()->())?
|
||||
|
||||
override func awakeFromNib() {
|
||||
super.awakeFromNib()
|
||||
MapOverlayManager.add(self)
|
||||
closeButton.setImage(UIImage(named: "ic_close"))
|
||||
setupButtons()
|
||||
}
|
||||
|
||||
private func setupButtons() {
|
||||
outdoorButton.setupWith(image: UIImage(resource: .btnMenuOutdoors), text: L("button_layer_outdoor"))
|
||||
isoLinesButton.setupWith(image: UIImage(resource: .btnMenuIsomaps), text: L("button_layer_isolines"))
|
||||
subwayButton.setupWith(image: UIImage(resource: .btnMenuSubway), text: L("button_layer_subway"))
|
||||
}
|
||||
|
||||
deinit {
|
||||
MapOverlayManager.remove(self)
|
||||
}
|
||||
|
||||
override func setSelected(_ selected: Bool, animated: Bool) {
|
||||
super.setSelected(selected, animated: animated)
|
||||
}
|
||||
|
||||
private func updateSubwayButton() {
|
||||
let enabled = MapOverlayManager.transitEnabled()
|
||||
subwayButton.setStyleAndApply(styleFor(enabled))
|
||||
}
|
||||
|
||||
private func updateIsoLinesButton() {
|
||||
let enabled = MapOverlayManager.isoLinesEnabled()
|
||||
isoLinesButton.setStyleAndApply(styleFor(enabled))
|
||||
}
|
||||
|
||||
private func updateOutdoorButton() {
|
||||
let enabled = MapOverlayManager.outdoorEnabled()
|
||||
outdoorButton.setStyleAndApply(styleFor(enabled))
|
||||
}
|
||||
|
||||
@IBAction func onCloseButtonPressed(_ sender: Any) {
|
||||
onClose?()
|
||||
}
|
||||
|
||||
@IBAction func onSubwayButton(_ sender: Any) {
|
||||
let enable = !MapOverlayManager.transitEnabled()
|
||||
MapOverlayManager.setTransitEnabled(enable)
|
||||
}
|
||||
|
||||
@IBAction func onIsoLinesButton(_ sender: Any) {
|
||||
let enable = !MapOverlayManager.isoLinesEnabled()
|
||||
MapOverlayManager.setIsoLinesEnabled(enable)
|
||||
}
|
||||
|
||||
@IBAction func onOutdoorButton(_ sender: Any) {
|
||||
let enable = !MapOverlayManager.outdoorEnabled()
|
||||
MapOverlayManager.setOutdoorEnabled(enable)
|
||||
}
|
||||
}
|
||||
|
||||
extension BottomMenuLayersCell: MapOverlayManagerObserver {
|
||||
func onTransitStateUpdated() {
|
||||
updateSubwayButton()
|
||||
}
|
||||
|
||||
func onIsoLinesStateUpdated() {
|
||||
updateIsoLinesButton()
|
||||
}
|
||||
|
||||
func onOutdoorStateUpdated() {
|
||||
updateOutdoorButton()
|
||||
}
|
||||
}
|
||||
|
||||
private extension BottomMenuLayersCell {
|
||||
func styleFor(_ enabled: Bool) -> MapStyleSheet {
|
||||
enabled ? .mapMenuButtonEnabled : .mapMenuButtonDisabled
|
||||
}
|
||||
}
|
||||
|
||||
private extension BottomMenuLayerButton {
|
||||
func setupWith(image: UIImage, text: String) {
|
||||
self.image = image
|
||||
spacing = 10
|
||||
numberOfLines = 2
|
||||
localizedText = text
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue