Skip to content

Commit a5e994a

Browse files
authored
Add unknown placeholder for CoreSystem (#514)
1 parent 71adeba commit a5e994a

File tree

7 files changed

+78
-35
lines changed

7 files changed

+78
-35
lines changed

Sources/OpenSwiftUICore/Graphic/Color/CoreColor.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@
22
// CoreColor.swift
33
// OpenSwiftUICore
44
//
5+
// Audited for 6.4.41
56
// Status: Complete
67
// ID: 4330A474F53D66045762501ED6F8A749 (SwiftUICore)
78

89
#if canImport(Darwin)
910
package import Foundation
1011
import OpenSwiftUI_SPI
1112

12-
// MARK: - Color.Resolved + PlatformColor [6.4.41]
13+
// MARK: - Color.Resolved + PlatformColor
1314

1415
extension Color.Resolved {
1516
package init?(platformColor: AnyObject) {
1617
var red: CGFloat = 0
1718
var green: CGFloat = 0
1819
var blue: CGFloat = 0
1920
var alpha: CGFloat = 0
20-
let result = CoreColorPlatformColorGetComponents(system: .defaults, color: platformColor, red: &red, green: &green, blue: &blue, alpha: &alpha)
21+
let result = CoreColorPlatformColorGetComponents(system: .default, color: platformColor, red: &red, green: &green, blue: &blue, alpha: &alpha)
2122
if result {
2223
self.init(colorSpace: .sRGB, red: Float(red), green: Float(green), blue: Float(blue), opacity: Float(alpha))
2324
} else {
@@ -34,22 +35,22 @@ extension Color.Resolved {
3435
}
3536
}
3637

37-
// MARK: - CoreColor + PlatformColor [6.4.41]
38+
// MARK: - CoreColor + PlatformColor
3839

3940
extension CoreColor {
4041
package static func platformColor(resolvedColor: Color.Resolved) -> NSObject? {
4142
platformColor(red: CGFloat(resolvedColor.red), green: CGFloat(resolvedColor.green), blue: CGFloat(resolvedColor.blue), alpha: CGFloat(resolvedColor.opacity))
4243
}
4344

4445
package static func platformColor(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> NSObject? {
45-
CorePlatformColorForRGBA(system: .defaults, red: red, green: green, blue: blue, alpha: alpha) as? NSObject
46+
CorePlatformColorForRGBA(system: .default, red: red, green: green, blue: blue, alpha: alpha) as? NSObject
4647
}
4748
}
4849

4950
#if OPENSWIFTUI_LINK_COREUI
5051
package import CoreUI
5152

52-
// MARK: - CoreUINamedColorProvider [6.4.41]
53+
// MARK: - CoreUINamedColorProvider
5354

5455
package protocol CoreUINamedColorProvider {
5556
static func effectiveCGColor(cuiColor: CUINamedColor, in environment: EnvironmentValues) -> CGColor?

Sources/OpenSwiftUICore/Graphic/Color/SystemColors.swift

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -206,19 +206,19 @@ package enum SystemColorType: ColorProvider {
206206
package var kitColor: AnyObject? {
207207
#if canImport(Darwin)
208208
switch self {
209-
case .red: CoreColor.systemRedColor(with: .defaults)
210-
case .orange: CoreColor.systemOrangeColor(with: .defaults)
211-
case .yellow: CoreColor.systemYellowColor(with: .defaults)
212-
case .green: CoreColor.systemGreenColor(with: .defaults)
213-
case .teal: CoreColor.systemTealColor(with: .defaults)
214-
case .mint: CoreColor.systemMintColor(with: .defaults)
215-
case .cyan: CoreColor.systemCyanColor(with: .defaults)
216-
case .blue: CoreColor.systemBlueColor(with: .defaults)
217-
case .indigo: CoreColor.systemIndigoColor(with: .defaults)
218-
case .purple: CoreColor.systemPurpleColor(with: .defaults)
219-
case .pink: CoreColor.systemPinkColor(with: .defaults)
220-
case .brown: CoreColor.systemBrownColor(with: .defaults)
221-
case .gray: CoreColor.systemGrayColor(with: .defaults)
209+
case .red: CoreColor.systemRedColor(with: .default)
210+
case .orange: CoreColor.systemOrangeColor(with: .default)
211+
case .yellow: CoreColor.systemYellowColor(with: .default)
212+
case .green: CoreColor.systemGreenColor(with: .default)
213+
case .teal: CoreColor.systemTealColor(with: .default)
214+
case .mint: CoreColor.systemMintColor(with: .default)
215+
case .cyan: CoreColor.systemCyanColor(with: .default)
216+
case .blue: CoreColor.systemBlueColor(with: .default)
217+
case .indigo: CoreColor.systemIndigoColor(with: .default)
218+
case .purple: CoreColor.systemPurpleColor(with: .default)
219+
case .pink: CoreColor.systemPinkColor(with: .default)
220+
case .brown: CoreColor.systemBrownColor(with: .default)
221+
case .gray: CoreColor.systemGrayColor(with: .default)
222222
default: nil
223223
}
224224
#else

Sources/OpenSwiftUICore/Util/UIUtils.swift renamed to Sources/OpenSwiftUICore/Util/CoreSystemUtils.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
//
2-
// UIUtils.swift
2+
// CoreSystemUtils.swift
33
// OpenSwiftUICore
44
//
55
// Audited for 6.5.4
6-
// Status: WIP
6+
// Status: Complete
77

8-
import OpenSwiftUI_SPI
8+
package import OpenSwiftUI_SPI
99

1010
// NOTE: use runtime check instead of #if targetEnvironment(macCatalyst)
1111
// Because Mac Catalyst will use macOS-varient build of OpenSwiftUICore.framework and Mac Catalyst/UIKitForMac varient of OpenSwiftUI.framework
@@ -40,5 +40,11 @@ package func isAppKitBased() -> Bool {
4040

4141
extension CoreSystem {
4242
@inline(__always)
43-
static var defaults: CoreSystem = isAppKitBased() ? .appKit : .uiKit
43+
package static var `default`: CoreSystem {
44+
#if canImport(Darwin)
45+
isAppKitBased() ? .appKit : .uiKit
46+
#else
47+
.unknown
48+
#endif
49+
}
4450
}

Sources/OpenSwiftUI_SPI/Overlay/CoreGraphics/OpenSwiftUICoreSystem.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// OpenSwiftUICoreSystem.h
33
// OpenSwiftUI_SPI
44
//
5-
// Audited for iOS 18.0
5+
// Audited for 6.5.4
66
// Status: Complete
77

88
#ifndef OpenSwiftUICoreSystem_h
@@ -11,8 +11,14 @@
1111
#include "OpenSwiftUIBase.h"
1212

1313
typedef OPENSWIFTUI_ENUM(uint8_t, OpenSwiftUICoreSystem) {
14+
/// UIKit based system (iOS, visionOS, Mac Catalyst)
1415
OpenSwiftUICoreSystemUIKit,
16+
17+
/// AppKit based system (macOS)
1518
OpenSwiftUICoreSystemAppKit,
19+
20+
/// Placeholder for unsupported platforms (eg. Linux)
21+
OpenSwiftUICoreSystemUnknown,
1622
} OPENSWIFTUI_SWIFT_NAME(CoreSystem);
1723

1824
#endif /* OpenSwiftUICoreSystem_h */
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
//
2+
// CoreSystemUtilsTests.swift
3+
// OpenSwiftUICoreTests
4+
5+
import OpenSwiftUICore
6+
import OpenSwiftUI_SPI
7+
import Testing
8+
9+
struct CoreSystemUtilsTests {
10+
@Test
11+
func frameworkConditionCheck() {
12+
#if targetEnvironment(macCatalyst)
13+
#expect(isCatalyst() == true)
14+
#expect(isUIKitBased() == true)
15+
#expect(isAppKitBased() == false)
16+
#expect(CoreSystem.default == .uiKit)
17+
#elseif os(macOS)
18+
#expect(isCatalyst() == false)
19+
#expect(isUIKitBased() == false)
20+
#expect(isAppKitBased() == true)
21+
#expect(CoreSystem.default == .appKit)
22+
#elseif os(iOS) || os(visionOS)
23+
#expect(isCatalyst() == false)
24+
#expect(isUIKitBased() == true)
25+
#expect(isAppKitBased() == false)
26+
#expect(CoreSystem.default == .uiKit)
27+
#else
28+
#expect(isCatalyst() == false)
29+
#expect(isUIKitBased() == false)
30+
#expect(isAppKitBased() == false)
31+
#expect(CoreSystem.default == .unknown)
32+
#endif
33+
}
34+
}

Tests/OpenSwiftUICoreTests/Util/DebuggerTests.swift

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
//
22
// DebuggerTests.swift
33
// OpenSwiftUICoreTests
4-
//
5-
// Audited for 6.5.4
6-
// Status: Complete
7-
//
84

5+
import OpenSwiftUICore
96
import Testing
10-
@testable import OpenSwiftUICore
117

128
struct DebuggerTests {
139
@Test

Tests/OpenSwiftUI_SPITests/Overlay/CoreGraphics/CoreColorTests.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,17 +33,17 @@ struct CoreColorTests {
3333
var g: CGFloat = 0
3434
var b: CGFloat = 0
3535
var a: CGFloat = 0
36-
#expect(CoreColorPlatformColorGetComponents(system: .defaults, color: blackColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
36+
#expect(CoreColorPlatformColorGetComponents(system: .default, color: blackColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
3737
#expect(r.isApproximatelyEqual(to: 0))
3838
#expect(g.isApproximatelyEqual(to: 0))
3939
#expect(b.isApproximatelyEqual(to: 0))
4040
#expect(a.isApproximatelyEqual(to: 1))
41-
#expect(CoreColorPlatformColorGetComponents(system: .defaults, color: grayColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
41+
#expect(CoreColorPlatformColorGetComponents(system: .default, color: grayColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
4242
#expect(r.isApproximatelyEqual(to: 0.5))
4343
#expect(g.isApproximatelyEqual(to: 0.5))
4444
#expect(b.isApproximatelyEqual(to: 0.5))
4545
#expect(a.isApproximatelyEqual(to: 1))
46-
#expect(CoreColorPlatformColorGetComponents(system: .defaults, color: whiteColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
46+
#expect(CoreColorPlatformColorGetComponents(system: .default, color: whiteColor, red: &r, green: &g, blue: &b, alpha: &a) == true)
4747
#expect(r.isApproximatelyEqual(to: 1))
4848
#expect(g.isApproximatelyEqual(to: 1))
4949
#expect(b.isApproximatelyEqual(to: 1))
@@ -52,9 +52,9 @@ struct CoreColorTests {
5252

5353
@Test
5454
func platformColorForRGBA() throws {
55-
let blackColorObject = try #require(CorePlatformColorForRGBA(system: .defaults, red: 0, green: 0, blue: 0, alpha: 1))
56-
let greyColorObject = try #require(CorePlatformColorForRGBA(system: .defaults, red: 0.5, green: 0.5, blue: 0.5, alpha: 1))
57-
let whiteColorObject = try #require(CorePlatformColorForRGBA(system: .defaults, red: 1, green: 1, blue: 1, alpha: 1))
55+
let blackColorObject = try #require(CorePlatformColorForRGBA(system: .default, red: 0, green: 0, blue: 0, alpha: 1))
56+
let greyColorObject = try #require(CorePlatformColorForRGBA(system: .default, red: 0.5, green: 0.5, blue: 0.5, alpha: 1))
57+
let whiteColorObject = try #require(CorePlatformColorForRGBA(system: .default, red: 1, green: 1, blue: 1, alpha: 1))
5858
#if os(macOS)
5959
let blackColor = try #require((blackColorObject as? NSColor)?.usingColorSpace(.deviceRGB))
6060
let greyColor = try #require(greyColorObject as? NSColor)
@@ -98,7 +98,7 @@ struct CoreColorTests {
9898

9999
@Test
100100
func getKitColorClass() {
101-
let colorClass: AnyClass? = CoreColorGetKitColorClass(system: .defaults)
101+
let colorClass: AnyClass? = CoreColorGetKitColorClass(system: .default)
102102
#if os(macOS)
103103
#expect(colorClass == NSColor.self)
104104
#elseif os(iOS)

0 commit comments

Comments
 (0)