aboutsummaryrefslogtreecommitdiff
path: root/Hotline/Utility/VisualEffectView.swift
diff options
context:
space:
mode:
authorDustin Mierau <dustin@mierau.me>2023-12-19 20:38:13 -0800
committerDustin Mierau <dustin@mierau.me>2023-12-19 20:38:13 -0800
commit4fd69c02a3e7b581bb9229865336c315153f3b18 (patch)
treee6e11d872424196f2b4033077902126ad5556e40 /Hotline/Utility/VisualEffectView.swift
parent5e87b5927cd931d46fb5f72fb035480a95969a9f (diff)
Beginnings of a UI for macOS as well as some visual changes to iOS client. :)
Diffstat (limited to 'Hotline/Utility/VisualEffectView.swift')
-rw-r--r--Hotline/Utility/VisualEffectView.swift27
1 files changed, 27 insertions, 0 deletions
diff --git a/Hotline/Utility/VisualEffectView.swift b/Hotline/Utility/VisualEffectView.swift
new file mode 100644
index 0000000..4f72a6e
--- /dev/null
+++ b/Hotline/Utility/VisualEffectView.swift
@@ -0,0 +1,27 @@
+import SwiftUI
+
+public struct VisualEffectView: NSViewRepresentable {
+ let material: NSVisualEffectView.Material
+ let blendingMode: NSVisualEffectView.BlendingMode
+
+ public init(
+ material: NSVisualEffectView.Material = .contentBackground,
+ blendingMode: NSVisualEffectView.BlendingMode = .withinWindow
+ ) {
+ self.material = material
+ self.blendingMode = blendingMode
+ }
+
+ public func makeNSView(context: Context) -> NSVisualEffectView {
+ let visualEffectView = NSVisualEffectView()
+ visualEffectView.material = material
+ visualEffectView.blendingMode = blendingMode
+ visualEffectView.state = NSVisualEffectView.State.active
+ return visualEffectView
+ }
+
+ public func updateNSView(_ visualEffectView: NSVisualEffectView, context: Context) {
+ visualEffectView.material = material
+ visualEffectView.blendingMode = blendingMode
+ }
+}