feat(talk): pause + drag overlay orb

This commit is contained in:
Peter Steinberger
2025-12-30 11:37:52 +01:00
parent 2814815312
commit 9c532eac07
3 changed files with 98 additions and 18 deletions

View File

@@ -15,6 +15,7 @@ final class TalkOverlayController {
struct Model {
var isVisible: Bool = false
var phase: TalkModePhase = .idle
var isPaused: Bool = false
var level: Double = 0
}
@@ -73,11 +74,26 @@ final class TalkOverlayController {
self.model.phase = phase
}
func updatePaused(_ paused: Bool) {
guard self.model.isPaused != paused else { return }
self.logger.info("talk overlay paused=\(paused)")
self.model.isPaused = paused
}
func updateLevel(_ level: Double) {
guard self.model.isVisible else { return }
self.model.level = max(0, min(1, level))
}
func currentWindowOrigin() -> CGPoint? {
self.window?.frame.origin
}
func setWindowOrigin(_ origin: CGPoint) {
guard let window else { return }
window.setFrameOrigin(origin)
}
// MARK: - Private
private func ensureWindow() {