53 lines
1.2 KiB
Swift
53 lines
1.2 KiB
Swift
//
|
|
// Clamp+.swift
|
|
// Adwaita
|
|
//
|
|
// Created by david-swift on 20.01.24.
|
|
//
|
|
|
|
import CAdw
|
|
|
|
extension Clamp {
|
|
|
|
/// Initialize either a horizontal or vertical clamp.
|
|
/// - Parameter vertical: Whether it is a vertical clamp.
|
|
init(vertical: Bool) {
|
|
self.init()
|
|
if vertical {
|
|
appearFunctions.append { storage, _ in
|
|
gtk_orientable_set_orientation(storage.pointer, GTK_ORIENTATION_VERTICAL)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
extension View {
|
|
|
|
/// Set the view's maximum width.
|
|
/// - Parameter maxSize: The maximum width.
|
|
/// - Returns: A view.
|
|
public func frame(maxSize: Int? = nil) -> Clamp {
|
|
frame(maxWidth: maxSize)
|
|
}
|
|
|
|
/// Set the view's maximum width.
|
|
/// - Parameter maxWidth: The maximum width.
|
|
/// - Returns: A view.
|
|
public func frame(maxWidth: Int? = nil) -> Clamp {
|
|
.init()
|
|
.child { self }
|
|
.maximumSize(maxWidth ?? -1)
|
|
}
|
|
|
|
/// Set the view's maximum height.
|
|
/// - Parameter maxHeight: The maximum height.
|
|
/// - Returns: A view.
|
|
public func frame(maxHeight: Int? = nil) -> Clamp {
|
|
.init(vertical: true)
|
|
.child { self }
|
|
.maximumSize(maxHeight ?? -1)
|
|
}
|
|
|
|
}
|