mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Expanding Lock Screen Music player
This commit is contained in:
parent
070f88df6f
commit
7af1d1bc27
2 changed files with 218 additions and 79 deletions
|
|
@ -16,6 +16,7 @@ class LockScreenPanelManager {
|
|||
|
||||
private var panelWindow: NSWindow?
|
||||
private var hasDelegated = false
|
||||
private var collapsedFrame: NSRect?
|
||||
|
||||
private init() {
|
||||
print("[\(timestamp())] LockScreenPanelManager: initialized")
|
||||
|
|
@ -41,11 +42,13 @@ class LockScreenPanelManager {
|
|||
return
|
||||
}
|
||||
|
||||
let panelSize = LockScreenMusicPanel.defaultSize
|
||||
let collapsedSize = LockScreenMusicPanel.collapsedSize
|
||||
let screenFrame = screen.frame
|
||||
let originX = screenFrame.origin.x + (screenFrame.width / 2) - (panelSize.width / 2)
|
||||
let originY = screenFrame.origin.y + (screenFrame.height / 2) - panelSize.height - 32
|
||||
let targetFrame = NSRect(x: originX, y: originY, width: panelSize.width, height: panelSize.height)
|
||||
let centerX = screenFrame.origin.x + (screenFrame.width / 2)
|
||||
let originX = centerX - (collapsedSize.width / 2)
|
||||
let originY = screenFrame.origin.y + (screenFrame.height / 2) - collapsedSize.height - 32
|
||||
let targetFrame = NSRect(x: originX, y: originY, width: collapsedSize.width, height: collapsedSize.height)
|
||||
collapsedFrame = targetFrame
|
||||
|
||||
let window: NSWindow
|
||||
|
||||
|
|
@ -86,6 +89,23 @@ class LockScreenPanelManager {
|
|||
print("[\(timestamp())] LockScreenPanelManager: panel visible")
|
||||
}
|
||||
|
||||
func updatePanelSize(expanded: Bool, animated: Bool = true) {
|
||||
guard let window = panelWindow, let baseFrame = collapsedFrame else {
|
||||
return
|
||||
}
|
||||
|
||||
let targetSize = expanded ? LockScreenMusicPanel.expandedSize : LockScreenMusicPanel.collapsedSize
|
||||
let originX = baseFrame.midX - (targetSize.width / 2)
|
||||
let originY = baseFrame.origin.y
|
||||
let targetFrame = NSRect(x: originX, y: originY, width: targetSize.width, height: targetSize.height)
|
||||
|
||||
if animated {
|
||||
window.animator().setFrame(targetFrame, display: true)
|
||||
} else {
|
||||
window.setFrame(targetFrame, display: true)
|
||||
}
|
||||
}
|
||||
|
||||
func hidePanel() {
|
||||
print("[\(timestamp())] LockScreenPanelManager: hidePanel")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue