diff --git a/MyVoxtral/MyVoxtral/Views/MenuBarView.swift b/MyVoxtral/MyVoxtral/Views/MenuBarView.swift new file mode 100644 index 0000000..0943128 --- /dev/null +++ b/MyVoxtral/MyVoxtral/Views/MenuBarView.swift @@ -0,0 +1,43 @@ +import SwiftUI + +struct MenuBarView: View { + @ObservedObject var manager: TranscriptionManager + @ObservedObject var settings = AppSettings.shared + let onShowTranscription: () -> Void + let onShowSettings: () -> Void + + var body: some View { + VStack(spacing: 4) { + Button(manager.isRecording ? "Stop Recording" : "Start Recording") { + manager.toggle() + } + .keyboardShortcut("r") + + if case .error(let msg) = manager.state { + Text(msg) + .font(.caption) + .foregroundStyle(.red) + .lineLimit(2) + .padding(.horizontal, 8) + } + + Divider() + + Button("Show Transcription") { + onShowTranscription() + } + + Button("Settings...") { + onShowSettings() + } + + Divider() + + Button("Quit") { + NSApplication.shared.terminate(nil) + } + .keyboardShortcut("q") + } + .padding(.vertical, 4) + } +}