From 22926d343f9b3778d5b0be0c6a57966e2a5b816d Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Sat, 2 Feb 2019 13:20:40 -0500 Subject: [PATCH] Update state of transport controls on state change --- .../pauseButton.imageset/Contents.json | 3 +++ Persephone/Base.lproj/Main.storyboard | 3 ++- Persephone/WindowController.swift | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json b/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json index 8e78dbf..71a2ab0 100644 --- a/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json +++ b/Persephone/Assets.xcassets/pauseButton.imageset/Contents.json @@ -18,5 +18,8 @@ "info" : { "version" : 1, "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template" } } \ No newline at end of file diff --git a/Persephone/Base.lproj/Main.storyboard b/Persephone/Base.lproj/Main.storyboard index 8c2191f..e1ace0f 100644 --- a/Persephone/Base.lproj/Main.storyboard +++ b/Persephone/Base.lproj/Main.storyboard @@ -696,7 +696,7 @@ - + @@ -740,6 +740,7 @@ + diff --git a/Persephone/WindowController.swift b/Persephone/WindowController.swift index 2ac2d51..8e66752 100644 --- a/Persephone/WindowController.swift +++ b/Persephone/WindowController.swift @@ -33,6 +33,20 @@ class WindowController: NSWindowController { else { return } stateLabel.stringValue = "\(state)".localizedCapitalized + setTransportControlState(state) + } + + func setTransportControlState(_ state: MPDClient.State) { + transportControls.setEnabled([.playing, .paused].contains(state), forSegment: 0) + transportControls.setEnabled([.playing, .paused, .stopped].contains(state), forSegment: 1) + transportControls.setEnabled([.playing, .paused].contains(state), forSegment: 2) + transportControls.setEnabled([.playing, .paused].contains(state), forSegment: 3) + + if [.paused, .stopped, .unknown].contains(state) { + transportControls.setImage(NSImage(named: NSImage.Name(rawValue: "playButton")), forSegment: 1) + } else { + transportControls.setImage(NSImage(named: NSImage.Name(rawValue: "pauseButton")), forSegment: 1) + } } @IBAction func handleTransportControl(_ sender: NSSegmentedControl) { @@ -52,4 +66,5 @@ class WindowController: NSWindowController { } @IBOutlet var stateLabel: NSTextField! + @IBOutlet var transportControls: NSSegmentedCell! }