diff options
| author | Dustin Mierau <mierau@users.noreply.github.com> | 2024-05-01 19:05:34 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-01 19:05:34 -0700 |
| commit | b9529a0d255ad41c62a4e3b93a47ebb5bb82a565 (patch) | |
| tree | c4b715eda4031617aac75ffcc890f0e5130de638 /Hotline/macOS | |
| parent | a5c1e0b475d14b176479f662bf29163f2220180b (diff) | |
| parent | 8cb41e9fce82fc8e209348b51c2b79e6cace8e18 (diff) | |
Merge pull request #15 from jhalter/add_sound_settings
Add sound settings
Diffstat (limited to 'Hotline/macOS')
| -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) } } } |