diff options
Diffstat (limited to 'Hotline/macOS/SettingsView.swift')
| -rw-r--r-- | Hotline/macOS/SettingsView.swift | 50 |
1 files changed, 50 insertions, 0 deletions
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) } } } |