1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /*****************************************************************************
- * VLCFileServerView.swift
- * VLC for iOS
- *****************************************************************************
- * Copyright (c) 2018 VideoLAN. All rights reserved.
- * $Id$
- *
- * Author: Carola Nitz <caro # videolan.org>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
- import Foundation
- @objc protocol VLCFileServerViewDelegate: NSObjectProtocol {
- func connectToServer()
- }
- class VLCFileServerView: UIView {
- @objc weak var delegate: VLCFileServerViewDelegate?
- lazy var connectButton: UIButton = {
- let connectButton = UIButton(type: .system)
- connectButton.setTitle(NSLocalizedString("BUTTON_CONNECT", comment: ""), for: .normal)
- connectButton.titleLabel?.font = UIFont.systemFont(ofSize: 17)
- connectButton.setTitleColor(PresentationTheme.current.colors.orangeUI, for: .normal)
- connectButton.translatesAutoresizingMaskIntoConstraints = false
- connectButton.addTarget(self, action: #selector(connectButtonDidPress), for: .touchUpInside)
- addSubview(connectButton)
- return connectButton
- }()
- lazy var textLabel: UILabel = {
- let textLabel = UILabel(frame: .zero)
- textLabel.text = NSLocalizedString("FILE_SERVER", comment: "")
- textLabel.font = PresentationTheme.current.font.tableHeaderFont
- textLabel.translatesAutoresizingMaskIntoConstraints = false
- addSubview(textLabel)
- return textLabel
- }()
- lazy var separator: UIView = {
- let separator = UIView(frame: .zero)
- separator.translatesAutoresizingMaskIntoConstraints = false
- addSubview(separator)
- return separator
- }()
- override init(frame: CGRect) {
- super.init(frame: frame)
- NotificationCenter.default.addObserver(self, selector: #selector(updateTheme), name: .VLCThemeDidChangeNotification, object: nil)
- setupUI()
- updateTheme()
- }
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- @objc func updateTheme() {
- backgroundColor = PresentationTheme.current.colors.background
- separator.backgroundColor = PresentationTheme.current.colors.separatorColor
- textLabel.textColor = PresentationTheme.current.colors.cellTextColor
- }
- func setupUI() {
- NSLayoutConstraint.activate([
- separator.leadingAnchor.constraint(equalTo: leadingAnchor),
- separator.trailingAnchor.constraint(equalTo: trailingAnchor),
- separator.topAnchor.constraint(equalTo: topAnchor),
- textLabel.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 15),
- textLabel.trailingAnchor.constraint(lessThanOrEqualTo: connectButton.leadingAnchor),
- connectButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20),
- textLabel.topAnchor.constraint(equalTo: separator.bottomAnchor, constant: 15),
- textLabel.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -9),
- connectButton.firstBaselineAnchor.constraint(equalTo: textLabel.firstBaselineAnchor),
- separator.heightAnchor.constraint(equalToConstant: 1)
- ])
- }
- @objc func connectButtonDidPress() {
- delegate?.connectToServer()
- }
- }
|