From 8cb41e9fce82fc8e209348b51c2b79e6cace8e18 Mon Sep 17 00:00:00 2001 From: Jeff Halter <868228+jhalter@users.noreply.github.com> Date: Wed, 1 May 2024 14:55:19 -0700 Subject: Add sound settings --- Hotline/macOS/SettingsView.swift | 50 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) (limited to 'Hotline/macOS') diff --git a/Hotline/macOS/SettingsView.swift b/Hotline/macOS/SettingsView.swift index 350c70f..e2fc8db 100644 --- a/Hotline/macOS/SettingsView.swift +++ b/Hotline/macOS/SettingsView.swift @@ -106,6 +106,51 @@ struct IconSettingsView: View { } } +struct SoundSettingsView: View { + @Environment(Prefs.self) private var preferences: Prefs + + var body: some View { + @Bindable var preferences = preferences + Form { + Toggle("Play Sounds for:", isOn: $preferences.playSounds) + + Toggle("Chat", isOn: $preferences.playChatSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("File transfer complete", isOn: $preferences.playFileTransferCompleteSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + Toggle("Private Message", isOn: $preferences.playPrivateMessageSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("Join", isOn: $preferences.playJoinSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("Leave", isOn: $preferences.playLeaveSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("Logged in", isOn: $preferences.playLoggedInSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("Error", isOn: $preferences.playErrorSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + Toggle("Chat Invitation", isOn: $preferences.playChatInvitationSound) + .disabled(!preferences.playSounds) + .padding([.leading], 20) + + } + .padding(20) + .frame(width: 350) + } +} + struct SettingsView: View { private enum Tabs: Hashable { case general, icon @@ -123,6 +168,11 @@ struct SettingsView: View { Label("Icon", systemImage: "person") } .tag(Tabs.icon) + SoundSettingsView() + .tabItem { + Label("Sound", systemImage: "speaker.wave.3") + } + .tag(Tabs.icon) } } } -- cgit