Forward/backward 15s buttons

This commit is contained in:
Sanjay Madan
2017-06-09 13:42:53 -07:00
parent b527de4a7b
commit a4b76ffe03
16 changed files with 110 additions and 16 deletions
+8
View File
@@ -26,6 +26,10 @@ extension NSImage {
return playerBundle.image(forResource: "airplay")!
}
static var PUIBack15s: NSImage {
return playerBundle.image(forResource: "back15s")!
}
static var PUIBack30s: NSImage {
return playerBundle.image(forResource: "back30s")!
}
@@ -34,6 +38,10 @@ extension NSImage {
return playerBundle.image(forResource: "bookmark")!
}
static var PUIForward15s: NSImage {
return playerBundle.image(forResource: "forward15s")!
}
static var PUIForward30s: NSImage {
return playerBundle.image(forResource: "forward30s")!
}
@@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "back15s.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "back15s@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "back15s@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 680 B

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

@@ -0,0 +1,23 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "forward15s.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "forward15s@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "forward15s@3x.png",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

+56 -16
View File
@@ -511,23 +511,45 @@ public final class PUIPlayerView: NSView {
return b
}()
private lazy var backButton: PUIButton = {
private lazy var backButton15: PUIButton = {
let b = PUIButton(frame: .zero)
b.image = .PUIBack15s
b.target = self
b.action = #selector(goBackInTime15(_:))
b.toolTip = "Go back 15s"
return b
}()
private lazy var backButton30: PUIButton = {
let b = PUIButton(frame: .zero)
b.image = .PUIBack30s
b.target = self
b.action = #selector(goBackInTime(_:))
b.action = #selector(goBackInTime30(_:))
b.toolTip = "Go back 30s"
return b
}()
private lazy var forwardButton: PUIButton = {
private lazy var forwardButton15: PUIButton = {
let b = PUIButton(frame: .zero)
b.image = .PUIForward15s
b.target = self
b.action = #selector(goForwardInTime15(_:))
b.toolTip = "Go forward 15s"
return b
}()
private lazy var forwardButton30: PUIButton = {
let b = PUIButton(frame: .zero)
b.image = .PUIForward30s
b.target = self
b.action = #selector(goForwardInTime(_:))
b.action = #selector(goForwardInTime30(_:))
b.toolTip = "Go forward 30s"
return b
@@ -619,11 +641,13 @@ public final class PUIPlayerView: NSView {
centerButtonsContainerView.setCustomSpacing(6, after: volumeButton)
// Center controls (play, annotations, forward, backward)
centerButtonsContainerView.addView(backButton, in: .center)
centerButtonsContainerView.addView(backButton15, in: .center)
centerButtonsContainerView.addView(backButton30, in: .center)
centerButtonsContainerView.addView(previousAnnotationButton, in: .center)
centerButtonsContainerView.addView(playButton, in: .center)
centerButtonsContainerView.addView(nextAnnotationButton, in: .center)
centerButtonsContainerView.addView(forwardButton, in: .center)
centerButtonsContainerView.addView(forwardButton30, in: .center)
centerButtonsContainerView.addView(forwardButton15, in: .center)
// Trailing controls (speed, add annotation, pip)
centerButtonsContainerView.addView(speedButton, in: .trailing)
@@ -639,10 +663,12 @@ public final class PUIPlayerView: NSView {
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: volumeButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: volumeSlider)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: subtitlesButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: backButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: backButton15)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: backButton30)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: previousAnnotationButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityMustHold, for: playButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: forwardButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: forwardButton30)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: forwardButton15)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: nextAnnotationButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: speedButton)
centerButtonsContainerView.setVisibilityPriority(NSStackViewVisibilityPriorityDetachOnlyIfNecessary, for: addAnnotationButton)
@@ -709,8 +735,10 @@ public final class PUIPlayerView: NSView {
nextAnnotationButton.isHidden = disableAnnotationControls
let disableBackAndForward = !d.playerViewShouldShowBackAndForwardControls(self)
backButton.isHidden = disableBackAndForward
forwardButton.isHidden = disableBackAndForward
backButton15.isHidden = disableBackAndForward
backButton30.isHidden = disableBackAndForward
forwardButton30.isHidden = disableBackAndForward
forwardButton15.isHidden = disableBackAndForward
updateExternalPlaybackControlsAvailability()
@@ -839,11 +867,19 @@ public final class PUIPlayerView: NSView {
seek(to: annotation)
}
@IBAction public func goBackInTime(_ sender: Any?) {
@IBAction public func goBackInTime15(_ sender: Any?) {
modifyCurrentTime(with: 15, using: CMTimeSubtract)
}
@IBAction public func goForwardInTime15(_ sender: Any?) {
modifyCurrentTime(with: 15, using: CMTimeAdd)
}
@IBAction public func goBackInTime30(_ sender: Any?) {
modifyCurrentTime(with: 30, using: CMTimeSubtract)
}
@IBAction public func goForwardInTime(_ sender: Any?) {
@IBAction public func goForwardInTime30(_ sender: Any?) {
modifyCurrentTime(with: 30, using: CMTimeAdd)
}
@@ -1230,8 +1266,10 @@ public final class PUIPlayerView: NSView {
pipButton.isEnabled = false
subtitlesButton.isEnabled = false
speedButton.isEnabled = false
forwardButton.isEnabled = false
backButton.isEnabled = false
forwardButton15.isEnabled = false
forwardButton30.isEnabled = false
backButton30.isEnabled = false
backButton15.isEnabled = false
controlsContainerView.alphaValue = 0.5
}
@@ -1242,8 +1280,10 @@ public final class PUIPlayerView: NSView {
pipButton.isEnabled = true
subtitlesButton.isEnabled = true
speedButton.isEnabled = true
forwardButton.isEnabled = true
backButton.isEnabled = true
forwardButton15.isEnabled = true
forwardButton30.isEnabled = true
backButton30.isEnabled = true
backButton15.isEnabled = true
controlsContainerView.alphaValue = 1