adwaita-swift/Sources/Adwaita/View/Modifiers/ModifierStopper.swift
david-swift d8de611510 Add support for auto-generated widget bindings
Additionally fix an update problem occurring with custom views
2024-01-22 21:45:31 +01:00

41 lines
1022 B
Swift

//
// ModifierStopper.swift
// Adwaita
//
// Created by david-swift on 11.11.23.
//
/// Remove all of the content modifiers for the wrapped views.
struct ModifierStopper: Widget {
/// The wrapped view.
var content: View
/// Get the content's container.
/// - Parameter modifiers: Modify views before being updated.
/// - Returns: The content's container.
func container(modifiers: [(View) -> View]) -> ViewStorage {
let storage = content.storage(modifiers: [])
return storage
}
/// Update the content.
/// - Parameters:
/// - storage: The content's storage.
/// - modifiers: Modify views before being updated.
func update(_ storage: ViewStorage, modifiers: [(View) -> View]) {
content.updateStorage(storage, modifiers: [])
}
}
extension View {
/// Remove all of the content modifiers for the wrapped views.
/// - Returns: A view.
public func stopModifiers() -> View {
ModifierStopper(content: self)
}
}