1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00

WIP: Dock menu

This commit is contained in:
Daniel Barber 2019-04-18 17:00:40 -04:00
parent 5f19a7401d
commit 8e6396dbe9
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
3 changed files with 77 additions and 3 deletions

View File

@ -43,11 +43,46 @@ class AppDelegate: NSObject,
}
}
func setDockTransportControlState(_ state: MPDClient.MPDStatus.State) {
playPauseMenuItem.isEnabled = state.isOneOf([.playing, .paused, .stopped])
stopMenuItem.isEnabled = state.isOneOf([.playing, .paused])
nextTrackMenuItem.isEnabled = state.isOneOf([.playing, .paused])
prevTrackMenuItem.isEnabled = state.isOneOf([.playing, .paused])
if state.isOneOf([.paused, .stopped, .unknown]) {
playPauseMenuItem.title = "Play"
} else {
playPauseMenuItem.title = "Pause"
}
}
@objc func enableUpdateDatabaseMenuItem() {
updateDatabaseMenuItem?.isEnabled = true
}
@IBAction func updateDatabase(_ sender: NSMenuItem) {
App.store.dispatch(MPDUpdateDatabaseAction())
}
@IBAction func playPauseMenuAction(_ sender: NSMenuItem) {
AppDelegate.mpdClient.playPause()
}
@IBAction func stopMenuAction(_ sender: NSMenuItem) {
AppDelegate.mpdClient.stop()
}
@IBAction func nextTrackMenuAction(_ sender: NSMenuItem) {
AppDelegate.mpdClient.nextTrack()
}
@IBAction func prevTrackMenuAction(_ sender: Any) {
AppDelegate.mpdClient.prevTrack()
}
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
@IBOutlet weak var playPauseMenuItem: NSMenuItem!
@IBOutlet weak var stopMenuItem: NSMenuItem!
@IBOutlet weak var nextTrackMenuItem: NSMenuItem!
@IBOutlet weak var prevTrackMenuItem: NSMenuItem!
}
extension AppDelegate: StoreSubscriber {

View File

@ -53,6 +53,12 @@ class WindowController: NSWindowController {
}
}
func setWindowTitle() {
guard let status = AppDelegate.mpdClient.status else { return }
self.window?.title = status.
}
func setTrackProgressControls(_ playerState: PlayerState) {
guard let state = playerState.state,
let totalTime = playerState.totalTime,

View File

@ -3,7 +3,6 @@
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
<capability name="System colors introduced in macOS 10.14" minToolsVersion="10.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@ -117,17 +116,51 @@
</menu>
<connections>
<outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
<outlet property="dockMenu" destination="HMZ-6U-dkI" id="z8r-8r-l9q"/>
</connections>
</application>
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Persephone" customModuleProvider="target">
<connections>
<outlet property="nextTrackMenuItem" destination="InD-dy-4Xk" id="vTQ-Gf-E8k"/>
<outlet property="playPauseMenu" destination="Ldt-58-fDl" id="p2r-nI-tf4"/>
<outlet property="playPauseMenuItem" destination="Ldt-58-fDl" id="KGN-OQ-uHK"/>
<outlet property="prevTrackMenuItem" destination="90s-qF-dI2" id="Zba-8D-UEg"/>
<outlet property="stopMenuItem" destination="F1T-fC-2rX" id="doK-EU-w6M"/>
<outlet property="updateDatabaseMenuItem" destination="EJg-93-1F6" id="gMf-SQ-lyI"/>
</connections>
</customObject>
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
<menu autoenablesItems="NO" id="HMZ-6U-dkI">
<items>
<menuItem title="Play" enabled="NO" id="Ldt-58-fDl">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="playPauseMenuAction:" target="Voe-Tx-rLC" id="J7X-Fe-jyM"/>
</connections>
</menuItem>
<menuItem title="Stop" enabled="NO" id="F1T-fC-2rX">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="stopMenuAction:" target="Voe-Tx-rLC" id="CnR-Hf-mDH"/>
</connections>
</menuItem>
<menuItem title="Next" enabled="NO" id="InD-dy-4Xk">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="nextMenuAction:" target="Voe-Tx-rLC" id="7QQ-ce-PyS"/>
</connections>
</menuItem>
<menuItem title="Previous" enabled="NO" id="90s-qF-dI2">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="prevMenuAction:" target="Voe-Tx-rLC" id="iw3-oE-E2Y"/>
</connections>
</menuItem>
</items>
</menu>
</objects>
<point key="canvasLocation" x="115" y="-366"/>
<point key="canvasLocation" x="81" y="-332"/>
</scene>
<!--Window Controller-->
<scene sceneID="R2V-B0-nI4">
@ -527,7 +560,7 @@
</constraints>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="QUEUE" id="Mqf-uh-ibl">
<font key="font" metaFont="smallSystemBold"/>
<color key="textColor" name="controlAccentColor" catalog="System" colorSpace="catalog"/>
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>