// // TerminalViewState+Delegate.swift // libghostty-spm // // Created by Lakr233 on 2026/3/16. // import Foundation import GhosttyKit extension TerminalViewState: TerminalSurfaceTitleDelegate, TerminalSurfaceGridResizeDelegate, TerminalSurfaceFocusDelegate, TerminalSurfaceCloseDelegate, TerminalSurfaceBellDelegate, TerminalSurfaceDesktopNotificationDelegate, TerminalSurfacePwdDelegate, TerminalSurfaceScrollbarDelegate, TerminalSurfaceCommandFinishedDelegate, TerminalSurfaceLifecycleDelegate { public func terminalDidChangeTitle(_ title: String) { self.title = title } public func terminalDidResize(_ size: TerminalGridMetrics) { surfaceSize = size } public func terminalDidChangeFocus(_ focused: Bool) { isFocused = focused } public func terminalDidClose(processAlive: Bool) { onClose?(processAlive) } public func terminalDidRingBell() { bellCount += 1 lastBellAt = Date() } public func terminalDidRequestDesktopNotification(title: String, body: String) { lastDesktopNotificationTitle = title lastDesktopNotificationBody = body lastDesktopNotificationAt = Date() } public func terminalDidChangeWorkingDirectory(_ path: String) { workingDirectory = path } public func terminalDidUpdateScrollbar(_ scrollbar: TerminalScrollbar) { self.scrollbar = scrollbar } public func terminalDidFinishCommand(exitCode: Int?, durationNanos: UInt64) { lastCommandExitCode = exitCode lastCommandDurationNanos = durationNanos } public func terminalDidAttachSurface(_ surface: TerminalSurface) { self.surface = surface } public func terminalDidDetachSurface() { surface = nil } }