frenzy-ios/Reader/PrefsSceneDelegate.swift

62 lines
2.0 KiB
Swift

//
// PrefsSceneDelegate.swift
// Reader
//
// Created by Shadowfacts on 1/16/22.
//
#if targetEnvironment(macCatalyst)
import UIKit
import SwiftUI
class PrefsSceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = scene as? UIWindowScene else {
return
}
window = UIWindow(windowScene: windowScene)
window!.tintColor = .appTintColor
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 640, height: 480)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 640, height: 480)
window!.rootViewController = UIHostingController(rootView: PrefsView())
if let titlebar = windowScene.titlebar {
titlebar.toolbarStyle = .preference
titlebar.toolbar = NSToolbar(identifier: .init("ReaderPrefsToolbar"))
titlebar.toolbar!.delegate = self
titlebar.toolbar!.allowsUserCustomization = false
}
window!.makeKeyAndVisible()
NotificationCenter.default.addObserver(self, selector: #selector(updateUserInterfaceStyle), name: .userInterfaceStyleChanged, object: nil)
updateUserInterfaceStyle()
}
@objc private func updateUserInterfaceStyle() {
window?.overrideUserInterfaceStyle = Preferences.shared.appearance
}
}
extension PrefsSceneDelegate: NSToolbarDelegate {
func toolbar(_ toolbar: NSToolbar, itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier, willBeInsertedIntoToolbar flag: Bool) -> NSToolbarItem? {
return nil
}
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
return []
}
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
return []
}
}
#endif