49 lines
1.3 KiB
Swift
49 lines
1.3 KiB
Swift
//
|
|
// Edge.swift
|
|
// MacBackend
|
|
//
|
|
// Created by david-swift on 11.10.2024.
|
|
//
|
|
|
|
import AppKit
|
|
|
|
/// A view's edges.
|
|
public enum Edge {
|
|
|
|
/// The leading edge.
|
|
case leading
|
|
/// The trailing edge.
|
|
case trailing
|
|
/// The top edge.
|
|
case top
|
|
/// The bottom edge.
|
|
case bottom
|
|
|
|
/// Activate layout constraints affecting this edge.
|
|
/// - Parameters:
|
|
/// - view: The view.
|
|
/// - parent: The parent view.
|
|
/// - padding: The padding value.
|
|
func activate(in view: NSView, to parent: NSView, padding: CGFloat) {
|
|
switch self {
|
|
case .top:
|
|
NSLayoutConstraint.activate([
|
|
view.topAnchor.constraint(equalTo: view.topAnchor, constant: padding)
|
|
])
|
|
case .bottom:
|
|
NSLayoutConstraint.activate([
|
|
view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -padding)
|
|
])
|
|
case .leading:
|
|
NSLayoutConstraint.activate([
|
|
view.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: padding)
|
|
])
|
|
case .trailing:
|
|
NSLayoutConstraint.activate([
|
|
view.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -padding)
|
|
])
|
|
}
|
|
}
|
|
|
|
}
|