38 lines
1.1 KiB
Swift
38 lines
1.1 KiB
Swift
import AppKit
|
|
import SwiftUI
|
|
|
|
struct VisualEffectView: NSViewRepresentable {
|
|
var material: NSVisualEffectView.Material
|
|
var blendingMode: NSVisualEffectView.BlendingMode
|
|
var state: NSVisualEffectView.State
|
|
var emphasized: Bool
|
|
|
|
init(
|
|
material: NSVisualEffectView.Material,
|
|
blendingMode: NSVisualEffectView.BlendingMode = .behindWindow,
|
|
state: NSVisualEffectView.State = .active,
|
|
emphasized: Bool = false)
|
|
{
|
|
self.material = material
|
|
self.blendingMode = blendingMode
|
|
self.state = state
|
|
self.emphasized = emphasized
|
|
}
|
|
|
|
func makeNSView(context _: Context) -> NSVisualEffectView {
|
|
let view = NSVisualEffectView()
|
|
view.material = self.material
|
|
view.blendingMode = self.blendingMode
|
|
view.state = self.state
|
|
view.isEmphasized = self.emphasized
|
|
return view
|
|
}
|
|
|
|
func updateNSView(_ nsView: NSVisualEffectView, context _: Context) {
|
|
nsView.material = self.material
|
|
nsView.blendingMode = self.blendingMode
|
|
nsView.state = self.state
|
|
nsView.isEmphasized = self.emphasized
|
|
}
|
|
}
|