diff options
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 + } +} |