| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- //
- // OpenSwiftUIGlue.swift
- // ark_ui_basic
- //
- // Audited for 6.0.87
- // Status: WIP
- public import Foundation
- @_spi(ForOpenSwiftUIOnly)
- public import ark_ui_basic_core
- @_spiOnly
- public import OpenAttributeGraphShims
- import c_ark_ui_basic
- // MARK: - OpenSwiftUIGlue
- @_spi(ForOpenSwiftUIOnly)
- @_silgen_name("OpenSwiftUIGlueClass")
- public func OpenSwiftUIGlueClass() -> CoreGlue.Type {
- OpenSwiftUIGlue.self
- }
- @_spi(ForOpenSwiftUIOnly)
- #if canImport(ObjectiveC)
- @objc(OpenSwiftUIGlue)
- #endif
- final public class OpenSwiftUIGlue: CoreGlue {
- override final public func maxVelocity(_ velocity: CGFloat) {
- ViewGraph.current.nextUpdate.views.maxVelocity(velocity)
- }
- override final public func nextUpdate(nextTime: Time, interval: Double, reason: UInt32?) {
- ViewGraph.current.nextUpdate.views.at(nextTime)
- ViewGraph.current.nextUpdate.views.interval(interval, reason: reason)
- }
- override final public func hasTestHost() -> Bool {
- _TestApp.host != nil
- }
- override final public func isInstantiated(graph: Graph) -> Bool {
- graph.viewGraph().isInstantiated
- }
- override final public var defaultImplicitRootType: DefaultImplicitRootTypeResult {
- DefaultImplicitRootTypeResult(_VStackLayout.self)
- }
- override final public var defaultSpacing: CGSize {
- CGSize(width: 8, height: 8)
- }
- override final public func makeDefaultLayoutComputer() -> MakeDefaultLayoutComputerResult {
- MakeDefaultLayoutComputerResult(value: ViewGraph.current.$defaultLayoutComputer)
- }
- override final public func makeDefaultLayoutComputer(graph: Graph) -> MakeDefaultLayoutComputerResult {
- MakeDefaultLayoutComputerResult(value: graph.viewGraph().$defaultLayoutComputer)
- }
- override final public func makeLayoutView<L>(
- root: _GraphValue<L>,
- inputs: _ViewInputs,
- body: (_Graph, _ViewInputs) -> _ViewListOutputs
- ) -> _ViewOutputs where L: Layout {
- L.makeLayoutView(root: root, inputs: inputs, body: body)
- }
- // TODO
- }
- @_spi(ForOpenSwiftUIOnly)
- @available(*, unavailable)
- extension OpenSwiftUIGlue: Sendable {}
- // MARK: - OpenSwiftUIGlue2
- @_spi(ForOpenSwiftUIOnly)
- @_silgen_name("OpenSwiftUIGlue2Class")
- public func OpenSwiftUIGlue2Class() -> CoreGlue2.Type {
- OpenSwiftUIGlue2.self
- }
- @_spi(ForOpenSwiftUIOnly)
- #if canImport(ObjectiveC)
- @objc(OpenSwiftUIGlue2)
- #endif
- final public class OpenSwiftUIGlue2: CoreGlue2 {
- #if os(iOS) || os(visionOS)
- override public final func initializeTestApp() {
- _PerformTestingSwizzles()
- }
- #endif
- override public final func isStatusBarHidden() -> Bool? {
- #if os(iOS) || os(visionOS)
- guard let scene = UIApplication.shared.connectedScenes.first,
- let windowScene = scene as? UIWindowScene
- else {
- return nil
- }
- return windowScene.statusBarManager?.isStatusBarHidden ?? false
- #else
- nil
- #endif
- }
- override public final func configureDefaultEnvironment(_: inout EnvironmentValues) {
- #if os(iOS) || os(visionOS)
- #else
- // TODO
- #endif
- }
- override public func configureEmptyEnvironment(_ environment: inout EnvironmentValues) {
- environment.configureForPlatform(traitCollection: nil)
- }
- override public final func makeRootView(base: AnyView, rootFocusScope: Namespace.ID) -> AnyView {
- AnyView(base.safeAreaInsets(.zero, next: nil))
- }
- override public final var systemDefaultDynamicTypeSize: DynamicTypeSize {
- #if os(iOS) || os(visionOS)
- let size = _UIApplicationDefaultContentSizeCategory()
- let dynamicSize = DynamicTypeSize(size)
- return dynamicSize ?? .large
- #else
- // TODO: macOS
- return .large
- #endif
- }
- override public final var codableAttachmentCellType: CodableAttachmentCellTypeResult {
- CodableAttachmentCellTypeResult(nil)
- }
- override public final func linkURL(_ parameters: LinkURLParameters) -> URL? {
- _openSwiftUIUnimplementedFailure()
- }
- public override func transformingEquivalentAttributes(_ attributedString: AttributedString) -> AttributedString {
- _openSwiftUIUnimplementedWarning()
- return attributedString
- }
- }
- @_spi(ForOpenSwiftUIOnly)
- @available(*, unavailable)
- extension OpenSwiftUIGlue2: Sendable {}
|