aboutsummaryrefslogtreecommitdiff
path: root/Hotline/macOS/SettingsView.swift
diff options
context:
space:
mode:
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)
}
}
}