TeachMate/TeachMate/Utilities/WindowSizeManager.swift

46 lines
1.0 KiB
Swift

//
// WindowSizeManager.swift
// TeachMate
//
// Created by Hongli on 2025/3/13.
//
import SwiftUI
#if os(macOS)
//
struct WindowSizeManager {
enum WindowSizePreset {
case calendar // -
case schedule // -
var size: CGSize {
switch self {
case .calendar:
return CGSize(width: 500, height: 800)
case .schedule:
return CGSize(width: 1200, height: 680)
}
}
}
}
// Scene便使
extension Scene {
func windowIdealSize(_ preset: WindowSizeManager.WindowSizePreset) -> some Scene {
self.windowResizability(.contentSize)
.defaultSize(preset.size)
}
}
// View便
extension View {
func idealFrame(for preset: WindowSizeManager.WindowSizePreset) -> some View {
self.frame(
idealWidth: preset.size.width,
idealHeight: preset.size.height
)
}
}
#endif