diff --git a/Sources/COpenSwiftUI/include/OpenSwiftUI_SPI.h b/Sources/COpenSwiftUI/include/OpenSwiftUI_SPI.h index fa28bc2..f29b2ff 100644 --- a/Sources/COpenSwiftUI/include/OpenSwiftUI_SPI.h +++ b/Sources/COpenSwiftUI/include/OpenSwiftUI_SPI.h @@ -1,27 +1,61 @@ // // OpenSwiftUI_SPI.h -// +// OpenSwiftUI // // #ifndef OpenSwiftUI_SPI_h #define OpenSwiftUI_SPI_h +#include "OpenSwiftUIBase.h" + +#if __has_include() + +#import + +OPENSWIFTUI_ASSUME_NONNULL_BEGIN + +@interface CALayer (OpenSwiftUI_SPI) +- (BOOL)hasBeenCommitted; +@end + +OPENSWIFTUI_ASSUME_NONNULL_END + +#endif /* CoreAnimation.h */ + #if __has_include() + #import + +OPENSWIFTUI_ASSUME_NONNULL_BEGIN + @interface UIApplication (OpenSwiftUI_SPI) - (void)startedTest:(nullable NSString *)name; - (void)finishedTest:(nullable NSString *)name; - (void)failedTest:(nullable NSString *)name withFailure:(nullable NSError*)failure; - (nullable NSString *)_launchTestName; @end + +@interface UIView (OpenSwiftUI_SPI) +- (BOOL)_shouldAnimatePropertyWithKey:(NSString *)key; +@end + +OPENSWIFTUI_ASSUME_NONNULL_END + #elif __has_include() + #import + +OPENSWIFTUI_ASSUME_NONNULL_BEGIN + @interface NSApplication (OpenSwiftUI_SPI) - (void)startedTest:(nullable NSString *)name; - (void)finishedTest:(nullable NSString *)name; - (void)failedTest:(nullable NSString *)name withFailure:(nullable NSError*)failure; @end -#endif + +OPENSWIFTUI_ASSUME_NONNULL_END + +#endif /* UIKit.h / AppKit.h */ #endif /* OpenSwiftUI_SPI_h */ diff --git a/Sources/OpenSwiftUI/Integration/UIKit/_UIGraphicsView.swift b/Sources/OpenSwiftUI/Integration/UIKit/_UIGraphicsView.swift new file mode 100644 index 0000000..0790c64 --- /dev/null +++ b/Sources/OpenSwiftUI/Integration/UIKit/_UIGraphicsView.swift @@ -0,0 +1,21 @@ +// +// _UIGraphicsView.swift +// OpenSwiftUI +// +// Audited for RELEASE_2021 +// Status: Complete + +#if os(iOS) +internal import COpenSwiftUI +import UIKit + +class _UIGraphicsView: UIView { + override func _shouldAnimateProperty(withKey key: String) -> Bool { + if layer.hasBeenCommitted() { + super._shouldAnimateProperty(withKey: key) + } else { + false + } + } +} +#endif