123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- /*****************************************************************************
- * VideoOptionsControlBar.swift
- *
- * Copyright © 2019 VLC authors and VideoLAN
- *
- * Authors: Robert Gordon <robwaynegordon@gmail.com>
- *
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
- @objc (VideoOptionsControlBarDelegate)
- protocol VideoOptionsControlBarDelegate: class {
- func didToggleFullScreen(_ optionsBar: VideoOptionsControlBar)
- func didToggleRepeat(_ optionsBar: VideoOptionsControlBar)
- func didSelectSubtitle(_ optionsBar: VideoOptionsControlBar)
- func didSelectMoreOptions(_ optionsBar: VideoOptionsControlBar)
- func didToggleOrientationLock(_ optionsBar: VideoOptionsControlBar)
- }
- @objc (VLCVideoOptionsControlBar)
- @objcMembers class VideoOptionsControlBar: UIStackView {
-
- // MARK: Instance variables
- weak var delegate: VideoOptionsControlBarDelegate?
-
- lazy var toggleFullScreenButton: UIButton = {
- var toggle = UIButton(type: .system)
- toggle.addTarget(self, action: #selector(toggleFullscreen), for: .touchUpInside)
- toggle.setImage(UIImage(named: "fullscreenIcon-new"), for: .normal)
- toggle.tintColor = .orange
- //TODO: add accessability options for fullScreenButton
- return toggle
- }()
-
- lazy var selectSubtitleButton: UIButton = {
- var subbutton = UIButton(type: .system)
- subbutton.addTarget(self, action: #selector(selectSubtitle), for: .touchUpInside)
- subbutton.setImage(UIImage(named: "subtitleIcon-new"), for: .normal)
- subbutton.tintColor = .orange
- //TODO: add accessability options for selectingSubtitleButton
- return subbutton
- }()
-
- lazy var repeatButton: UIButton = {
- var rptButton = UIButton(type: .system)
- rptButton.addTarget(self, action: #selector(toggleRepeat), for: .touchUpInside)
- rptButton.setImage(UIImage(named: "repeatOne-new"), for: .normal)
- rptButton.tintColor = .orange
- //TODO: add accessability options for repeatButton
- return rptButton
- }()
-
- lazy var orientationLockButton: UIButton = {
- var orientLockButton = UIButton(type: .system)
- orientLockButton.addTarget(self, action: #selector(toggleOrientation), for: .touchUpInside)
- orientLockButton.setImage(UIImage(named: "lockIcon-new"), for: .normal)
- orientLockButton.tintColor = .orange
- //TODO: add accessability options for orientationLockButton
- return orientLockButton
- }()
-
- lazy var moreOptionsButton: UIButton = {
- var moreOptionsButton = UIButton(type: .system)
- moreOptionsButton.addTarget(self, action: #selector(selectMoreOptions), for: .touchUpInside)
- moreOptionsButton.setImage(UIImage(named: "moreWhite-new"), for: .normal)
- moreOptionsButton.tintColor = .orange
- //TODO: add accessability options for moreOptionsButton
- return moreOptionsButton
- }()
-
- // MARK: Class Initializers
- required init(coder aDecoder: NSCoder) {
- super.init(coder: aDecoder)
- }
-
- override init(frame: CGRect) {
- super.init(frame: frame)
- addArrangedSubview(toggleFullScreenButton)
- addArrangedSubview(selectSubtitleButton)
- addArrangedSubview(repeatButton)
- addArrangedSubview(orientationLockButton)
- addArrangedSubview(moreOptionsButton)
- }
-
- // MARK: Button Action Buttons
- func toggleFullscreen() {
- delegate?.didToggleFullScreen(self)
- }
-
- func selectSubtitle() {
- delegate?.didSelectSubtitle(self)
- }
-
- func selectMoreOptions() {
- delegate?.didSelectMoreOptions(self)
- }
-
- func toggleRepeat() {
- delegate?.didToggleRepeat(self)
- }
-
- func toggleOrientation() {
- delegate?.didToggleOrientationLock(self)
- }
- }
|