pythonnative 0.40.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pythonnative/__init__.py +411 -0
- pythonnative/_ios_log.py +92 -0
- pythonnative/_yoga.cp313-win_amd64.pyd +0 -0
- pythonnative/alerts.py +236 -0
- pythonnative/animated.py +1687 -0
- pythonnative/animation_graph.py +78 -0
- pythonnative/appearance.py +124 -0
- pythonnative/bootstrap.py +100 -0
- pythonnative/bridge/__init__.py +302 -0
- pythonnative/bridge/android.py +78 -0
- pythonnative/bridge/codec.py +170 -0
- pythonnative/bridge/commits.py +114 -0
- pythonnative/bridge/fake.py +243 -0
- pythonnative/bridge/ios.py +138 -0
- pythonnative/bridge/web.py +489 -0
- pythonnative/cli/__init__.py +7 -0
- pythonnative/cli/pn.py +1214 -0
- pythonnative/component.py +271 -0
- pythonnative/components/__init__.py +111 -0
- pythonnative/components/_base.py +166 -0
- pythonnative/components/controls.py +521 -0
- pythonnative/components/layout.py +518 -0
- pythonnative/components/lists.py +785 -0
- pythonnative/components/media.py +204 -0
- pythonnative/components/overlays.py +107 -0
- pythonnative/components/pressable.py +252 -0
- pythonnative/components/structural.py +167 -0
- pythonnative/components/text.py +291 -0
- pythonnative/devclient.py +824 -0
- pythonnative/devserver/__init__.py +34 -0
- pythonnative/devserver/server.py +718 -0
- pythonnative/devserver/static/animation_graph.js +82 -0
- pythonnative/devserver/static/bridge.js +147 -0
- pythonnative/devserver/static/colors.js +70 -0
- pythonnative/devserver/static/host.js +552 -0
- pythonnative/devserver/static/index.html +60 -0
- pythonnative/devserver/static/layout.js +85 -0
- pythonnative/devserver/static/preview.css +415 -0
- pythonnative/devserver/static/renderer.js +1994 -0
- pythonnative/devserver/static/shell.js +345 -0
- pythonnative/devserver/static/yoga/LICENSE +21 -0
- pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +75 -0
- pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +189 -0
- pythonnative/devserver/static/yoga/src/generated/YGEnums.js +211 -0
- pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +1 -0
- pythonnative/devserver/static/yoga/src/index.d.ts +12 -0
- pythonnative/devserver/static/yoga/src/index.js +16 -0
- pythonnative/devserver/static/yoga/src/index.js.map +1 -0
- pythonnative/devserver/static/yoga/src/load.d.ts +11 -0
- pythonnative/devserver/static/yoga/src/load.js +17 -0
- pythonnative/devserver/static/yoga/src/load.js.map +1 -0
- pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +155 -0
- pythonnative/devserver/static/yoga/src/wrapAssembly.js +125 -0
- pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +1 -0
- pythonnative/devserver/watcher.py +267 -0
- pythonnative/devserver/ws.py +421 -0
- pythonnative/diagnostics.py +241 -0
- pythonnative/element.py +159 -0
- pythonnative/equality.py +19 -0
- pythonnative/events.py +231 -0
- pythonnative/gestures.py +1333 -0
- pythonnative/hooks.py +1621 -0
- pythonnative/hosts/__init__.py +63 -0
- pythonnative/hosts/base.py +596 -0
- pythonnative/hosts/native.py +302 -0
- pythonnative/hot_reload.py +585 -0
- pythonnative/layout.py +328 -0
- pythonnative/mutations.py +142 -0
- pythonnative/native/android/build.gradle +52 -0
- pythonnative/native/android/gradle.properties +3 -0
- pythonnative/native/android/settings.gradle +12 -0
- pythonnative/native/android/src/main/AndroidManifest.xml +11 -0
- pythonnative/native/android/src/main/cpp/CMakeLists.txt +9 -0
- pythonnative/native/android/src/main/cpp/yoga_jni.cpp +52 -0
- pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +5 -0
- pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +3705 -0
- pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +129 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +261 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +20 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +108 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +141 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +257 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +106 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +175 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +40 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +33 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +82 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +80 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +117 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +74 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +37 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +32 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +213 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +69 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +186 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +123 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +141 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +162 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +134 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +201 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +86 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +55 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +122 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +110 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +214 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +113 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +52 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +131 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +250 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +233 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +355 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +159 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +149 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +233 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +127 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +527 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +145 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +29 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +73 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +316 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +61 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +200 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +158 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +100 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +99 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +89 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +178 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +16 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +188 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +80 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +48 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +76 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +18 -0
- pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +49 -0
- pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +75 -0
- pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +197 -0
- pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +47 -0
- pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +78 -0
- pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +89 -0
- pythonnative/native/ios/Package.swift +23 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +199 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +312 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +255 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +104 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +142 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +166 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +53 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +207 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +173 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +183 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +56 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +281 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +222 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +243 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +114 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +107 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +197 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +106 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +297 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +230 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +82 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +86 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +87 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +340 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +155 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +124 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +1 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +3775 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +46 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +260 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +173 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +92 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +80 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +174 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +177 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +168 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +266 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +251 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +8 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +46 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +237 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +46 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +173 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +47 -0
- pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +51 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +26 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +50 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +86 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +101 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +126 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +111 -0
- pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +91 -0
- pythonnative/native/yoga/LICENSE +21 -0
- pythonnative/native/yoga/Package.swift +9 -0
- pythonnative/native/yoga/VENDORED.md +2 -0
- pythonnative/native/yoga/include/PNStyle.h +10 -0
- pythonnative/native/yoga/include/module.modulemap +5 -0
- pythonnative/native/yoga/include/yoga/YGConfig.h +158 -0
- pythonnative/native/yoga/include/yoga/YGEnums.h +142 -0
- pythonnative/native/yoga/include/yoga/YGMacros.h +99 -0
- pythonnative/native/yoga/include/yoga/YGNode.h +304 -0
- pythonnative/native/yoga/include/yoga/YGNodeLayout.h +35 -0
- pythonnative/native/yoga/include/yoga/YGNodeStyle.h +130 -0
- pythonnative/native/yoga/include/yoga/YGPixelGrid.h +29 -0
- pythonnative/native/yoga/include/yoga/YGValue.h +84 -0
- pythonnative/native/yoga/include/yoga/Yoga.h +21 -0
- pythonnative/native/yoga/python.cpp +16 -0
- pythonnative/native/yoga/style.cpp +272 -0
- pythonnative/native/yoga/yoga/CMakeLists.txt +41 -0
- pythonnative/native/yoga/yoga/YGConfig.cpp +92 -0
- pythonnative/native/yoga/yoga/YGConfig.h +158 -0
- pythonnative/native/yoga/yoga/YGEnums.cpp +262 -0
- pythonnative/native/yoga/yoga/YGEnums.h +142 -0
- pythonnative/native/yoga/yoga/YGMacros.h +99 -0
- pythonnative/native/yoga/yoga/YGNode.cpp +366 -0
- pythonnative/native/yoga/yoga/YGNode.h +304 -0
- pythonnative/native/yoga/yoga/YGNodeLayout.cpp +92 -0
- pythonnative/native/yoga/yoga/YGNodeLayout.h +35 -0
- pythonnative/native/yoga/yoga/YGNodeStyle.cpp +405 -0
- pythonnative/native/yoga/yoga/YGNodeStyle.h +130 -0
- pythonnative/native/yoga/yoga/YGPixelGrid.cpp +22 -0
- pythonnative/native/yoga/yoga/YGPixelGrid.h +29 -0
- pythonnative/native/yoga/yoga/YGValue.cpp +20 -0
- pythonnative/native/yoga/yoga/YGValue.h +84 -0
- pythonnative/native/yoga/yoga/Yoga.h +21 -0
- pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +563 -0
- pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +41 -0
- pythonnative/native/yoga/yoga/algorithm/Align.h +72 -0
- pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +78 -0
- pythonnative/native/yoga/yoga/algorithm/Baseline.h +21 -0
- pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +79 -0
- pythonnative/native/yoga/yoga/algorithm/Cache.cpp +121 -0
- pythonnative/native/yoga/yoga/algorithm/Cache.h +30 -0
- pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +2428 -0
- pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +38 -0
- pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +120 -0
- pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +124 -0
- pythonnative/native/yoga/yoga/algorithm/FlexLine.h +75 -0
- pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +132 -0
- pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +29 -0
- pythonnative/native/yoga/yoga/algorithm/SizingMode.h +73 -0
- pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +44 -0
- pythonnative/native/yoga/yoga/config/Config.cpp +135 -0
- pythonnative/native/yoga/yoga/config/Config.h +92 -0
- pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +53 -0
- pythonnative/native/yoga/yoga/debug/AssertFatal.h +29 -0
- pythonnative/native/yoga/yoga/debug/Log.cpp +107 -0
- pythonnative/native/yoga/yoga/debug/Log.h +34 -0
- pythonnative/native/yoga/yoga/enums/Align.h +47 -0
- pythonnative/native/yoga/yoga/enums/BoxSizing.h +40 -0
- pythonnative/native/yoga/yoga/enums/Dimension.h +40 -0
- pythonnative/native/yoga/yoga/enums/Direction.h +41 -0
- pythonnative/native/yoga/yoga/enums/Display.h +41 -0
- pythonnative/native/yoga/yoga/enums/Edge.h +47 -0
- pythonnative/native/yoga/yoga/enums/Errata.h +41 -0
- pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +39 -0
- pythonnative/native/yoga/yoga/enums/FlexDirection.h +42 -0
- pythonnative/native/yoga/yoga/enums/Gutter.h +41 -0
- pythonnative/native/yoga/yoga/enums/Justify.h +44 -0
- pythonnative/native/yoga/yoga/enums/LogLevel.h +44 -0
- pythonnative/native/yoga/yoga/enums/MeasureMode.h +41 -0
- pythonnative/native/yoga/yoga/enums/NodeType.h +40 -0
- pythonnative/native/yoga/yoga/enums/Overflow.h +41 -0
- pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +21 -0
- pythonnative/native/yoga/yoga/enums/PositionType.h +41 -0
- pythonnative/native/yoga/yoga/enums/Unit.h +42 -0
- pythonnative/native/yoga/yoga/enums/Wrap.h +41 -0
- pythonnative/native/yoga/yoga/enums/YogaEnums.h +85 -0
- pythonnative/native/yoga/yoga/event/event.cpp +87 -0
- pythonnative/native/yoga/yoga/event/event.h +130 -0
- pythonnative/native/yoga/yoga/module.modulemap +21 -0
- pythonnative/native/yoga/yoga/node/CachedMeasurement.h +53 -0
- pythonnative/native/yoga/yoga/node/LayoutResults.cpp +48 -0
- pythonnative/native/yoga/yoga/node/LayoutResults.h +122 -0
- pythonnative/native/yoga/yoga/node/LayoutableChildren.h +148 -0
- pythonnative/native/yoga/yoga/node/Node.cpp +443 -0
- pythonnative/native/yoga/yoga/node/Node.h +337 -0
- pythonnative/native/yoga/yoga/numeric/Comparison.h +81 -0
- pythonnative/native/yoga/yoga/numeric/FloatOptional.h +93 -0
- pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +133 -0
- pythonnative/native/yoga/yoga/style/Style.h +757 -0
- pythonnative/native/yoga/yoga/style/StyleLength.h +107 -0
- pythonnative/native/yoga/yoga/style/StyleValueHandle.h +98 -0
- pythonnative/native/yoga/yoga/style/StyleValuePool.h +127 -0
- pythonnative/native_modules/__init__.py +124 -0
- pythonnative/native_modules/app_state.py +99 -0
- pythonnative/native_modules/battery.py +75 -0
- pythonnative/native_modules/biometrics.py +42 -0
- pythonnative/native_modules/camera.py +65 -0
- pythonnative/native_modules/clipboard.py +46 -0
- pythonnative/native_modules/fallback.py +324 -0
- pythonnative/native_modules/file_system.py +145 -0
- pythonnative/native_modules/haptics.py +75 -0
- pythonnative/native_modules/linking.py +123 -0
- pythonnative/native_modules/location.py +75 -0
- pythonnative/native_modules/net_info.py +112 -0
- pythonnative/native_modules/notifications.py +129 -0
- pythonnative/native_modules/permissions.py +108 -0
- pythonnative/native_modules/registry.py +526 -0
- pythonnative/native_modules/secure_store.py +52 -0
- pythonnative/native_modules/share.py +51 -0
- pythonnative/native_views/__init__.py +375 -0
- pythonnative/native_views/base.py +316 -0
- pythonnative/native_views/bridge_backend.py +277 -0
- pythonnative/navigation/__init__.py +103 -0
- pythonnative/navigation/container.py +154 -0
- pythonnative/navigation/handle.py +540 -0
- pythonnative/navigation/hooks.py +133 -0
- pythonnative/navigation/host.py +58 -0
- pythonnative/navigation/linking.py +200 -0
- pythonnative/navigation/navigators.py +659 -0
- pythonnative/navigation/screen.py +149 -0
- pythonnative/navigation/state.py +269 -0
- pythonnative/net.py +248 -0
- pythonnative/platform.py +166 -0
- pythonnative/platform_metrics.py +252 -0
- pythonnative/preview.py +287 -0
- pythonnative/profiling.py +101 -0
- pythonnative/project/__init__.py +68 -0
- pythonnative/project/android.py +557 -0
- pythonnative/project/builder.py +817 -0
- pythonnative/project/config.py +773 -0
- pythonnative/project/deps.py +719 -0
- pythonnative/project/devices.py +304 -0
- pythonnative/project/doctor.py +283 -0
- pythonnative/project/fingerprint.py +171 -0
- pythonnative/project/icons.py +247 -0
- pythonnative/project/ios.py +325 -0
- pythonnative/project/lockfile.py +100 -0
- pythonnative/project/permissions.py +361 -0
- pythonnative/project/plugins.py +519 -0
- pythonnative/project/runtime_assets.py +183 -0
- pythonnative/py.typed +0 -0
- pythonnative/query.py +153 -0
- pythonnative/reconciler/__init__.py +29 -0
- pythonnative/reconciler/boundaries.py +375 -0
- pythonnative/reconciler/children.py +88 -0
- pythonnative/reconciler/core.py +1165 -0
- pythonnative/reconciler/layout_pass.py +393 -0
- pythonnative/reconciler/vnode.py +266 -0
- pythonnative/refresh.py +55 -0
- pythonnative/runtime.py +306 -0
- pythonnative/scheduler.py +159 -0
- pythonnative/sdk/__init__.py +153 -0
- pythonnative/sdk/_components.py +427 -0
- pythonnative/sdk/builtins.py +91 -0
- pythonnative/sdk/codegen.py +149 -0
- pythonnative/sdk/module_codegen.py +184 -0
- pythonnative/sdk/schema.py +224 -0
- pythonnative/sdk/templates/contracts.kt +46 -0
- pythonnative/sdk/templates/contracts.swift +46 -0
- pythonnative/storage.py +184 -0
- pythonnative/style.py +841 -0
- pythonnative/suspense.py +183 -0
- pythonnative/templates/android_template/app/build.gradle +75 -0
- pythonnative/templates/android_template/app/proguard-rules.pro +21 -0
- pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +24 -0
- pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +7 -0
- pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +32 -0
- pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +130 -0
- pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +13 -0
- pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
- pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +30 -0
- pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +10 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +22 -0
- pythonnative/templates/android_template/app/src/main/res/values/colors.xml +5 -0
- pythonnative/templates/android_template/app/src/main/res/values/strings.xml +5 -0
- pythonnative/templates/android_template/app/src/main/res/values/themes.xml +9 -0
- pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +7 -0
- pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +13 -0
- pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +19 -0
- pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +17 -0
- pythonnative/templates/android_template/build.gradle +10 -0
- pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
- pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +6 -0
- pythonnative/templates/android_template/gradle.properties +23 -0
- pythonnative/templates/android_template/gradlew +185 -0
- pythonnative/templates/android_template/gradlew.bat +89 -0
- pythonnative/templates/android_template/settings.gradle +17 -0
- pythonnative/templates/ios_template/ios_template/AppDelegate.swift +51 -0
- pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +13 -0
- pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +6 -0
- pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +25 -0
- pythonnative/templates/ios_template/ios_template/BridgingHeader.h +14 -0
- pythonnative/templates/ios_template/ios_template/Info.plist +28 -0
- pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +390 -0
- pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +61 -0
- pythonnative/templates/ios_template/ios_template/ViewController.swift +23 -0
- pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +745 -0
- pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +36 -0
- pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +41 -0
- pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +32 -0
- pythonnative/testing/__init__.py +53 -0
- pythonnative/testing/backend.py +276 -0
- pythonnative/testing/harness.py +369 -0
- pythonnative/utils.py +145 -0
- pythonnative-0.40.0.dist-info/DELVEWHEEL +2 -0
- pythonnative-0.40.0.dist-info/METADATA +150 -0
- pythonnative-0.40.0.dist-info/RECORD +418 -0
- pythonnative-0.40.0.dist-info/WHEEL +5 -0
- pythonnative-0.40.0.dist-info/entry_points.txt +2 -0
- pythonnative-0.40.0.dist-info/licenses/LICENSE +21 -0
- pythonnative-0.40.0.dist-info/top_level.txt +1 -0
- pythonnative.libs/msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll +0 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#pragma once
|
|
9
|
+
|
|
10
|
+
#ifdef __cplusplus
|
|
11
|
+
#include <type_traits>
|
|
12
|
+
#endif
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
#define YG_EXTERN_C_BEGIN extern "C" {
|
|
16
|
+
#define YG_EXTERN_C_END }
|
|
17
|
+
#else
|
|
18
|
+
#define YG_EXTERN_C_BEGIN
|
|
19
|
+
#define YG_EXTERN_C_END
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
#if defined(__cplusplus)
|
|
23
|
+
#define YG_DEPRECATED(message) [[deprecated(message)]]
|
|
24
|
+
#elif defined(_MSC_VER)
|
|
25
|
+
#define YG_DEPRECATED(message) __declspec(deprecated(message))
|
|
26
|
+
#else
|
|
27
|
+
#define YG_DEPRECATED(message) __attribute__((deprecated(message)))
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
#ifdef _WINDLL
|
|
31
|
+
#define YG_EXPORT __declspec(dllexport)
|
|
32
|
+
#elif !defined(_MSC_VER)
|
|
33
|
+
#define YG_EXPORT __attribute__((visibility("default")))
|
|
34
|
+
#else
|
|
35
|
+
#define YG_EXPORT
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#ifdef __OBJC__
|
|
39
|
+
#if __has_include(<Foundation/Foundation.h>)
|
|
40
|
+
#import <Foundation/Foundation.h>
|
|
41
|
+
#endif
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
#ifdef NS_ENUM
|
|
45
|
+
// Cannot use NSInteger as NSInteger has a different size than int (which is the
|
|
46
|
+
// default type of a enum). Therefor when linking the Yoga C library into obj-c
|
|
47
|
+
// the header is a mismatch for the Yoga ABI.
|
|
48
|
+
#define YG_ENUM_BEGIN(name) NS_ENUM(int, name)
|
|
49
|
+
#define YG_ENUM_END(name)
|
|
50
|
+
#else
|
|
51
|
+
#define YG_ENUM_BEGIN(name) enum name
|
|
52
|
+
#define YG_ENUM_END(name) name
|
|
53
|
+
#endif
|
|
54
|
+
|
|
55
|
+
#ifdef __cplusplus
|
|
56
|
+
#define YG_DEFINE_ENUM_FLAG_OPERATORS(name) \
|
|
57
|
+
extern "C++" { \
|
|
58
|
+
constexpr name operator~(name a) { \
|
|
59
|
+
return static_cast<name>( \
|
|
60
|
+
~static_cast<std::underlying_type<name>::type>(a)); \
|
|
61
|
+
} \
|
|
62
|
+
constexpr name operator|(name a, name b) { \
|
|
63
|
+
return static_cast<name>( \
|
|
64
|
+
static_cast<std::underlying_type<name>::type>(a) | \
|
|
65
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
66
|
+
} \
|
|
67
|
+
constexpr name operator&(name a, name b) { \
|
|
68
|
+
return static_cast<name>( \
|
|
69
|
+
static_cast<std::underlying_type<name>::type>(a) & \
|
|
70
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
71
|
+
} \
|
|
72
|
+
constexpr name operator^(name a, name b) { \
|
|
73
|
+
return static_cast<name>( \
|
|
74
|
+
static_cast<std::underlying_type<name>::type>(a) ^ \
|
|
75
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
76
|
+
} \
|
|
77
|
+
inline name& operator|=(name& a, name b) { \
|
|
78
|
+
return reinterpret_cast<name&>( \
|
|
79
|
+
reinterpret_cast<std::underlying_type<name>::type&>(a) |= \
|
|
80
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
81
|
+
} \
|
|
82
|
+
inline name& operator&=(name& a, name b) { \
|
|
83
|
+
return reinterpret_cast<name&>( \
|
|
84
|
+
reinterpret_cast<std::underlying_type<name>::type&>(a) &= \
|
|
85
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
86
|
+
} \
|
|
87
|
+
inline name& operator^=(name& a, name b) { \
|
|
88
|
+
return reinterpret_cast<name&>( \
|
|
89
|
+
reinterpret_cast<std::underlying_type<name>::type&>(a) ^= \
|
|
90
|
+
static_cast<std::underlying_type<name>::type>(b)); \
|
|
91
|
+
} \
|
|
92
|
+
}
|
|
93
|
+
#else
|
|
94
|
+
#define YG_DEFINE_ENUM_FLAG_OPERATORS(name)
|
|
95
|
+
#endif
|
|
96
|
+
|
|
97
|
+
#define YG_ENUM_DECL(NAME, ...) \
|
|
98
|
+
typedef YG_ENUM_BEGIN(NAME){__VA_ARGS__} YG_ENUM_END(NAME); \
|
|
99
|
+
YG_EXPORT const char* NAME##ToString(NAME);
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#include <yoga/Yoga.h>
|
|
9
|
+
|
|
10
|
+
#include <yoga/algorithm/Cache.h>
|
|
11
|
+
#include <yoga/algorithm/CalculateLayout.h>
|
|
12
|
+
#include <yoga/debug/AssertFatal.h>
|
|
13
|
+
#include <yoga/debug/Log.h>
|
|
14
|
+
#include <yoga/event/event.h>
|
|
15
|
+
#include <yoga/node/Node.h>
|
|
16
|
+
|
|
17
|
+
using namespace facebook;
|
|
18
|
+
using namespace facebook::yoga;
|
|
19
|
+
|
|
20
|
+
YGNodeRef YGNodeNew(void) {
|
|
21
|
+
return YGNodeNewWithConfig(YGConfigGetDefault());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
YGNodeRef YGNodeNewWithConfig(const YGConfigConstRef config) {
|
|
25
|
+
auto* node = new yoga::Node{resolveRef(config)};
|
|
26
|
+
yoga::assertFatal(
|
|
27
|
+
config != nullptr, "Tried to construct YGNode with null config");
|
|
28
|
+
Event::publish<Event::NodeAllocation>(node, {config});
|
|
29
|
+
|
|
30
|
+
return node;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
YGNodeRef YGNodeClone(YGNodeConstRef oldNodeRef) {
|
|
34
|
+
auto oldNode = resolveRef(oldNodeRef);
|
|
35
|
+
const auto node = new yoga::Node(*oldNode);
|
|
36
|
+
Event::publish<Event::NodeAllocation>(node, {node->getConfig()});
|
|
37
|
+
node->setOwner(nullptr);
|
|
38
|
+
return node;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
void YGNodeFree(const YGNodeRef nodeRef) {
|
|
42
|
+
const auto node = resolveRef(nodeRef);
|
|
43
|
+
|
|
44
|
+
if (auto owner = node->getOwner()) {
|
|
45
|
+
owner->removeChild(node);
|
|
46
|
+
node->setOwner(nullptr);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const size_t childCount = node->getChildCount();
|
|
50
|
+
for (size_t i = 0; i < childCount; i++) {
|
|
51
|
+
auto child = node->getChild(i);
|
|
52
|
+
child->setOwner(nullptr);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
node->clearChildren();
|
|
56
|
+
|
|
57
|
+
Event::publish<Event::NodeDeallocation>(node, {YGNodeGetConfig(node)});
|
|
58
|
+
delete resolveRef(node);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void YGNodeFreeRecursive(YGNodeRef rootRef) {
|
|
62
|
+
const auto root = resolveRef(rootRef);
|
|
63
|
+
|
|
64
|
+
size_t skipped = 0;
|
|
65
|
+
while (root->getChildCount() > skipped) {
|
|
66
|
+
const auto child = root->getChild(skipped);
|
|
67
|
+
if (child->getOwner() != root) {
|
|
68
|
+
// Don't free shared nodes that we don't own.
|
|
69
|
+
skipped += 1;
|
|
70
|
+
} else {
|
|
71
|
+
YGNodeRemoveChild(root, child);
|
|
72
|
+
YGNodeFreeRecursive(child);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
YGNodeFree(root);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
void YGNodeFinalize(const YGNodeRef node) {
|
|
79
|
+
Event::publish<Event::NodeDeallocation>(node, {YGNodeGetConfig(node)});
|
|
80
|
+
delete resolveRef(node);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
void YGNodeReset(YGNodeRef node) {
|
|
84
|
+
resolveRef(node)->reset();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void YGNodeCalculateLayout(
|
|
88
|
+
const YGNodeRef node,
|
|
89
|
+
const float ownerWidth,
|
|
90
|
+
const float ownerHeight,
|
|
91
|
+
const YGDirection ownerDirection) {
|
|
92
|
+
yoga::calculateLayout(
|
|
93
|
+
resolveRef(node), ownerWidth, ownerHeight, scopedEnum(ownerDirection));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
bool YGNodeGetHasNewLayout(YGNodeConstRef node) {
|
|
97
|
+
return resolveRef(node)->getHasNewLayout();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
void YGNodeSetHasNewLayout(YGNodeRef node, bool hasNewLayout) {
|
|
101
|
+
resolveRef(node)->setHasNewLayout(hasNewLayout);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
bool YGNodeIsDirty(YGNodeConstRef node) {
|
|
105
|
+
return resolveRef(node)->isDirty();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
void YGNodeMarkDirty(const YGNodeRef nodeRef) {
|
|
109
|
+
const auto node = resolveRef(nodeRef);
|
|
110
|
+
|
|
111
|
+
yoga::assertFatalWithNode(
|
|
112
|
+
node,
|
|
113
|
+
node->hasMeasureFunc(),
|
|
114
|
+
"Only leaf nodes with custom measure functions "
|
|
115
|
+
"should manually mark themselves as dirty");
|
|
116
|
+
|
|
117
|
+
node->markDirtyAndPropagate();
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
void YGNodeSetDirtiedFunc(YGNodeRef node, YGDirtiedFunc dirtiedFunc) {
|
|
121
|
+
resolveRef(node)->setDirtiedFunc(dirtiedFunc);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
YGDirtiedFunc YGNodeGetDirtiedFunc(YGNodeConstRef node) {
|
|
125
|
+
return resolveRef(node)->getDirtiedFunc();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
void YGNodeInsertChild(
|
|
129
|
+
const YGNodeRef ownerRef,
|
|
130
|
+
const YGNodeRef childRef,
|
|
131
|
+
const size_t index) {
|
|
132
|
+
auto owner = resolveRef(ownerRef);
|
|
133
|
+
auto child = resolveRef(childRef);
|
|
134
|
+
|
|
135
|
+
yoga::assertFatalWithNode(
|
|
136
|
+
owner,
|
|
137
|
+
child->getOwner() == nullptr,
|
|
138
|
+
"Child already has a owner, it must be removed first.");
|
|
139
|
+
|
|
140
|
+
yoga::assertFatalWithNode(
|
|
141
|
+
owner,
|
|
142
|
+
!owner->hasMeasureFunc(),
|
|
143
|
+
"Cannot add child: Nodes with measure functions cannot have children.");
|
|
144
|
+
|
|
145
|
+
owner->insertChild(child, index);
|
|
146
|
+
child->setOwner(owner);
|
|
147
|
+
owner->markDirtyAndPropagate();
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
void YGNodeSwapChild(
|
|
151
|
+
const YGNodeRef ownerRef,
|
|
152
|
+
const YGNodeRef childRef,
|
|
153
|
+
const size_t index) {
|
|
154
|
+
auto owner = resolveRef(ownerRef);
|
|
155
|
+
auto child = resolveRef(childRef);
|
|
156
|
+
|
|
157
|
+
owner->replaceChild(child, index);
|
|
158
|
+
child->setOwner(owner);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
void YGNodeRemoveChild(
|
|
162
|
+
const YGNodeRef ownerRef,
|
|
163
|
+
const YGNodeRef excludedChildRef) {
|
|
164
|
+
auto owner = resolveRef(ownerRef);
|
|
165
|
+
auto excludedChild = resolveRef(excludedChildRef);
|
|
166
|
+
|
|
167
|
+
if (owner->getChildCount() == 0) {
|
|
168
|
+
// This is an empty set. Nothing to remove.
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Children may be shared between parents, which is indicated by not having an
|
|
173
|
+
// owner. We only want to reset the child completely if it is owned
|
|
174
|
+
// exclusively by one node.
|
|
175
|
+
auto childOwner = excludedChild->getOwner();
|
|
176
|
+
if (owner->removeChild(excludedChild)) {
|
|
177
|
+
if (owner == childOwner) {
|
|
178
|
+
excludedChild->setLayout({}); // layout is no longer valid
|
|
179
|
+
excludedChild->setOwner(nullptr);
|
|
180
|
+
}
|
|
181
|
+
owner->markDirtyAndPropagate();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
void YGNodeRemoveAllChildren(const YGNodeRef ownerRef) {
|
|
186
|
+
auto owner = resolveRef(ownerRef);
|
|
187
|
+
|
|
188
|
+
const size_t childCount = owner->getChildCount();
|
|
189
|
+
if (childCount == 0) {
|
|
190
|
+
// This is an empty set already. Nothing to do.
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
auto* firstChild = owner->getChild(0);
|
|
194
|
+
if (firstChild->getOwner() == owner) {
|
|
195
|
+
// If the first child has this node as its owner, we assume that this child
|
|
196
|
+
// set is unique.
|
|
197
|
+
for (size_t i = 0; i < childCount; i++) {
|
|
198
|
+
yoga::Node* oldChild = owner->getChild(i);
|
|
199
|
+
oldChild->setLayout({}); // layout is no longer valid
|
|
200
|
+
oldChild->setOwner(nullptr);
|
|
201
|
+
}
|
|
202
|
+
owner->clearChildren();
|
|
203
|
+
owner->markDirtyAndPropagate();
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
// Otherwise, we are not the owner of the child set. We don't have to do
|
|
207
|
+
// anything to clear it.
|
|
208
|
+
owner->setChildren({});
|
|
209
|
+
owner->markDirtyAndPropagate();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
void YGNodeSetChildren(
|
|
213
|
+
const YGNodeRef ownerRef,
|
|
214
|
+
const YGNodeRef* childrenRefs,
|
|
215
|
+
const size_t count) {
|
|
216
|
+
auto owner = resolveRef(ownerRef);
|
|
217
|
+
auto children = reinterpret_cast<yoga::Node* const*>(childrenRefs);
|
|
218
|
+
|
|
219
|
+
if (owner == nullptr) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
const std::vector<yoga::Node*> childrenVector = {children, children + count};
|
|
224
|
+
if (childrenVector.empty()) {
|
|
225
|
+
if (owner->getChildCount() > 0) {
|
|
226
|
+
for (auto* child : owner->getChildren()) {
|
|
227
|
+
child->setLayout({});
|
|
228
|
+
child->setOwner(nullptr);
|
|
229
|
+
}
|
|
230
|
+
owner->setChildren({});
|
|
231
|
+
owner->markDirtyAndPropagate();
|
|
232
|
+
}
|
|
233
|
+
} else {
|
|
234
|
+
if (owner->getChildCount() > 0) {
|
|
235
|
+
for (auto* oldChild : owner->getChildren()) {
|
|
236
|
+
// Our new children may have nodes in common with the old children. We
|
|
237
|
+
// don't reset these common nodes.
|
|
238
|
+
if (std::find(childrenVector.begin(), childrenVector.end(), oldChild) ==
|
|
239
|
+
childrenVector.end()) {
|
|
240
|
+
oldChild->setLayout({});
|
|
241
|
+
oldChild->setOwner(nullptr);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
owner->setChildren(childrenVector);
|
|
246
|
+
for (yoga::Node* child : childrenVector) {
|
|
247
|
+
child->setOwner(owner);
|
|
248
|
+
}
|
|
249
|
+
owner->markDirtyAndPropagate();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
YGNodeRef YGNodeGetChild(const YGNodeRef nodeRef, const size_t index) {
|
|
254
|
+
const auto node = resolveRef(nodeRef);
|
|
255
|
+
|
|
256
|
+
if (index < node->getChildren().size()) {
|
|
257
|
+
return node->getChild(index);
|
|
258
|
+
}
|
|
259
|
+
return nullptr;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
size_t YGNodeGetChildCount(const YGNodeConstRef node) {
|
|
263
|
+
return resolveRef(node)->getChildren().size();
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
YGNodeRef YGNodeGetOwner(const YGNodeRef node) {
|
|
267
|
+
return resolveRef(node)->getOwner();
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
YGNodeRef YGNodeGetParent(const YGNodeRef node) {
|
|
271
|
+
return resolveRef(node)->getOwner();
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
void YGNodeSetConfig(YGNodeRef node, YGConfigRef config) {
|
|
275
|
+
resolveRef(node)->setConfig(resolveRef(config));
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
YGConfigConstRef YGNodeGetConfig(YGNodeRef node) {
|
|
279
|
+
return resolveRef(node)->getConfig();
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
void YGNodeSetContext(YGNodeRef node, void* context) {
|
|
283
|
+
return resolveRef(node)->setContext(context);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
void* YGNodeGetContext(YGNodeConstRef node) {
|
|
287
|
+
return resolveRef(node)->getContext();
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
void YGNodeSetMeasureFunc(YGNodeRef node, YGMeasureFunc measureFunc) {
|
|
291
|
+
resolveRef(node)->setMeasureFunc(measureFunc);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
bool YGNodeHasMeasureFunc(YGNodeConstRef node) {
|
|
295
|
+
return resolveRef(node)->hasMeasureFunc();
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
void YGNodeSetBaselineFunc(YGNodeRef node, YGBaselineFunc baselineFunc) {
|
|
299
|
+
resolveRef(node)->setBaselineFunc(baselineFunc);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
bool YGNodeHasBaselineFunc(YGNodeConstRef node) {
|
|
303
|
+
return resolveRef(node)->hasBaselineFunc();
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
void YGNodeSetIsReferenceBaseline(YGNodeRef nodeRef, bool isReferenceBaseline) {
|
|
307
|
+
const auto node = resolveRef(nodeRef);
|
|
308
|
+
if (node->isReferenceBaseline() != isReferenceBaseline) {
|
|
309
|
+
node->setIsReferenceBaseline(isReferenceBaseline);
|
|
310
|
+
node->markDirtyAndPropagate();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
bool YGNodeIsReferenceBaseline(YGNodeConstRef node) {
|
|
315
|
+
return resolveRef(node)->isReferenceBaseline();
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
void YGNodeSetNodeType(YGNodeRef node, YGNodeType nodeType) {
|
|
319
|
+
return resolveRef(node)->setNodeType(scopedEnum(nodeType));
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
YGNodeType YGNodeGetNodeType(YGNodeConstRef node) {
|
|
323
|
+
return unscopedEnum(resolveRef(node)->getNodeType());
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
void YGNodeSetAlwaysFormsContainingBlock(
|
|
327
|
+
YGNodeRef node,
|
|
328
|
+
bool alwaysFormsContainingBlock) {
|
|
329
|
+
resolveRef(node)->setAlwaysFormsContainingBlock(alwaysFormsContainingBlock);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
bool YGNodeGetAlwaysFormsContainingBlock(YGNodeConstRef node) {
|
|
333
|
+
return resolveRef(node)->alwaysFormsContainingBlock();
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// TODO: This leaks internal details to the public API. Remove after removing
|
|
337
|
+
// ComponentKit usage of it.
|
|
338
|
+
bool YGNodeCanUseCachedMeasurement(
|
|
339
|
+
YGMeasureMode widthMode,
|
|
340
|
+
float availableWidth,
|
|
341
|
+
YGMeasureMode heightMode,
|
|
342
|
+
float availableHeight,
|
|
343
|
+
YGMeasureMode lastWidthMode,
|
|
344
|
+
float lastAvailableWidth,
|
|
345
|
+
YGMeasureMode lastHeightMode,
|
|
346
|
+
float lastAvailableHeight,
|
|
347
|
+
float lastComputedWidth,
|
|
348
|
+
float lastComputedHeight,
|
|
349
|
+
float marginRow,
|
|
350
|
+
float marginColumn,
|
|
351
|
+
YGConfigRef config) {
|
|
352
|
+
return yoga::canUseCachedMeasurement(
|
|
353
|
+
sizingMode(scopedEnum(widthMode)),
|
|
354
|
+
availableWidth,
|
|
355
|
+
sizingMode(scopedEnum(heightMode)),
|
|
356
|
+
availableHeight,
|
|
357
|
+
sizingMode(scopedEnum(lastWidthMode)),
|
|
358
|
+
lastAvailableWidth,
|
|
359
|
+
sizingMode(scopedEnum(lastHeightMode)),
|
|
360
|
+
lastAvailableHeight,
|
|
361
|
+
lastComputedWidth,
|
|
362
|
+
lastComputedHeight,
|
|
363
|
+
marginRow,
|
|
364
|
+
marginColumn,
|
|
365
|
+
resolveRef(config));
|
|
366
|
+
}
|