diff options
| author | Dustin Mierau <dustin@mierau.me> | 2023-12-19 20:38:13 -0800 |
|---|---|---|
| committer | Dustin Mierau <dustin@mierau.me> | 2023-12-19 20:38:13 -0800 |
| commit | 4fd69c02a3e7b581bb9229865336c315153f3b18 (patch) | |
| tree | e6e11d872424196f2b4033077902126ad5556e40 /Hotline/Utility/VisualEffectView.swift | |
| parent | 5e87b5927cd931d46fb5f72fb035480a95969a9f (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.swift | 27 |
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 + } +} |