aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/SettingsView.swift
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-05-01 14:55:19 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-05-01 14:55:19 -0700
commit8cb41e9fce82fc8e209348b51c2b79e6cace8e18 (patch)
treea4ed555482280373600a503b2e17e02030d064c7 /Hotline/macOS/SettingsView.swift
parent1a82975ad00bced8bba8cd6df6a9920a7ae93c61 (diff)
Add sound settings
Diffstat (limited to 'Hotline/macOS/SettingsView.swift')
-rw-r--r--Hotline/macOS/SettingsView.swift50
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)
}
}
}