aboutsummaryrefslogtreecommitdiff
path: root/Sources/phbar/Models/Screen.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sources/phbar/Models/Screen.swift')
-rw-r--r--Sources/phbar/Models/Screen.swift16
1 files changed, 15 insertions, 1 deletions
diff --git a/Sources/phbar/Models/Screen.swift b/Sources/phbar/Models/Screen.swift
index e4b968f..870d3b6 100644
--- a/Sources/phbar/Models/Screen.swift
+++ b/Sources/phbar/Models/Screen.swift
@@ -1,8 +1,22 @@
import AppKit
-@MainActor
+/// Helpers for multi-screen geometry.
+///
+/// Maps a bar configuration (position, height) into concrete
+/// screen coordinates so the window can be placed correctly
+/// on each display.
enum Screen {
/// Frame of the bar within a screen, in global display coordinates.
+ ///
+ /// - Parameters:
+ /// - screen: The screen to calculate the bar frame for.
+ /// - position: Whether the bar sits at the top or bottom
+ /// of the screen.
+ /// - height: The bar height in points (see ``Config/height``).
+ ///
+ /// - Returns: An ``NSRect`` in screen coordinates. The bar spans
+ /// the full width of the screen and is anchored at the top
+ /// or bottom edge.
static func barFrame(_ screen: NSScreen, position: Config.Position, height: CGFloat) -> NSRect {
switch position {
case .top: