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,405 @@
|
|
|
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
|
+
#include <yoga/debug/AssertFatal.h>
|
|
10
|
+
#include <yoga/node/Node.h>
|
|
11
|
+
|
|
12
|
+
using namespace facebook;
|
|
13
|
+
using namespace facebook::yoga;
|
|
14
|
+
|
|
15
|
+
namespace {
|
|
16
|
+
|
|
17
|
+
template <auto GetterT, auto SetterT, typename ValueT>
|
|
18
|
+
void updateStyle(YGNodeRef node, ValueT value) {
|
|
19
|
+
auto& style = resolveRef(node)->style();
|
|
20
|
+
if ((style.*GetterT)() != value) {
|
|
21
|
+
(style.*SetterT)(value);
|
|
22
|
+
resolveRef(node)->markDirtyAndPropagate();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
template <auto GetterT, auto SetterT, typename IdxT, typename ValueT>
|
|
27
|
+
void updateStyle(YGNodeRef node, IdxT idx, ValueT value) {
|
|
28
|
+
auto& style = resolveRef(node)->style();
|
|
29
|
+
if ((style.*GetterT)(idx) != value) {
|
|
30
|
+
(style.*SetterT)(idx, value);
|
|
31
|
+
resolveRef(node)->markDirtyAndPropagate();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
} // namespace
|
|
36
|
+
|
|
37
|
+
void YGNodeCopyStyle(YGNodeRef dstNode, YGNodeConstRef srcNode) {
|
|
38
|
+
auto dst = resolveRef(dstNode);
|
|
39
|
+
auto src = resolveRef(srcNode);
|
|
40
|
+
|
|
41
|
+
if (dst->style() != src->style()) {
|
|
42
|
+
dst->setStyle(src->style());
|
|
43
|
+
dst->markDirtyAndPropagate();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
void YGNodeStyleSetDirection(const YGNodeRef node, const YGDirection value) {
|
|
48
|
+
updateStyle<&Style::direction, &Style::setDirection>(node, scopedEnum(value));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
YGDirection YGNodeStyleGetDirection(const YGNodeConstRef node) {
|
|
52
|
+
return unscopedEnum(resolveRef(node)->style().direction());
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void YGNodeStyleSetFlexDirection(
|
|
56
|
+
const YGNodeRef node,
|
|
57
|
+
const YGFlexDirection flexDirection) {
|
|
58
|
+
updateStyle<&Style::flexDirection, &Style::setFlexDirection>(
|
|
59
|
+
node, scopedEnum(flexDirection));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
YGFlexDirection YGNodeStyleGetFlexDirection(const YGNodeConstRef node) {
|
|
63
|
+
return unscopedEnum(resolveRef(node)->style().flexDirection());
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void YGNodeStyleSetJustifyContent(
|
|
67
|
+
const YGNodeRef node,
|
|
68
|
+
const YGJustify justifyContent) {
|
|
69
|
+
updateStyle<&Style::justifyContent, &Style::setJustifyContent>(
|
|
70
|
+
node, scopedEnum(justifyContent));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
YGJustify YGNodeStyleGetJustifyContent(const YGNodeConstRef node) {
|
|
74
|
+
return unscopedEnum(resolveRef(node)->style().justifyContent());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
void YGNodeStyleSetAlignContent(
|
|
78
|
+
const YGNodeRef node,
|
|
79
|
+
const YGAlign alignContent) {
|
|
80
|
+
updateStyle<&Style::alignContent, &Style::setAlignContent>(
|
|
81
|
+
node, scopedEnum(alignContent));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
YGAlign YGNodeStyleGetAlignContent(const YGNodeConstRef node) {
|
|
85
|
+
return unscopedEnum(resolveRef(node)->style().alignContent());
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void YGNodeStyleSetAlignItems(const YGNodeRef node, const YGAlign alignItems) {
|
|
89
|
+
updateStyle<&Style::alignItems, &Style::setAlignItems>(
|
|
90
|
+
node, scopedEnum(alignItems));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
YGAlign YGNodeStyleGetAlignItems(const YGNodeConstRef node) {
|
|
94
|
+
return unscopedEnum(resolveRef(node)->style().alignItems());
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
void YGNodeStyleSetAlignSelf(const YGNodeRef node, const YGAlign alignSelf) {
|
|
98
|
+
updateStyle<&Style::alignSelf, &Style::setAlignSelf>(
|
|
99
|
+
node, scopedEnum(alignSelf));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
YGAlign YGNodeStyleGetAlignSelf(const YGNodeConstRef node) {
|
|
103
|
+
return unscopedEnum(resolveRef(node)->style().alignSelf());
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
void YGNodeStyleSetPositionType(
|
|
107
|
+
const YGNodeRef node,
|
|
108
|
+
const YGPositionType positionType) {
|
|
109
|
+
updateStyle<&Style::positionType, &Style::setPositionType>(
|
|
110
|
+
node, scopedEnum(positionType));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
YGPositionType YGNodeStyleGetPositionType(const YGNodeConstRef node) {
|
|
114
|
+
return unscopedEnum(resolveRef(node)->style().positionType());
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
void YGNodeStyleSetFlexWrap(const YGNodeRef node, const YGWrap flexWrap) {
|
|
118
|
+
updateStyle<&Style::flexWrap, &Style::setFlexWrap>(
|
|
119
|
+
node, scopedEnum(flexWrap));
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
YGWrap YGNodeStyleGetFlexWrap(const YGNodeConstRef node) {
|
|
123
|
+
return unscopedEnum(resolveRef(node)->style().flexWrap());
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
void YGNodeStyleSetOverflow(const YGNodeRef node, const YGOverflow overflow) {
|
|
127
|
+
updateStyle<&Style::overflow, &Style::setOverflow>(
|
|
128
|
+
node, scopedEnum(overflow));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
YGOverflow YGNodeStyleGetOverflow(const YGNodeConstRef node) {
|
|
132
|
+
return unscopedEnum(resolveRef(node)->style().overflow());
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
void YGNodeStyleSetDisplay(const YGNodeRef node, const YGDisplay display) {
|
|
136
|
+
updateStyle<&Style::display, &Style::setDisplay>(node, scopedEnum(display));
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
YGDisplay YGNodeStyleGetDisplay(const YGNodeConstRef node) {
|
|
140
|
+
return unscopedEnum(resolveRef(node)->style().display());
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
void YGNodeStyleSetFlex(const YGNodeRef node, const float flex) {
|
|
144
|
+
updateStyle<&Style::flex, &Style::setFlex>(node, FloatOptional{flex});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
float YGNodeStyleGetFlex(const YGNodeConstRef nodeRef) {
|
|
148
|
+
const auto node = resolveRef(nodeRef);
|
|
149
|
+
return node->style().flex().isUndefined() ? YGUndefined
|
|
150
|
+
: node->style().flex().unwrap();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
void YGNodeStyleSetFlexGrow(const YGNodeRef node, const float flexGrow) {
|
|
154
|
+
updateStyle<&Style::flexGrow, &Style::setFlexGrow>(
|
|
155
|
+
node, FloatOptional{flexGrow});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
float YGNodeStyleGetFlexGrow(const YGNodeConstRef nodeRef) {
|
|
159
|
+
const auto node = resolveRef(nodeRef);
|
|
160
|
+
return node->style().flexGrow().isUndefined()
|
|
161
|
+
? Style::DefaultFlexGrow
|
|
162
|
+
: node->style().flexGrow().unwrap();
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
void YGNodeStyleSetFlexShrink(const YGNodeRef node, const float flexShrink) {
|
|
166
|
+
updateStyle<&Style::flexShrink, &Style::setFlexShrink>(
|
|
167
|
+
node, FloatOptional{flexShrink});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
float YGNodeStyleGetFlexShrink(const YGNodeConstRef nodeRef) {
|
|
171
|
+
const auto node = resolveRef(nodeRef);
|
|
172
|
+
return node->style().flexShrink().isUndefined()
|
|
173
|
+
? (node->getConfig()->useWebDefaults() ? Style::WebDefaultFlexShrink
|
|
174
|
+
: Style::DefaultFlexShrink)
|
|
175
|
+
: node->style().flexShrink().unwrap();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
void YGNodeStyleSetFlexBasis(const YGNodeRef node, const float flexBasis) {
|
|
179
|
+
updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
|
|
180
|
+
node, StyleLength::points(flexBasis));
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
void YGNodeStyleSetFlexBasisPercent(
|
|
184
|
+
const YGNodeRef node,
|
|
185
|
+
const float flexBasisPercent) {
|
|
186
|
+
updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
|
|
187
|
+
node, StyleLength::percent(flexBasisPercent));
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
void YGNodeStyleSetFlexBasisAuto(const YGNodeRef node) {
|
|
191
|
+
updateStyle<&Style::flexBasis, &Style::setFlexBasis>(
|
|
192
|
+
node, StyleLength::ofAuto());
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
YGValue YGNodeStyleGetFlexBasis(const YGNodeConstRef node) {
|
|
196
|
+
return (YGValue)resolveRef(node)->style().flexBasis();
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
void YGNodeStyleSetPosition(YGNodeRef node, YGEdge edge, float points) {
|
|
200
|
+
updateStyle<&Style::position, &Style::setPosition>(
|
|
201
|
+
node, scopedEnum(edge), StyleLength::points(points));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
void YGNodeStyleSetPositionPercent(YGNodeRef node, YGEdge edge, float percent) {
|
|
205
|
+
updateStyle<&Style::position, &Style::setPosition>(
|
|
206
|
+
node, scopedEnum(edge), StyleLength::percent(percent));
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
void YGNodeStyleSetPositionAuto(YGNodeRef node, YGEdge edge) {
|
|
210
|
+
updateStyle<&Style::position, &Style::setPosition>(
|
|
211
|
+
node, scopedEnum(edge), StyleLength::ofAuto());
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
YGValue YGNodeStyleGetPosition(YGNodeConstRef node, YGEdge edge) {
|
|
215
|
+
return (YGValue)resolveRef(node)->style().position(scopedEnum(edge));
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
void YGNodeStyleSetMargin(YGNodeRef node, YGEdge edge, float points) {
|
|
219
|
+
updateStyle<&Style::margin, &Style::setMargin>(
|
|
220
|
+
node, scopedEnum(edge), StyleLength::points(points));
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
void YGNodeStyleSetMarginPercent(YGNodeRef node, YGEdge edge, float percent) {
|
|
224
|
+
updateStyle<&Style::margin, &Style::setMargin>(
|
|
225
|
+
node, scopedEnum(edge), StyleLength::percent(percent));
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
void YGNodeStyleSetMarginAuto(YGNodeRef node, YGEdge edge) {
|
|
229
|
+
updateStyle<&Style::margin, &Style::setMargin>(
|
|
230
|
+
node, scopedEnum(edge), StyleLength::ofAuto());
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
YGValue YGNodeStyleGetMargin(YGNodeConstRef node, YGEdge edge) {
|
|
234
|
+
return (YGValue)resolveRef(node)->style().margin(scopedEnum(edge));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
void YGNodeStyleSetPadding(YGNodeRef node, YGEdge edge, float points) {
|
|
238
|
+
updateStyle<&Style::padding, &Style::setPadding>(
|
|
239
|
+
node, scopedEnum(edge), StyleLength::points(points));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
void YGNodeStyleSetPaddingPercent(YGNodeRef node, YGEdge edge, float percent) {
|
|
243
|
+
updateStyle<&Style::padding, &Style::setPadding>(
|
|
244
|
+
node, scopedEnum(edge), StyleLength::percent(percent));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
YGValue YGNodeStyleGetPadding(YGNodeConstRef node, YGEdge edge) {
|
|
248
|
+
return (YGValue)resolveRef(node)->style().padding(scopedEnum(edge));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
void YGNodeStyleSetBorder(
|
|
252
|
+
const YGNodeRef node,
|
|
253
|
+
const YGEdge edge,
|
|
254
|
+
const float border) {
|
|
255
|
+
updateStyle<&Style::border, &Style::setBorder>(
|
|
256
|
+
node, scopedEnum(edge), StyleLength::points(border));
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
float YGNodeStyleGetBorder(const YGNodeConstRef node, const YGEdge edge) {
|
|
260
|
+
auto border = resolveRef(node)->style().border(scopedEnum(edge));
|
|
261
|
+
if (border.isUndefined() || border.isAuto()) {
|
|
262
|
+
return YGUndefined;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return static_cast<YGValue>(border).value;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
void YGNodeStyleSetGap(
|
|
269
|
+
const YGNodeRef node,
|
|
270
|
+
const YGGutter gutter,
|
|
271
|
+
const float gapLength) {
|
|
272
|
+
updateStyle<&Style::gap, &Style::setGap>(
|
|
273
|
+
node, scopedEnum(gutter), StyleLength::points(gapLength));
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
void YGNodeStyleSetGapPercent(YGNodeRef node, YGGutter gutter, float percent) {
|
|
277
|
+
updateStyle<&Style::gap, &Style::setGap>(
|
|
278
|
+
node, scopedEnum(gutter), StyleLength::percent(percent));
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
float YGNodeStyleGetGap(const YGNodeConstRef node, const YGGutter gutter) {
|
|
282
|
+
auto gapLength = resolveRef(node)->style().gap(scopedEnum(gutter));
|
|
283
|
+
if (gapLength.isUndefined() || gapLength.isAuto()) {
|
|
284
|
+
return YGUndefined;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return static_cast<YGValue>(gapLength).value;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
void YGNodeStyleSetAspectRatio(const YGNodeRef node, const float aspectRatio) {
|
|
291
|
+
updateStyle<&Style::aspectRatio, &Style::setAspectRatio>(
|
|
292
|
+
node, FloatOptional{aspectRatio});
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
float YGNodeStyleGetAspectRatio(const YGNodeConstRef node) {
|
|
296
|
+
const FloatOptional op = resolveRef(node)->style().aspectRatio();
|
|
297
|
+
return op.isUndefined() ? YGUndefined : op.unwrap();
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
void YGNodeStyleSetBoxSizing(YGNodeRef node, YGBoxSizing boxSizing) {
|
|
301
|
+
updateStyle<&Style::boxSizing, &Style::setBoxSizing>(
|
|
302
|
+
node, scopedEnum(boxSizing));
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
YGBoxSizing YGNodeStyleGetBoxSizing(const YGNodeConstRef node) {
|
|
306
|
+
return unscopedEnum(resolveRef(node)->style().boxSizing());
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
void YGNodeStyleSetWidth(YGNodeRef node, float points) {
|
|
310
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
311
|
+
node, Dimension::Width, StyleLength::points(points));
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
void YGNodeStyleSetWidthPercent(YGNodeRef node, float percent) {
|
|
315
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
316
|
+
node, Dimension::Width, StyleLength::percent(percent));
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
void YGNodeStyleSetWidthAuto(YGNodeRef node) {
|
|
320
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
321
|
+
node, Dimension::Width, StyleLength::ofAuto());
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
YGValue YGNodeStyleGetWidth(YGNodeConstRef node) {
|
|
325
|
+
return (YGValue)resolveRef(node)->style().dimension(Dimension::Width);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
void YGNodeStyleSetHeight(YGNodeRef node, float points) {
|
|
329
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
330
|
+
node, Dimension::Height, StyleLength::points(points));
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
void YGNodeStyleSetHeightPercent(YGNodeRef node, float percent) {
|
|
334
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
335
|
+
node, Dimension::Height, StyleLength::percent(percent));
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
void YGNodeStyleSetHeightAuto(YGNodeRef node) {
|
|
339
|
+
updateStyle<&Style::dimension, &Style::setDimension>(
|
|
340
|
+
node, Dimension::Height, StyleLength::ofAuto());
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
YGValue YGNodeStyleGetHeight(YGNodeConstRef node) {
|
|
344
|
+
return (YGValue)resolveRef(node)->style().dimension(Dimension::Height);
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
void YGNodeStyleSetMinWidth(const YGNodeRef node, const float minWidth) {
|
|
348
|
+
updateStyle<&Style::minDimension, &Style::setMinDimension>(
|
|
349
|
+
node, Dimension::Width, StyleLength::points(minWidth));
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
void YGNodeStyleSetMinWidthPercent(const YGNodeRef node, const float minWidth) {
|
|
353
|
+
updateStyle<&Style::minDimension, &Style::setMinDimension>(
|
|
354
|
+
node, Dimension::Width, StyleLength::percent(minWidth));
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) {
|
|
358
|
+
return (YGValue)resolveRef(node)->style().minDimension(Dimension::Width);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
void YGNodeStyleSetMinHeight(const YGNodeRef node, const float minHeight) {
|
|
362
|
+
updateStyle<&Style::minDimension, &Style::setMinDimension>(
|
|
363
|
+
node, Dimension::Height, StyleLength::points(minHeight));
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
void YGNodeStyleSetMinHeightPercent(
|
|
367
|
+
const YGNodeRef node,
|
|
368
|
+
const float minHeight) {
|
|
369
|
+
updateStyle<&Style::minDimension, &Style::setMinDimension>(
|
|
370
|
+
node, Dimension::Height, StyleLength::percent(minHeight));
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) {
|
|
374
|
+
return (YGValue)resolveRef(node)->style().minDimension(Dimension::Height);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
void YGNodeStyleSetMaxWidth(const YGNodeRef node, const float maxWidth) {
|
|
378
|
+
updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
|
|
379
|
+
node, Dimension::Width, StyleLength::points(maxWidth));
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
void YGNodeStyleSetMaxWidthPercent(const YGNodeRef node, const float maxWidth) {
|
|
383
|
+
updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
|
|
384
|
+
node, Dimension::Width, StyleLength::percent(maxWidth));
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) {
|
|
388
|
+
return (YGValue)resolveRef(node)->style().maxDimension(Dimension::Width);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
void YGNodeStyleSetMaxHeight(const YGNodeRef node, const float maxHeight) {
|
|
392
|
+
updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
|
|
393
|
+
node, Dimension::Height, StyleLength::points(maxHeight));
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
void YGNodeStyleSetMaxHeightPercent(
|
|
397
|
+
const YGNodeRef node,
|
|
398
|
+
const float maxHeight) {
|
|
399
|
+
updateStyle<&Style::maxDimension, &Style::setMaxDimension>(
|
|
400
|
+
node, Dimension::Height, StyleLength::percent(maxHeight));
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
YGValue YGNodeStyleGetMaxHeight(const YGNodeConstRef node) {
|
|
404
|
+
return (YGValue)resolveRef(node)->style().maxDimension(Dimension::Height);
|
|
405
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
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
|
+
#include <stddef.h>
|
|
11
|
+
|
|
12
|
+
#include <yoga/YGNode.h>
|
|
13
|
+
#include <yoga/YGValue.h>
|
|
14
|
+
|
|
15
|
+
YG_EXTERN_C_BEGIN
|
|
16
|
+
|
|
17
|
+
YG_EXPORT void YGNodeCopyStyle(YGNodeRef dstNode, YGNodeConstRef srcNode);
|
|
18
|
+
|
|
19
|
+
YG_EXPORT void YGNodeStyleSetDirection(YGNodeRef node, YGDirection direction);
|
|
20
|
+
YG_EXPORT YGDirection YGNodeStyleGetDirection(YGNodeConstRef node);
|
|
21
|
+
|
|
22
|
+
YG_EXPORT void YGNodeStyleSetFlexDirection(
|
|
23
|
+
YGNodeRef node,
|
|
24
|
+
YGFlexDirection flexDirection);
|
|
25
|
+
YG_EXPORT YGFlexDirection YGNodeStyleGetFlexDirection(YGNodeConstRef node);
|
|
26
|
+
|
|
27
|
+
YG_EXPORT void YGNodeStyleSetJustifyContent(
|
|
28
|
+
YGNodeRef node,
|
|
29
|
+
YGJustify justifyContent);
|
|
30
|
+
YG_EXPORT YGJustify YGNodeStyleGetJustifyContent(YGNodeConstRef node);
|
|
31
|
+
|
|
32
|
+
YG_EXPORT void YGNodeStyleSetAlignContent(YGNodeRef node, YGAlign alignContent);
|
|
33
|
+
YG_EXPORT YGAlign YGNodeStyleGetAlignContent(YGNodeConstRef node);
|
|
34
|
+
|
|
35
|
+
YG_EXPORT void YGNodeStyleSetAlignItems(YGNodeRef node, YGAlign alignItems);
|
|
36
|
+
YG_EXPORT YGAlign YGNodeStyleGetAlignItems(YGNodeConstRef node);
|
|
37
|
+
|
|
38
|
+
YG_EXPORT void YGNodeStyleSetAlignSelf(YGNodeRef node, YGAlign alignSelf);
|
|
39
|
+
YG_EXPORT YGAlign YGNodeStyleGetAlignSelf(YGNodeConstRef node);
|
|
40
|
+
|
|
41
|
+
YG_EXPORT void YGNodeStyleSetPositionType(
|
|
42
|
+
YGNodeRef node,
|
|
43
|
+
YGPositionType positionType);
|
|
44
|
+
YG_EXPORT YGPositionType YGNodeStyleGetPositionType(YGNodeConstRef node);
|
|
45
|
+
|
|
46
|
+
YG_EXPORT void YGNodeStyleSetFlexWrap(YGNodeRef node, YGWrap flexWrap);
|
|
47
|
+
YG_EXPORT YGWrap YGNodeStyleGetFlexWrap(YGNodeConstRef node);
|
|
48
|
+
|
|
49
|
+
YG_EXPORT void YGNodeStyleSetOverflow(YGNodeRef node, YGOverflow overflow);
|
|
50
|
+
YG_EXPORT YGOverflow YGNodeStyleGetOverflow(YGNodeConstRef node);
|
|
51
|
+
|
|
52
|
+
YG_EXPORT void YGNodeStyleSetDisplay(YGNodeRef node, YGDisplay display);
|
|
53
|
+
YG_EXPORT YGDisplay YGNodeStyleGetDisplay(YGNodeConstRef node);
|
|
54
|
+
|
|
55
|
+
YG_EXPORT void YGNodeStyleSetFlex(YGNodeRef node, float flex);
|
|
56
|
+
YG_EXPORT float YGNodeStyleGetFlex(YGNodeConstRef node);
|
|
57
|
+
|
|
58
|
+
YG_EXPORT void YGNodeStyleSetFlexGrow(YGNodeRef node, float flexGrow);
|
|
59
|
+
YG_EXPORT float YGNodeStyleGetFlexGrow(YGNodeConstRef node);
|
|
60
|
+
|
|
61
|
+
YG_EXPORT void YGNodeStyleSetFlexShrink(YGNodeRef node, float flexShrink);
|
|
62
|
+
YG_EXPORT float YGNodeStyleGetFlexShrink(YGNodeConstRef node);
|
|
63
|
+
|
|
64
|
+
YG_EXPORT void YGNodeStyleSetFlexBasis(YGNodeRef node, float flexBasis);
|
|
65
|
+
YG_EXPORT void YGNodeStyleSetFlexBasisPercent(YGNodeRef node, float flexBasis);
|
|
66
|
+
YG_EXPORT void YGNodeStyleSetFlexBasisAuto(YGNodeRef node);
|
|
67
|
+
YG_EXPORT YGValue YGNodeStyleGetFlexBasis(YGNodeConstRef node);
|
|
68
|
+
|
|
69
|
+
YG_EXPORT void
|
|
70
|
+
YGNodeStyleSetPosition(YGNodeRef node, YGEdge edge, float position);
|
|
71
|
+
YG_EXPORT void
|
|
72
|
+
YGNodeStyleSetPositionPercent(YGNodeRef node, YGEdge edge, float position);
|
|
73
|
+
YG_EXPORT YGValue YGNodeStyleGetPosition(YGNodeConstRef node, YGEdge edge);
|
|
74
|
+
YG_EXPORT void YGNodeStyleSetPositionAuto(YGNodeRef node, YGEdge edge);
|
|
75
|
+
|
|
76
|
+
YG_EXPORT
|
|
77
|
+
void YGNodeStyleSetMargin(YGNodeRef node, YGEdge edge, float margin);
|
|
78
|
+
YG_EXPORT void
|
|
79
|
+
YGNodeStyleSetMarginPercent(YGNodeRef node, YGEdge edge, float margin);
|
|
80
|
+
YG_EXPORT void YGNodeStyleSetMarginAuto(YGNodeRef node, YGEdge edge);
|
|
81
|
+
YG_EXPORT YGValue YGNodeStyleGetMargin(YGNodeConstRef node, YGEdge edge);
|
|
82
|
+
|
|
83
|
+
YG_EXPORT void
|
|
84
|
+
YGNodeStyleSetPadding(YGNodeRef node, YGEdge edge, float padding);
|
|
85
|
+
YG_EXPORT void
|
|
86
|
+
YGNodeStyleSetPaddingPercent(YGNodeRef node, YGEdge edge, float padding);
|
|
87
|
+
YG_EXPORT YGValue YGNodeStyleGetPadding(YGNodeConstRef node, YGEdge edge);
|
|
88
|
+
|
|
89
|
+
YG_EXPORT void YGNodeStyleSetBorder(YGNodeRef node, YGEdge edge, float border);
|
|
90
|
+
YG_EXPORT float YGNodeStyleGetBorder(YGNodeConstRef node, YGEdge edge);
|
|
91
|
+
|
|
92
|
+
YG_EXPORT void
|
|
93
|
+
YGNodeStyleSetGap(YGNodeRef node, YGGutter gutter, float gapLength);
|
|
94
|
+
YG_EXPORT void
|
|
95
|
+
YGNodeStyleSetGapPercent(YGNodeRef node, YGGutter gutter, float gapLength);
|
|
96
|
+
YG_EXPORT float YGNodeStyleGetGap(YGNodeConstRef node, YGGutter gutter);
|
|
97
|
+
|
|
98
|
+
YG_EXPORT void YGNodeStyleSetBoxSizing(YGNodeRef node, YGBoxSizing boxSizing);
|
|
99
|
+
YG_EXPORT YGBoxSizing YGNodeStyleGetBoxSizing(YGNodeConstRef node);
|
|
100
|
+
|
|
101
|
+
YG_EXPORT void YGNodeStyleSetWidth(YGNodeRef node, float width);
|
|
102
|
+
YG_EXPORT void YGNodeStyleSetWidthPercent(YGNodeRef node, float width);
|
|
103
|
+
YG_EXPORT void YGNodeStyleSetWidthAuto(YGNodeRef node);
|
|
104
|
+
YG_EXPORT YGValue YGNodeStyleGetWidth(YGNodeConstRef node);
|
|
105
|
+
|
|
106
|
+
YG_EXPORT void YGNodeStyleSetHeight(YGNodeRef node, float height);
|
|
107
|
+
YG_EXPORT void YGNodeStyleSetHeightPercent(YGNodeRef node, float height);
|
|
108
|
+
YG_EXPORT void YGNodeStyleSetHeightAuto(YGNodeRef node);
|
|
109
|
+
YG_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node);
|
|
110
|
+
|
|
111
|
+
YG_EXPORT void YGNodeStyleSetMinWidth(YGNodeRef node, float minWidth);
|
|
112
|
+
YG_EXPORT void YGNodeStyleSetMinWidthPercent(YGNodeRef node, float minWidth);
|
|
113
|
+
YG_EXPORT YGValue YGNodeStyleGetMinWidth(YGNodeConstRef node);
|
|
114
|
+
|
|
115
|
+
YG_EXPORT void YGNodeStyleSetMinHeight(YGNodeRef node, float minHeight);
|
|
116
|
+
YG_EXPORT void YGNodeStyleSetMinHeightPercent(YGNodeRef node, float minHeight);
|
|
117
|
+
YG_EXPORT YGValue YGNodeStyleGetMinHeight(YGNodeConstRef node);
|
|
118
|
+
|
|
119
|
+
YG_EXPORT void YGNodeStyleSetMaxWidth(YGNodeRef node, float maxWidth);
|
|
120
|
+
YG_EXPORT void YGNodeStyleSetMaxWidthPercent(YGNodeRef node, float maxWidth);
|
|
121
|
+
YG_EXPORT YGValue YGNodeStyleGetMaxWidth(YGNodeConstRef node);
|
|
122
|
+
|
|
123
|
+
YG_EXPORT void YGNodeStyleSetMaxHeight(YGNodeRef node, float maxHeight);
|
|
124
|
+
YG_EXPORT void YGNodeStyleSetMaxHeightPercent(YGNodeRef node, float maxHeight);
|
|
125
|
+
YG_EXPORT YGValue YGNodeStyleGetMaxHeight(YGNodeConstRef node);
|
|
126
|
+
|
|
127
|
+
YG_EXPORT void YGNodeStyleSetAspectRatio(YGNodeRef node, float aspectRatio);
|
|
128
|
+
YG_EXPORT float YGNodeStyleGetAspectRatio(YGNodeConstRef node);
|
|
129
|
+
|
|
130
|
+
YG_EXTERN_C_END
|
|
@@ -0,0 +1,22 @@
|
|
|
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/PixelGrid.h>
|
|
11
|
+
|
|
12
|
+
using namespace facebook;
|
|
13
|
+
using namespace facebook::yoga;
|
|
14
|
+
|
|
15
|
+
float YGRoundValueToPixelGrid(
|
|
16
|
+
const double value,
|
|
17
|
+
const double pointScaleFactor,
|
|
18
|
+
const bool forceCeil,
|
|
19
|
+
const bool forceFloor) {
|
|
20
|
+
return yoga::roundValueToPixelGrid(
|
|
21
|
+
value, pointScaleFactor, forceCeil, forceFloor);
|
|
22
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
#include <stdbool.h>
|
|
11
|
+
|
|
12
|
+
#include <yoga/YGConfig.h>
|
|
13
|
+
#include <yoga/YGEnums.h>
|
|
14
|
+
#include <yoga/YGMacros.h>
|
|
15
|
+
|
|
16
|
+
YG_EXTERN_C_BEGIN
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Rounds a point value to the nearest whole pixel, given a pointScaleFactor
|
|
20
|
+
* describing pixel density.
|
|
21
|
+
* @returns the rounded value in points
|
|
22
|
+
*/
|
|
23
|
+
YG_EXPORT float YGRoundValueToPixelGrid(
|
|
24
|
+
double value,
|
|
25
|
+
double pointScaleFactor,
|
|
26
|
+
bool forceCeil,
|
|
27
|
+
bool forceFloor);
|
|
28
|
+
|
|
29
|
+
YG_EXTERN_C_END
|
|
@@ -0,0 +1,20 @@
|
|
|
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/YGValue.h>
|
|
9
|
+
#include <yoga/numeric/Comparison.h>
|
|
10
|
+
|
|
11
|
+
using namespace facebook;
|
|
12
|
+
using namespace facebook::yoga;
|
|
13
|
+
|
|
14
|
+
const YGValue YGValueZero = {0, YGUnitPoint};
|
|
15
|
+
const YGValue YGValueUndefined = {YGUndefined, YGUnitUndefined};
|
|
16
|
+
const YGValue YGValueAuto = {YGUndefined, YGUnitAuto};
|
|
17
|
+
|
|
18
|
+
bool YGFloatIsUndefined(const float value) {
|
|
19
|
+
return yoga::isUndefined(value);
|
|
20
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
#include <stdbool.h>
|
|
11
|
+
|
|
12
|
+
#include <yoga/YGEnums.h>
|
|
13
|
+
#include <yoga/YGMacros.h>
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Float value to represent "undefined" in style values.
|
|
17
|
+
*/
|
|
18
|
+
#ifdef __cplusplus
|
|
19
|
+
#include <limits>
|
|
20
|
+
constexpr float YGUndefined = std::numeric_limits<float>::quiet_NaN();
|
|
21
|
+
#else
|
|
22
|
+
#include <math.h>
|
|
23
|
+
#define YGUndefined NAN
|
|
24
|
+
#endif
|
|
25
|
+
|
|
26
|
+
YG_EXTERN_C_BEGIN
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Structure used to represent a dimension in a style.
|
|
30
|
+
*/
|
|
31
|
+
typedef struct YGValue {
|
|
32
|
+
float value;
|
|
33
|
+
YGUnit unit;
|
|
34
|
+
} YGValue;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Constant for a dimension of "auto".
|
|
38
|
+
*/
|
|
39
|
+
YG_EXPORT extern const YGValue YGValueAuto;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Constant for a dimension which is not defined.
|
|
43
|
+
*/
|
|
44
|
+
YG_EXPORT extern const YGValue YGValueUndefined;
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Constant for a dimension that is zero-length.
|
|
48
|
+
*/
|
|
49
|
+
YG_EXPORT extern const YGValue YGValueZero;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Whether a dimension represented as a float is defined.
|
|
53
|
+
*/
|
|
54
|
+
YG_EXPORT bool YGFloatIsUndefined(float value);
|
|
55
|
+
|
|
56
|
+
YG_EXTERN_C_END
|
|
57
|
+
|
|
58
|
+
// Equality operators for comparison of YGValue in C++
|
|
59
|
+
#ifdef __cplusplus
|
|
60
|
+
inline bool operator==(const YGValue& lhs, const YGValue& rhs) {
|
|
61
|
+
if (lhs.unit != rhs.unit) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
switch (lhs.unit) {
|
|
66
|
+
case YGUnitUndefined:
|
|
67
|
+
case YGUnitAuto:
|
|
68
|
+
return true;
|
|
69
|
+
case YGUnitPoint:
|
|
70
|
+
case YGUnitPercent:
|
|
71
|
+
return lhs.value == rhs.value;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
inline bool operator!=(const YGValue& lhs, const YGValue& rhs) {
|
|
78
|
+
return !(lhs == rhs);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
inline YGValue operator-(const YGValue& value) {
|
|
82
|
+
return {-value.value, value.unit};
|
|
83
|
+
}
|
|
84
|
+
#endif
|