44 lines
1.0 KiB
Swift
44 lines
1.0 KiB
Swift
//
|
|
// HStack.swift
|
|
// Adwaita
|
|
//
|
|
// Created by david-swift on 26.09.23.
|
|
//
|
|
|
|
/// A horizontal GtkBox equivalent.
|
|
public struct HStack: SimpleView {
|
|
|
|
/// The content.
|
|
var content: () -> Body
|
|
/// The spacing between elements.
|
|
var spacing: Int
|
|
/// Whether the linked style should be used.
|
|
var linked = false
|
|
|
|
/// The view's body.
|
|
public var view: Body {
|
|
ModifierWrapper(
|
|
content: VStack(horizontal: true, spacing: spacing, content: content),
|
|
style: "linked",
|
|
styleActive: linked
|
|
)
|
|
}
|
|
|
|
/// Initialize a `HStack`.
|
|
/// - Parameters:
|
|
/// - spacing: The spacing between elements.
|
|
/// - content: The view content.
|
|
public init(spacing: Int = 0, @ViewBuilder content: @escaping () -> Body) {
|
|
self.content = content
|
|
self.spacing = spacing
|
|
}
|
|
|
|
/// Link the children.
|
|
public func linked(_ active: Bool = true) -> Self {
|
|
var newSelf = self
|
|
newSelf.linked = active
|
|
return newSelf
|
|
}
|
|
|
|
}
|