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.
Files changed (418) hide show
  1. pythonnative/__init__.py +411 -0
  2. pythonnative/_ios_log.py +92 -0
  3. pythonnative/_yoga.cp313-win_amd64.pyd +0 -0
  4. pythonnative/alerts.py +236 -0
  5. pythonnative/animated.py +1687 -0
  6. pythonnative/animation_graph.py +78 -0
  7. pythonnative/appearance.py +124 -0
  8. pythonnative/bootstrap.py +100 -0
  9. pythonnative/bridge/__init__.py +302 -0
  10. pythonnative/bridge/android.py +78 -0
  11. pythonnative/bridge/codec.py +170 -0
  12. pythonnative/bridge/commits.py +114 -0
  13. pythonnative/bridge/fake.py +243 -0
  14. pythonnative/bridge/ios.py +138 -0
  15. pythonnative/bridge/web.py +489 -0
  16. pythonnative/cli/__init__.py +7 -0
  17. pythonnative/cli/pn.py +1214 -0
  18. pythonnative/component.py +271 -0
  19. pythonnative/components/__init__.py +111 -0
  20. pythonnative/components/_base.py +166 -0
  21. pythonnative/components/controls.py +521 -0
  22. pythonnative/components/layout.py +518 -0
  23. pythonnative/components/lists.py +785 -0
  24. pythonnative/components/media.py +204 -0
  25. pythonnative/components/overlays.py +107 -0
  26. pythonnative/components/pressable.py +252 -0
  27. pythonnative/components/structural.py +167 -0
  28. pythonnative/components/text.py +291 -0
  29. pythonnative/devclient.py +824 -0
  30. pythonnative/devserver/__init__.py +34 -0
  31. pythonnative/devserver/server.py +718 -0
  32. pythonnative/devserver/static/animation_graph.js +82 -0
  33. pythonnative/devserver/static/bridge.js +147 -0
  34. pythonnative/devserver/static/colors.js +70 -0
  35. pythonnative/devserver/static/host.js +552 -0
  36. pythonnative/devserver/static/index.html +60 -0
  37. pythonnative/devserver/static/layout.js +85 -0
  38. pythonnative/devserver/static/preview.css +415 -0
  39. pythonnative/devserver/static/renderer.js +1994 -0
  40. pythonnative/devserver/static/shell.js +345 -0
  41. pythonnative/devserver/static/yoga/LICENSE +21 -0
  42. pythonnative/devserver/static/yoga/binaries/yoga-wasm-base64-esm.js +75 -0
  43. pythonnative/devserver/static/yoga/src/generated/YGEnums.d.ts +189 -0
  44. pythonnative/devserver/static/yoga/src/generated/YGEnums.js +211 -0
  45. pythonnative/devserver/static/yoga/src/generated/YGEnums.js.map +1 -0
  46. pythonnative/devserver/static/yoga/src/index.d.ts +12 -0
  47. pythonnative/devserver/static/yoga/src/index.js +16 -0
  48. pythonnative/devserver/static/yoga/src/index.js.map +1 -0
  49. pythonnative/devserver/static/yoga/src/load.d.ts +11 -0
  50. pythonnative/devserver/static/yoga/src/load.js +17 -0
  51. pythonnative/devserver/static/yoga/src/load.js.map +1 -0
  52. pythonnative/devserver/static/yoga/src/wrapAssembly.d.ts +155 -0
  53. pythonnative/devserver/static/yoga/src/wrapAssembly.js +125 -0
  54. pythonnative/devserver/static/yoga/src/wrapAssembly.js.map +1 -0
  55. pythonnative/devserver/watcher.py +267 -0
  56. pythonnative/devserver/ws.py +421 -0
  57. pythonnative/diagnostics.py +241 -0
  58. pythonnative/element.py +159 -0
  59. pythonnative/equality.py +19 -0
  60. pythonnative/events.py +231 -0
  61. pythonnative/gestures.py +1333 -0
  62. pythonnative/hooks.py +1621 -0
  63. pythonnative/hosts/__init__.py +63 -0
  64. pythonnative/hosts/base.py +596 -0
  65. pythonnative/hosts/native.py +302 -0
  66. pythonnative/hot_reload.py +585 -0
  67. pythonnative/layout.py +328 -0
  68. pythonnative/mutations.py +142 -0
  69. pythonnative/native/android/build.gradle +52 -0
  70. pythonnative/native/android/gradle.properties +3 -0
  71. pythonnative/native/android/settings.gradle +12 -0
  72. pythonnative/native/android/src/main/AndroidManifest.xml +11 -0
  73. pythonnative/native/android/src/main/cpp/CMakeLists.txt +9 -0
  74. pythonnative/native/android/src/main/cpp/yoga_jni.cpp +52 -0
  75. pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeModules.kt +5 -0
  76. pythonnative/native/android/src/main/java/com/pythonnative/generated/NativeProps.kt +3705 -0
  77. pythonnative/native/android/src/main/java/com/pythonnative/generated/PNContracts.kt +129 -0
  78. pythonnative/native/android/src/main/java/com/pythonnative/runtime/PNBridge.kt +261 -0
  79. pythonnative/native/android/src/main/java/com/pythonnative/runtime/PythonHost.kt +20 -0
  80. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationGraph.kt +108 -0
  81. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/AnimationSpecs.kt +141 -0
  82. pythonnative/native/android/src/main/java/com/pythonnative/runtime/animation/PNAnimator.kt +257 -0
  83. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/CommitState.kt +106 -0
  84. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/JsonUtil.kt +175 -0
  85. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/MainThread.kt +40 -0
  86. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNLog.kt +33 -0
  87. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNRegistry.kt +82 -0
  88. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/PNTransaction.kt +80 -0
  89. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/TransactionApplier.kt +117 -0
  90. pythonnative/native/android/src/main/java/com/pythonnative/runtime/bridge/ViewRegistry.kt +74 -0
  91. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/BuiltinComponents.kt +37 -0
  92. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ButtonManager.kt +32 -0
  93. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ComponentManager.kt +213 -0
  94. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ContainerManagers.kt +69 -0
  95. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ControlManagers.kt +186 -0
  96. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/DatePickerManager.kt +123 -0
  97. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageLoader.kt +141 -0
  98. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ImageManager.kt +162 -0
  99. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ModalManager.kt +134 -0
  100. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PNColor.kt +201 -0
  101. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PickerManager.kt +86 -0
  102. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PortalManager.kt +55 -0
  103. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/PressableManager.kt +122 -0
  104. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScreenStackManager.kt +110 -0
  105. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ScrollViewManager.kt +214 -0
  106. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/SegmentedControlManager.kt +113 -0
  107. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/StatusBarManager.kt +52 -0
  108. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TabBarManager.kt +131 -0
  109. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextInputManager.kt +250 -0
  110. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/TextManager.kt +233 -0
  111. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/ViewStyler.kt +355 -0
  112. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/VirtualListManager.kt +159 -0
  113. pythonnative/native/android/src/main/java/com/pythonnative/runtime/components/WebViewManager.kt +149 -0
  114. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureArbiter.kt +233 -0
  115. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureCoordinator.kt +127 -0
  116. pythonnative/native/android/src/main/java/com/pythonnative/runtime/gestures/GestureRecognizers.kt +527 -0
  117. pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/NativeLayout.kt +145 -0
  118. pythonnative/native/android/src/main/java/com/pythonnative/runtime/layout/YogaNode.kt +29 -0
  119. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/BuiltinModules.kt +73 -0
  120. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/DeviceModules.kt +316 -0
  121. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/HostModule.kt +61 -0
  122. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/MediaModules.kt +200 -0
  123. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NativeModule.kt +158 -0
  124. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/NotificationsModule.kt +100 -0
  125. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/PermissionsModule.kt +99 -0
  126. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/StorageModules.kt +89 -0
  127. pythonnative/native/android/src/main/java/com/pythonnative/runtime/modules/SystemModules.kt +178 -0
  128. pythonnative/native/android/src/main/java/com/pythonnative/runtime/plugins/GeneratedPlugins.kt +16 -0
  129. pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/PNScreenFragment.kt +188 -0
  130. pythonnative/native/android/src/main/java/com/pythonnative/runtime/screens/ScreenRegistry.kt +80 -0
  131. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNAccessibilityDelegate.kt +48 -0
  132. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNBorderDrawable.kt +76 -0
  133. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNEditText.kt +18 -0
  134. pythonnative/native/android/src/main/java/com/pythonnative/runtime/views/PNFrameLayout.kt +49 -0
  135. pythonnative/native/android/src/test/java/com/pythonnative/runtime/AnimationSpecsTest.kt +75 -0
  136. pythonnative/native/android/src/test/java/com/pythonnative/runtime/GestureArbiterTest.kt +197 -0
  137. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNColorTest.kt +47 -0
  138. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PNTransactionTest.kt +78 -0
  139. pythonnative/native/android/src/test/java/com/pythonnative/runtime/PromiseTest.kt +89 -0
  140. pythonnative/native/ios/Package.swift +23 -0
  141. pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimationGraph.swift +199 -0
  142. pythonnative/native/ios/Sources/PythonNativeKit/Animation/PNAnimator.swift +312 -0
  143. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNBridge.swift +255 -0
  144. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNCommit.swift +104 -0
  145. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNRegistry.swift +142 -0
  146. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNTransaction.swift +166 -0
  147. pythonnative/native/ios/Sources/PythonNativeKit/Bridge/PNViewRegistry.swift +53 -0
  148. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNButtonManagers.swift +207 -0
  149. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNColor.swift +173 -0
  150. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNComponentManager.swift +183 -0
  151. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNContainerView.swift +56 -0
  152. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNControlManagers.swift +281 -0
  153. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNImageManager.swift +222 -0
  154. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNOverlayManagers.swift +243 -0
  155. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNPressableManager.swift +114 -0
  156. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScreenStackManager.swift +107 -0
  157. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNScrollViewManager.swift +197 -0
  158. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTabBarManager.swift +106 -0
  159. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextInputManager.swift +297 -0
  160. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTextManager.swift +230 -0
  161. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNTransform.swift +82 -0
  162. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewManager.swift +86 -0
  163. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewState.swift +87 -0
  164. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNViewStyler.swift +340 -0
  165. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNVirtualListManager.swift +155 -0
  166. pythonnative/native/ios/Sources/PythonNativeKit/Components/PNWebViewManager.swift +124 -0
  167. pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeModules.swift +1 -0
  168. pythonnative/native/ios/Sources/PythonNativeKit/Generated/NativeProps.swift +3775 -0
  169. pythonnative/native/ios/Sources/PythonNativeKit/Generated/PNContracts.swift +46 -0
  170. pythonnative/native/ios/Sources/PythonNativeKit/Gestures/PNGestureCoordinator.swift +260 -0
  171. pythonnative/native/ios/Sources/PythonNativeKit/Layout/PNLayout.swift +173 -0
  172. pythonnative/native/ios/Sources/PythonNativeKit/Modules/AlertModule.swift +92 -0
  173. pythonnative/native/ios/Sources/PythonNativeKit/Modules/HostModule.swift +80 -0
  174. pythonnative/native/ios/Sources/PythonNativeKit/Modules/LifecycleModules.swift +174 -0
  175. pythonnative/native/ios/Sources/PythonNativeKit/Modules/MediaModules.swift +177 -0
  176. pythonnative/native/ios/Sources/PythonNativeKit/Modules/PNNativeModule.swift +168 -0
  177. pythonnative/native/ios/Sources/PythonNativeKit/Modules/PermissionModules.swift +266 -0
  178. pythonnative/native/ios/Sources/PythonNativeKit/Modules/SystemModules.swift +251 -0
  179. pythonnative/native/ios/Sources/PythonNativeKit/Plugins/PNPluginRegistration.swift +8 -0
  180. pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNScreenRegistry.swift +46 -0
  181. pythonnative/native/ios/Sources/PythonNativeKit/Screens/PNViewController.swift +237 -0
  182. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNCompat.swift +46 -0
  183. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNJSON.swift +173 -0
  184. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNLog.swift +47 -0
  185. pythonnative/native/ios/Sources/PythonNativeKit/Support/PNWindow.swift +51 -0
  186. pythonnative/native/ios/Tests/PythonNativeKitTests/PNAnimationGraphTests.swift +26 -0
  187. pythonnative/native/ios/Tests/PythonNativeKitTests/PNColorTests.swift +50 -0
  188. pythonnative/native/ios/Tests/PythonNativeKitTests/PNCommitTests.swift +86 -0
  189. pythonnative/native/ios/Tests/PythonNativeKitTests/PNGestureTests.swift +101 -0
  190. pythonnative/native/ios/Tests/PythonNativeKitTests/PNManagerTests.swift +126 -0
  191. pythonnative/native/ios/Tests/PythonNativeKitTests/PNModuleTests.swift +111 -0
  192. pythonnative/native/ios/Tests/PythonNativeKitTests/PNTransactionTests.swift +91 -0
  193. pythonnative/native/yoga/LICENSE +21 -0
  194. pythonnative/native/yoga/Package.swift +9 -0
  195. pythonnative/native/yoga/VENDORED.md +2 -0
  196. pythonnative/native/yoga/include/PNStyle.h +10 -0
  197. pythonnative/native/yoga/include/module.modulemap +5 -0
  198. pythonnative/native/yoga/include/yoga/YGConfig.h +158 -0
  199. pythonnative/native/yoga/include/yoga/YGEnums.h +142 -0
  200. pythonnative/native/yoga/include/yoga/YGMacros.h +99 -0
  201. pythonnative/native/yoga/include/yoga/YGNode.h +304 -0
  202. pythonnative/native/yoga/include/yoga/YGNodeLayout.h +35 -0
  203. pythonnative/native/yoga/include/yoga/YGNodeStyle.h +130 -0
  204. pythonnative/native/yoga/include/yoga/YGPixelGrid.h +29 -0
  205. pythonnative/native/yoga/include/yoga/YGValue.h +84 -0
  206. pythonnative/native/yoga/include/yoga/Yoga.h +21 -0
  207. pythonnative/native/yoga/python.cpp +16 -0
  208. pythonnative/native/yoga/style.cpp +272 -0
  209. pythonnative/native/yoga/yoga/CMakeLists.txt +41 -0
  210. pythonnative/native/yoga/yoga/YGConfig.cpp +92 -0
  211. pythonnative/native/yoga/yoga/YGConfig.h +158 -0
  212. pythonnative/native/yoga/yoga/YGEnums.cpp +262 -0
  213. pythonnative/native/yoga/yoga/YGEnums.h +142 -0
  214. pythonnative/native/yoga/yoga/YGMacros.h +99 -0
  215. pythonnative/native/yoga/yoga/YGNode.cpp +366 -0
  216. pythonnative/native/yoga/yoga/YGNode.h +304 -0
  217. pythonnative/native/yoga/yoga/YGNodeLayout.cpp +92 -0
  218. pythonnative/native/yoga/yoga/YGNodeLayout.h +35 -0
  219. pythonnative/native/yoga/yoga/YGNodeStyle.cpp +405 -0
  220. pythonnative/native/yoga/yoga/YGNodeStyle.h +130 -0
  221. pythonnative/native/yoga/yoga/YGPixelGrid.cpp +22 -0
  222. pythonnative/native/yoga/yoga/YGPixelGrid.h +29 -0
  223. pythonnative/native/yoga/yoga/YGValue.cpp +20 -0
  224. pythonnative/native/yoga/yoga/YGValue.h +84 -0
  225. pythonnative/native/yoga/yoga/Yoga.h +21 -0
  226. pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.cpp +563 -0
  227. pythonnative/native/yoga/yoga/algorithm/AbsoluteLayout.h +41 -0
  228. pythonnative/native/yoga/yoga/algorithm/Align.h +72 -0
  229. pythonnative/native/yoga/yoga/algorithm/Baseline.cpp +78 -0
  230. pythonnative/native/yoga/yoga/algorithm/Baseline.h +21 -0
  231. pythonnative/native/yoga/yoga/algorithm/BoundAxis.h +79 -0
  232. pythonnative/native/yoga/yoga/algorithm/Cache.cpp +121 -0
  233. pythonnative/native/yoga/yoga/algorithm/Cache.h +30 -0
  234. pythonnative/native/yoga/yoga/algorithm/CalculateLayout.cpp +2428 -0
  235. pythonnative/native/yoga/yoga/algorithm/CalculateLayout.h +38 -0
  236. pythonnative/native/yoga/yoga/algorithm/FlexDirection.h +120 -0
  237. pythonnative/native/yoga/yoga/algorithm/FlexLine.cpp +124 -0
  238. pythonnative/native/yoga/yoga/algorithm/FlexLine.h +75 -0
  239. pythonnative/native/yoga/yoga/algorithm/PixelGrid.cpp +132 -0
  240. pythonnative/native/yoga/yoga/algorithm/PixelGrid.h +29 -0
  241. pythonnative/native/yoga/yoga/algorithm/SizingMode.h +73 -0
  242. pythonnative/native/yoga/yoga/algorithm/TrailingPosition.h +44 -0
  243. pythonnative/native/yoga/yoga/config/Config.cpp +135 -0
  244. pythonnative/native/yoga/yoga/config/Config.h +92 -0
  245. pythonnative/native/yoga/yoga/debug/AssertFatal.cpp +53 -0
  246. pythonnative/native/yoga/yoga/debug/AssertFatal.h +29 -0
  247. pythonnative/native/yoga/yoga/debug/Log.cpp +107 -0
  248. pythonnative/native/yoga/yoga/debug/Log.h +34 -0
  249. pythonnative/native/yoga/yoga/enums/Align.h +47 -0
  250. pythonnative/native/yoga/yoga/enums/BoxSizing.h +40 -0
  251. pythonnative/native/yoga/yoga/enums/Dimension.h +40 -0
  252. pythonnative/native/yoga/yoga/enums/Direction.h +41 -0
  253. pythonnative/native/yoga/yoga/enums/Display.h +41 -0
  254. pythonnative/native/yoga/yoga/enums/Edge.h +47 -0
  255. pythonnative/native/yoga/yoga/enums/Errata.h +41 -0
  256. pythonnative/native/yoga/yoga/enums/ExperimentalFeature.h +39 -0
  257. pythonnative/native/yoga/yoga/enums/FlexDirection.h +42 -0
  258. pythonnative/native/yoga/yoga/enums/Gutter.h +41 -0
  259. pythonnative/native/yoga/yoga/enums/Justify.h +44 -0
  260. pythonnative/native/yoga/yoga/enums/LogLevel.h +44 -0
  261. pythonnative/native/yoga/yoga/enums/MeasureMode.h +41 -0
  262. pythonnative/native/yoga/yoga/enums/NodeType.h +40 -0
  263. pythonnative/native/yoga/yoga/enums/Overflow.h +41 -0
  264. pythonnative/native/yoga/yoga/enums/PhysicalEdge.h +21 -0
  265. pythonnative/native/yoga/yoga/enums/PositionType.h +41 -0
  266. pythonnative/native/yoga/yoga/enums/Unit.h +42 -0
  267. pythonnative/native/yoga/yoga/enums/Wrap.h +41 -0
  268. pythonnative/native/yoga/yoga/enums/YogaEnums.h +85 -0
  269. pythonnative/native/yoga/yoga/event/event.cpp +87 -0
  270. pythonnative/native/yoga/yoga/event/event.h +130 -0
  271. pythonnative/native/yoga/yoga/module.modulemap +21 -0
  272. pythonnative/native/yoga/yoga/node/CachedMeasurement.h +53 -0
  273. pythonnative/native/yoga/yoga/node/LayoutResults.cpp +48 -0
  274. pythonnative/native/yoga/yoga/node/LayoutResults.h +122 -0
  275. pythonnative/native/yoga/yoga/node/LayoutableChildren.h +148 -0
  276. pythonnative/native/yoga/yoga/node/Node.cpp +443 -0
  277. pythonnative/native/yoga/yoga/node/Node.h +337 -0
  278. pythonnative/native/yoga/yoga/numeric/Comparison.h +81 -0
  279. pythonnative/native/yoga/yoga/numeric/FloatOptional.h +93 -0
  280. pythonnative/native/yoga/yoga/style/SmallValueBuffer.h +133 -0
  281. pythonnative/native/yoga/yoga/style/Style.h +757 -0
  282. pythonnative/native/yoga/yoga/style/StyleLength.h +107 -0
  283. pythonnative/native/yoga/yoga/style/StyleValueHandle.h +98 -0
  284. pythonnative/native/yoga/yoga/style/StyleValuePool.h +127 -0
  285. pythonnative/native_modules/__init__.py +124 -0
  286. pythonnative/native_modules/app_state.py +99 -0
  287. pythonnative/native_modules/battery.py +75 -0
  288. pythonnative/native_modules/biometrics.py +42 -0
  289. pythonnative/native_modules/camera.py +65 -0
  290. pythonnative/native_modules/clipboard.py +46 -0
  291. pythonnative/native_modules/fallback.py +324 -0
  292. pythonnative/native_modules/file_system.py +145 -0
  293. pythonnative/native_modules/haptics.py +75 -0
  294. pythonnative/native_modules/linking.py +123 -0
  295. pythonnative/native_modules/location.py +75 -0
  296. pythonnative/native_modules/net_info.py +112 -0
  297. pythonnative/native_modules/notifications.py +129 -0
  298. pythonnative/native_modules/permissions.py +108 -0
  299. pythonnative/native_modules/registry.py +526 -0
  300. pythonnative/native_modules/secure_store.py +52 -0
  301. pythonnative/native_modules/share.py +51 -0
  302. pythonnative/native_views/__init__.py +375 -0
  303. pythonnative/native_views/base.py +316 -0
  304. pythonnative/native_views/bridge_backend.py +277 -0
  305. pythonnative/navigation/__init__.py +103 -0
  306. pythonnative/navigation/container.py +154 -0
  307. pythonnative/navigation/handle.py +540 -0
  308. pythonnative/navigation/hooks.py +133 -0
  309. pythonnative/navigation/host.py +58 -0
  310. pythonnative/navigation/linking.py +200 -0
  311. pythonnative/navigation/navigators.py +659 -0
  312. pythonnative/navigation/screen.py +149 -0
  313. pythonnative/navigation/state.py +269 -0
  314. pythonnative/net.py +248 -0
  315. pythonnative/platform.py +166 -0
  316. pythonnative/platform_metrics.py +252 -0
  317. pythonnative/preview.py +287 -0
  318. pythonnative/profiling.py +101 -0
  319. pythonnative/project/__init__.py +68 -0
  320. pythonnative/project/android.py +557 -0
  321. pythonnative/project/builder.py +817 -0
  322. pythonnative/project/config.py +773 -0
  323. pythonnative/project/deps.py +719 -0
  324. pythonnative/project/devices.py +304 -0
  325. pythonnative/project/doctor.py +283 -0
  326. pythonnative/project/fingerprint.py +171 -0
  327. pythonnative/project/icons.py +247 -0
  328. pythonnative/project/ios.py +325 -0
  329. pythonnative/project/lockfile.py +100 -0
  330. pythonnative/project/permissions.py +361 -0
  331. pythonnative/project/plugins.py +519 -0
  332. pythonnative/project/runtime_assets.py +183 -0
  333. pythonnative/py.typed +0 -0
  334. pythonnative/query.py +153 -0
  335. pythonnative/reconciler/__init__.py +29 -0
  336. pythonnative/reconciler/boundaries.py +375 -0
  337. pythonnative/reconciler/children.py +88 -0
  338. pythonnative/reconciler/core.py +1165 -0
  339. pythonnative/reconciler/layout_pass.py +393 -0
  340. pythonnative/reconciler/vnode.py +266 -0
  341. pythonnative/refresh.py +55 -0
  342. pythonnative/runtime.py +306 -0
  343. pythonnative/scheduler.py +159 -0
  344. pythonnative/sdk/__init__.py +153 -0
  345. pythonnative/sdk/_components.py +427 -0
  346. pythonnative/sdk/builtins.py +91 -0
  347. pythonnative/sdk/codegen.py +149 -0
  348. pythonnative/sdk/module_codegen.py +184 -0
  349. pythonnative/sdk/schema.py +224 -0
  350. pythonnative/sdk/templates/contracts.kt +46 -0
  351. pythonnative/sdk/templates/contracts.swift +46 -0
  352. pythonnative/storage.py +184 -0
  353. pythonnative/style.py +841 -0
  354. pythonnative/suspense.py +183 -0
  355. pythonnative/templates/android_template/app/build.gradle +75 -0
  356. pythonnative/templates/android_template/app/proguard-rules.pro +21 -0
  357. pythonnative/templates/android_template/app/src/androidTest/java/com/pythonnative/android_template/ExampleInstrumentedTest.kt +24 -0
  358. pythonnative/templates/android_template/app/src/debug/AndroidManifest.xml +7 -0
  359. pythonnative/templates/android_template/app/src/main/AndroidManifest.xml +32 -0
  360. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt +130 -0
  361. pythonnative/templates/android_template/app/src/main/java/com/pythonnative/android_template/ScreenFragment.kt +13 -0
  362. pythonnative/templates/android_template/app/src/main/res/drawable/ic_launcher_background.xml +170 -0
  363. pythonnative/templates/android_template/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +30 -0
  364. pythonnative/templates/android_template/app/src/main/res/layout/activity_main.xml +10 -0
  365. pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
  366. pythonnative/templates/android_template/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
  367. pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  368. pythonnative/templates/android_template/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  369. pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  370. pythonnative/templates/android_template/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  371. pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  372. pythonnative/templates/android_template/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  373. pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  374. pythonnative/templates/android_template/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  375. pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  376. pythonnative/templates/android_template/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  377. pythonnative/templates/android_template/app/src/main/res/navigation/nav_graph.xml +22 -0
  378. pythonnative/templates/android_template/app/src/main/res/values/colors.xml +5 -0
  379. pythonnative/templates/android_template/app/src/main/res/values/strings.xml +5 -0
  380. pythonnative/templates/android_template/app/src/main/res/values/themes.xml +9 -0
  381. pythonnative/templates/android_template/app/src/main/res/values-night/themes.xml +7 -0
  382. pythonnative/templates/android_template/app/src/main/res/xml/backup_rules.xml +13 -0
  383. pythonnative/templates/android_template/app/src/main/res/xml/data_extraction_rules.xml +19 -0
  384. pythonnative/templates/android_template/app/src/test/java/com/pythonnative/android_template/ExampleUnitTest.kt +17 -0
  385. pythonnative/templates/android_template/build.gradle +10 -0
  386. pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.jar +0 -0
  387. pythonnative/templates/android_template/gradle/wrapper/gradle-wrapper.properties +6 -0
  388. pythonnative/templates/android_template/gradle.properties +23 -0
  389. pythonnative/templates/android_template/gradlew +185 -0
  390. pythonnative/templates/android_template/gradlew.bat +89 -0
  391. pythonnative/templates/android_template/settings.gradle +17 -0
  392. pythonnative/templates/ios_template/ios_template/AppDelegate.swift +51 -0
  393. pythonnative/templates/ios_template/ios_template/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
  394. pythonnative/templates/ios_template/ios_template/Assets.xcassets/AppIcon.appiconset/Contents.json +13 -0
  395. pythonnative/templates/ios_template/ios_template/Assets.xcassets/Contents.json +6 -0
  396. pythonnative/templates/ios_template/ios_template/Base.lproj/LaunchScreen.storyboard +25 -0
  397. pythonnative/templates/ios_template/ios_template/BridgingHeader.h +14 -0
  398. pythonnative/templates/ios_template/ios_template/Info.plist +28 -0
  399. pythonnative/templates/ios_template/ios_template/PythonRuntime.swift +390 -0
  400. pythonnative/templates/ios_template/ios_template/SceneDelegate.swift +61 -0
  401. pythonnative/templates/ios_template/ios_template/ViewController.swift +23 -0
  402. pythonnative/templates/ios_template/ios_template.xcodeproj/project.pbxproj +745 -0
  403. pythonnative/templates/ios_template/ios_template.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  404. pythonnative/templates/ios_template/ios_templateTests/ios_templateTests.swift +36 -0
  405. pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITests.swift +41 -0
  406. pythonnative/templates/ios_template/ios_templateUITests/ios_templateUITestsLaunchTests.swift +32 -0
  407. pythonnative/testing/__init__.py +53 -0
  408. pythonnative/testing/backend.py +276 -0
  409. pythonnative/testing/harness.py +369 -0
  410. pythonnative/utils.py +145 -0
  411. pythonnative-0.40.0.dist-info/DELVEWHEEL +2 -0
  412. pythonnative-0.40.0.dist-info/METADATA +150 -0
  413. pythonnative-0.40.0.dist-info/RECORD +418 -0
  414. pythonnative-0.40.0.dist-info/WHEEL +5 -0
  415. pythonnative-0.40.0.dist-info/entry_points.txt +2 -0
  416. pythonnative-0.40.0.dist-info/licenses/LICENSE +21 -0
  417. pythonnative-0.40.0.dist-info/top_level.txt +1 -0
  418. pythonnative.libs/msvcp140-a4c2229bdc2a2a630acdc095b4d86008.dll +0 -0
@@ -0,0 +1,158 @@
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 <stdarg.h>
11
+ #include <stdbool.h>
12
+ #include <stddef.h>
13
+
14
+ #include <yoga/YGEnums.h>
15
+ #include <yoga/YGMacros.h>
16
+
17
+ YG_EXTERN_C_BEGIN
18
+
19
+ typedef struct YGNode* YGNodeRef;
20
+ typedef const struct YGNode* YGNodeConstRef;
21
+
22
+ /**
23
+ * Handle to a mutable Yoga configuration.
24
+ */
25
+ typedef struct YGConfig* YGConfigRef;
26
+
27
+ /**
28
+ * Handle to an immutable Yoga configuration.
29
+ */
30
+ typedef const struct YGConfig* YGConfigConstRef;
31
+
32
+ /**
33
+ * Allocates a set of configuration options. The configuration may be applied to
34
+ * multiple nodes (i.e. a single global config), or can be applied more
35
+ * granularly per-node.
36
+ */
37
+ YG_EXPORT YGConfigRef YGConfigNew(void);
38
+
39
+ /**
40
+ * Frees the associated Yoga configuration.
41
+ */
42
+ YG_EXPORT void YGConfigFree(YGConfigRef config);
43
+
44
+ /**
45
+ * Returns the default config values set by Yoga.
46
+ */
47
+ YG_EXPORT YGConfigConstRef YGConfigGetDefault(void);
48
+
49
+ /**
50
+ * Yoga by default creates new nodes with style defaults different from flexbox
51
+ * on web (e.g. `YGFlexDirectionColumn` and `YGPositionRelative`).
52
+ * `UseWebDefaults` instructs Yoga to instead use a default style consistent
53
+ * with the web.
54
+ */
55
+ YG_EXPORT void YGConfigSetUseWebDefaults(YGConfigRef config, bool enabled);
56
+
57
+ /**
58
+ * Whether the configuration is set to use web defaults.
59
+ */
60
+ YG_EXPORT bool YGConfigGetUseWebDefaults(YGConfigConstRef config);
61
+
62
+ /**
63
+ * Yoga will by default round final layout positions and dimensions to the
64
+ * nearst point. `pointScaleFactor` controls the density of the grid used for
65
+ * layout rounding (e.g. to round to the closest display pixel).
66
+ *
67
+ * May be set to 0.0f to avoid rounding the layout results.
68
+ */
69
+ YG_EXPORT void YGConfigSetPointScaleFactor(
70
+ YGConfigRef config,
71
+ float pixelsInPoint);
72
+
73
+ /**
74
+ * Get the currently set point scale factor.
75
+ */
76
+ YG_EXPORT float YGConfigGetPointScaleFactor(YGConfigConstRef config);
77
+
78
+ /**
79
+ * Configures how Yoga balances W3C conformance vs compatibility with layouts
80
+ * created against earlier versions of Yoga.
81
+ *
82
+ * By default Yoga will prioritize W3C conformance. `Errata` may be set to ask
83
+ * Yoga to produce specific incorrect behaviors. E.g. `YGConfigSetErrata(config,
84
+ * YGErrataStretchFlexBasis)`.
85
+ *
86
+ * YGErrata is a bitmask, and multiple errata may be set at once. Predefined
87
+ * constants exist for convenience:
88
+ * 1. YGErrataNone: No errata
89
+ * 2. YGErrataClassic: Match layout behaviors of Yoga 1.x
90
+ * 3. YGErrataAll: Match layout behaviors of Yoga 1.x, including
91
+ * `UseLegacyStretchBehaviour`
92
+ */
93
+ YG_EXPORT void YGConfigSetErrata(YGConfigRef config, YGErrata errata);
94
+
95
+ /**
96
+ * Get the currently set errata.
97
+ */
98
+ YG_EXPORT YGErrata YGConfigGetErrata(YGConfigConstRef config);
99
+
100
+ /**
101
+ * Function pointer type for YGConfigSetLogger.
102
+ */
103
+ typedef int (*YGLogger)(
104
+ YGConfigConstRef config,
105
+ YGNodeConstRef node,
106
+ YGLogLevel level,
107
+ const char* format,
108
+ va_list args);
109
+
110
+ /**
111
+ * Set a custom log function for to use when logging diagnostics or fatal.
112
+ * errors.
113
+ */
114
+ YG_EXPORT void YGConfigSetLogger(YGConfigRef config, YGLogger logger);
115
+
116
+ /**
117
+ * Sets an arbitrary context pointer on the config which may be read from during
118
+ * callbacks.
119
+ */
120
+ YG_EXPORT void YGConfigSetContext(YGConfigRef config, void* context);
121
+
122
+ /**
123
+ * Gets the currently set context.
124
+ */
125
+ YG_EXPORT void* YGConfigGetContext(YGConfigConstRef config);
126
+
127
+ /**
128
+ * Function pointer type for YGConfigSetCloneNodeFunc.
129
+ */
130
+ typedef YGNodeRef (*YGCloneNodeFunc)(
131
+ YGNodeConstRef oldNode,
132
+ YGNodeConstRef owner,
133
+ size_t childIndex);
134
+
135
+ /**
136
+ * Enable an experimental/unsupported feature in Yoga.
137
+ */
138
+ YG_EXPORT void YGConfigSetExperimentalFeatureEnabled(
139
+ YGConfigRef config,
140
+ YGExperimentalFeature feature,
141
+ bool enabled);
142
+
143
+ /**
144
+ * Whether an experimental feature is set.
145
+ */
146
+ YG_EXPORT bool YGConfigIsExperimentalFeatureEnabled(
147
+ YGConfigConstRef config,
148
+ YGExperimentalFeature feature);
149
+
150
+ /**
151
+ * Sets a callback, called during layout, to create a new mutable Yoga node if
152
+ * Yoga must write to it and its owner is not its parent observed during layout.
153
+ */
154
+ YG_EXPORT void YGConfigSetCloneNodeFunc(
155
+ YGConfigRef config,
156
+ YGCloneNodeFunc callback);
157
+
158
+ YG_EXTERN_C_END
@@ -0,0 +1,142 @@
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
+ // @generated by enums.py
9
+ // clang-format off
10
+ #pragma once
11
+ #include <yoga/YGMacros.h>
12
+
13
+ YG_EXTERN_C_BEGIN
14
+
15
+ YG_ENUM_DECL(
16
+ YGAlign,
17
+ YGAlignAuto,
18
+ YGAlignFlexStart,
19
+ YGAlignCenter,
20
+ YGAlignFlexEnd,
21
+ YGAlignStretch,
22
+ YGAlignBaseline,
23
+ YGAlignSpaceBetween,
24
+ YGAlignSpaceAround,
25
+ YGAlignSpaceEvenly)
26
+
27
+ YG_ENUM_DECL(
28
+ YGBoxSizing,
29
+ YGBoxSizingBorderBox,
30
+ YGBoxSizingContentBox)
31
+
32
+ YG_ENUM_DECL(
33
+ YGDimension,
34
+ YGDimensionWidth,
35
+ YGDimensionHeight)
36
+
37
+ YG_ENUM_DECL(
38
+ YGDirection,
39
+ YGDirectionInherit,
40
+ YGDirectionLTR,
41
+ YGDirectionRTL)
42
+
43
+ YG_ENUM_DECL(
44
+ YGDisplay,
45
+ YGDisplayFlex,
46
+ YGDisplayNone,
47
+ YGDisplayContents)
48
+
49
+ YG_ENUM_DECL(
50
+ YGEdge,
51
+ YGEdgeLeft,
52
+ YGEdgeTop,
53
+ YGEdgeRight,
54
+ YGEdgeBottom,
55
+ YGEdgeStart,
56
+ YGEdgeEnd,
57
+ YGEdgeHorizontal,
58
+ YGEdgeVertical,
59
+ YGEdgeAll)
60
+
61
+ YG_ENUM_DECL(
62
+ YGErrata,
63
+ YGErrataNone = 0,
64
+ YGErrataStretchFlexBasis = 1,
65
+ YGErrataAbsolutePositionWithoutInsetsExcludesPadding = 2,
66
+ YGErrataAbsolutePercentAgainstInnerSize = 4,
67
+ YGErrataAll = 2147483647,
68
+ YGErrataClassic = 2147483646)
69
+ YG_DEFINE_ENUM_FLAG_OPERATORS(YGErrata)
70
+
71
+ YG_ENUM_DECL(
72
+ YGExperimentalFeature,
73
+ YGExperimentalFeatureWebFlexBasis)
74
+
75
+ YG_ENUM_DECL(
76
+ YGFlexDirection,
77
+ YGFlexDirectionColumn,
78
+ YGFlexDirectionColumnReverse,
79
+ YGFlexDirectionRow,
80
+ YGFlexDirectionRowReverse)
81
+
82
+ YG_ENUM_DECL(
83
+ YGGutter,
84
+ YGGutterColumn,
85
+ YGGutterRow,
86
+ YGGutterAll)
87
+
88
+ YG_ENUM_DECL(
89
+ YGJustify,
90
+ YGJustifyFlexStart,
91
+ YGJustifyCenter,
92
+ YGJustifyFlexEnd,
93
+ YGJustifySpaceBetween,
94
+ YGJustifySpaceAround,
95
+ YGJustifySpaceEvenly)
96
+
97
+ YG_ENUM_DECL(
98
+ YGLogLevel,
99
+ YGLogLevelError,
100
+ YGLogLevelWarn,
101
+ YGLogLevelInfo,
102
+ YGLogLevelDebug,
103
+ YGLogLevelVerbose,
104
+ YGLogLevelFatal)
105
+
106
+ YG_ENUM_DECL(
107
+ YGMeasureMode,
108
+ YGMeasureModeUndefined,
109
+ YGMeasureModeExactly,
110
+ YGMeasureModeAtMost)
111
+
112
+ YG_ENUM_DECL(
113
+ YGNodeType,
114
+ YGNodeTypeDefault,
115
+ YGNodeTypeText)
116
+
117
+ YG_ENUM_DECL(
118
+ YGOverflow,
119
+ YGOverflowVisible,
120
+ YGOverflowHidden,
121
+ YGOverflowScroll)
122
+
123
+ YG_ENUM_DECL(
124
+ YGPositionType,
125
+ YGPositionTypeStatic,
126
+ YGPositionTypeRelative,
127
+ YGPositionTypeAbsolute)
128
+
129
+ YG_ENUM_DECL(
130
+ YGUnit,
131
+ YGUnitUndefined,
132
+ YGUnitPoint,
133
+ YGUnitPercent,
134
+ YGUnitAuto)
135
+
136
+ YG_ENUM_DECL(
137
+ YGWrap,
138
+ YGWrapNoWrap,
139
+ YGWrapWrap,
140
+ YGWrapWrapReverse)
141
+
142
+ YG_EXTERN_C_END
@@ -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,304 @@
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
+ #include <stddef.h>
12
+
13
+ #include <yoga/YGConfig.h>
14
+ #include <yoga/YGEnums.h>
15
+ #include <yoga/YGMacros.h>
16
+
17
+ YG_EXTERN_C_BEGIN
18
+
19
+ /**
20
+ * Handle to a mutable Yoga Node.
21
+ */
22
+ typedef struct YGNode* YGNodeRef;
23
+
24
+ /**
25
+ * Handle to an immutable Yoga Node.
26
+ */
27
+ typedef const struct YGNode* YGNodeConstRef;
28
+
29
+ /**
30
+ * Heap allocates and returns a new Yoga node using Yoga settings.
31
+ */
32
+ YG_EXPORT YGNodeRef YGNodeNew(void);
33
+
34
+ /**
35
+ * Heap allocates and returns a new Yoga node, with customized settings.
36
+ */
37
+ YG_EXPORT YGNodeRef YGNodeNewWithConfig(YGConfigConstRef config);
38
+
39
+ /**
40
+ * Returns a mutable copy of an existing node, with the same context and
41
+ * children, but no owner set. Does not call the function set by
42
+ * YGConfigSetCloneNodeFunc().
43
+ */
44
+ YG_EXPORT YGNodeRef YGNodeClone(YGNodeConstRef node);
45
+
46
+ /**
47
+ * Frees the Yoga node, disconnecting it from its owner and children.
48
+ */
49
+ YG_EXPORT void YGNodeFree(YGNodeRef node);
50
+
51
+ /**
52
+ * Frees the subtree of Yoga nodes rooted at the given node.
53
+ */
54
+ YG_EXPORT void YGNodeFreeRecursive(YGNodeRef node);
55
+
56
+ /**
57
+ * Frees the Yoga node without disconnecting it from its owner or children.
58
+ * Allows garbage collecting Yoga nodes in parallel when the entire tree is
59
+ * unreachable.
60
+ */
61
+ YG_EXPORT void YGNodeFinalize(YGNodeRef node);
62
+
63
+ /**
64
+ * Resets the node to its default state.
65
+ */
66
+ YG_EXPORT void YGNodeReset(YGNodeRef node);
67
+
68
+ /**
69
+ * Calculates the layout of the tree rooted at the given node.
70
+ *
71
+ * Layout results may be read after calling YGNodeCalculateLayout() using
72
+ * functions like YGNodeLayoutGetLeft(), YGNodeLayoutGetTop(), etc.
73
+ *
74
+ * YGNodeGetHasNewLayout() may be read to know if the layout of the node or its
75
+ * subtrees may have changed since the last time YGNodeCalculate() was called.
76
+ */
77
+ YG_EXPORT void YGNodeCalculateLayout(
78
+ YGNodeRef node,
79
+ float availableWidth,
80
+ float availableHeight,
81
+ YGDirection ownerDirection);
82
+
83
+ /**
84
+ * Whether the given node may have new layout results. Must be reset by calling
85
+ * YGNodeSetHasNewLayout().
86
+ */
87
+ YG_EXPORT bool YGNodeGetHasNewLayout(YGNodeConstRef node);
88
+
89
+ /**
90
+ * Sets whether a nodes layout is considered new.
91
+ */
92
+ YG_EXPORT void YGNodeSetHasNewLayout(YGNodeRef node, bool hasNewLayout);
93
+
94
+ /**
95
+ * Whether the node's layout results are dirty due to it or its children
96
+ * changing.
97
+ */
98
+ YG_EXPORT bool YGNodeIsDirty(YGNodeConstRef node);
99
+
100
+ /**
101
+ * Marks a node with custom measure function as dirty.
102
+ */
103
+ YG_EXPORT void YGNodeMarkDirty(YGNodeRef node);
104
+
105
+ typedef void (*YGDirtiedFunc)(YGNodeConstRef node);
106
+
107
+ /**
108
+ * Called when a change is made to the Yoga tree which dirties this node.
109
+ */
110
+ YG_EXPORT void YGNodeSetDirtiedFunc(YGNodeRef node, YGDirtiedFunc dirtiedFunc);
111
+
112
+ /**
113
+ * Returns a dirtied func if set.
114
+ */
115
+ YG_EXPORT YGDirtiedFunc YGNodeGetDirtiedFunc(YGNodeConstRef node);
116
+
117
+ /**
118
+ * Inserts a child node at the given index.
119
+ */
120
+ YG_EXPORT void YGNodeInsertChild(YGNodeRef node, YGNodeRef child, size_t index);
121
+
122
+ /**
123
+ * Replaces the child node at a given index with a new one.
124
+ */
125
+ YG_EXPORT void YGNodeSwapChild(YGNodeRef node, YGNodeRef child, size_t index);
126
+
127
+ /**
128
+ * Removes the given child node.
129
+ */
130
+ YG_EXPORT void YGNodeRemoveChild(YGNodeRef node, YGNodeRef child);
131
+
132
+ /**
133
+ * Removes all children nodes.
134
+ */
135
+ YG_EXPORT void YGNodeRemoveAllChildren(YGNodeRef node);
136
+
137
+ /**
138
+ * Sets children according to the given list of nodes.
139
+ */
140
+ YG_EXPORT void
141
+ YGNodeSetChildren(YGNodeRef owner, const YGNodeRef* children, size_t count);
142
+
143
+ /**
144
+ * Get the child node at a given index.
145
+ */
146
+ YG_EXPORT YGNodeRef YGNodeGetChild(YGNodeRef node, size_t index);
147
+
148
+ /**
149
+ * The number of child nodes.
150
+ */
151
+ YG_EXPORT size_t YGNodeGetChildCount(YGNodeConstRef node);
152
+
153
+ /**
154
+ * Get the parent/owner currently set for a node.
155
+ */
156
+ YG_EXPORT YGNodeRef YGNodeGetOwner(YGNodeRef node);
157
+
158
+ /**
159
+ * Get the parent/owner currently set for a node.
160
+ */
161
+ YG_EXPORT YGNodeRef YGNodeGetParent(YGNodeRef node);
162
+
163
+ /**
164
+ * Set a new config for the node after creation.
165
+ */
166
+ YG_EXPORT void YGNodeSetConfig(YGNodeRef node, YGConfigRef config);
167
+
168
+ /**
169
+ * Get the config currently set on the node.
170
+ */
171
+ YG_EXPORT YGConfigConstRef YGNodeGetConfig(YGNodeRef node);
172
+
173
+ /**
174
+ * Sets extra data on the Yoga node which may be read from during callbacks.
175
+ */
176
+ YG_EXPORT void YGNodeSetContext(YGNodeRef node, void* context);
177
+
178
+ /**
179
+ * Returns the context or NULL if no context has been set.
180
+ */
181
+ YG_EXPORT void* YGNodeGetContext(YGNodeConstRef node);
182
+
183
+ typedef struct YGSize {
184
+ float width;
185
+ float height;
186
+ } YGSize;
187
+
188
+ /**
189
+ * Returns the computed dimensions of the node, following the constraints of
190
+ * `widthMode` and `heightMode`:
191
+ *
192
+ * YGMeasureModeUndefined: The parent has not imposed any constraint on the
193
+ * child. It can be whatever size it wants.
194
+ *
195
+ * YGMeasureModeAtMost: The child can be as large as it wants up to the
196
+ * specified size.
197
+ *
198
+ * YGMeasureModeExactly: The parent has determined an exact size for the
199
+ * child. The child is going to be given those bounds regardless of how big it
200
+ * wants to be.
201
+ *
202
+ * @returns the size of the leaf node, measured under the given constraints.
203
+ */
204
+ typedef YGSize (*YGMeasureFunc)(
205
+ YGNodeConstRef node,
206
+ float width,
207
+ YGMeasureMode widthMode,
208
+ float height,
209
+ YGMeasureMode heightMode);
210
+
211
+ /**
212
+ * Allows providing custom measurements for a Yoga leaf node (usually for
213
+ * measuring text). YGNodeMarkDirty() must be set if content effecting the
214
+ * measurements of the node changes.
215
+ */
216
+ YG_EXPORT void YGNodeSetMeasureFunc(YGNodeRef node, YGMeasureFunc measureFunc);
217
+
218
+ /**
219
+ * Whether a measure function is set.
220
+ */
221
+ YG_EXPORT bool YGNodeHasMeasureFunc(YGNodeConstRef node);
222
+
223
+ /**
224
+ * @returns a defined offset to baseline (ascent).
225
+ */
226
+ typedef float (*YGBaselineFunc)(YGNodeConstRef node, float width, float height);
227
+
228
+ /**
229
+ * Set a custom function for determining the text baseline for use in baseline
230
+ * alignment.
231
+ */
232
+ YG_EXPORT void YGNodeSetBaselineFunc(
233
+ YGNodeRef node,
234
+ YGBaselineFunc baselineFunc);
235
+
236
+ /**
237
+ * Whether a baseline function is set.
238
+ */
239
+ YG_EXPORT bool YGNodeHasBaselineFunc(YGNodeConstRef node);
240
+
241
+ /**
242
+ * Sets this node should be considered the reference baseline among siblings.
243
+ */
244
+ YG_EXPORT void YGNodeSetIsReferenceBaseline(
245
+ YGNodeRef node,
246
+ bool isReferenceBaseline);
247
+
248
+ /**
249
+ * Whether this node is set as the reference baseline.
250
+ */
251
+ YG_EXPORT bool YGNodeIsReferenceBaseline(YGNodeConstRef node);
252
+
253
+ /**
254
+ * Sets whether a leaf node's layout results may be truncated during layout
255
+ * rounding.
256
+ */
257
+ YG_EXPORT void YGNodeSetNodeType(YGNodeRef node, YGNodeType nodeType);
258
+
259
+ /**
260
+ * Wwhether a leaf node's layout results may be truncated during layout
261
+ * rounding.
262
+ */
263
+ YG_EXPORT YGNodeType YGNodeGetNodeType(YGNodeConstRef node);
264
+
265
+ /**
266
+ * Make it so that this node will always form a containing block for any
267
+ * descendant nodes. This is useful for when a node has a property outside of
268
+ * of Yoga that will form a containing block. For example, transforms or some of
269
+ * the others listed in
270
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block
271
+ */
272
+ YG_EXPORT void YGNodeSetAlwaysFormsContainingBlock(
273
+ YGNodeRef node,
274
+ bool alwaysFormsContainingBlock);
275
+
276
+ /**
277
+ * Whether the node will always form a containing block for any descendant. This
278
+ * can happen in situation where the client implements something like a
279
+ * transform that can affect containing blocks but is not handled by Yoga
280
+ * directly.
281
+ */
282
+ YG_EXPORT bool YGNodeGetAlwaysFormsContainingBlock(YGNodeConstRef node);
283
+
284
+ /**
285
+ * @deprecated
286
+ */
287
+ YG_DEPRECATED(
288
+ "YGNodeCanUseCachedMeasurement may be removed in a future version of Yoga")
289
+ YG_EXPORT bool YGNodeCanUseCachedMeasurement(
290
+ YGMeasureMode widthMode,
291
+ float availableWidth,
292
+ YGMeasureMode heightMode,
293
+ float availableHeight,
294
+ YGMeasureMode lastWidthMode,
295
+ float lastAvailableWidth,
296
+ YGMeasureMode lastHeightMode,
297
+ float lastAvailableHeight,
298
+ float lastComputedWidth,
299
+ float lastComputedHeight,
300
+ float marginRow,
301
+ float marginColumn,
302
+ YGConfigRef config);
303
+
304
+ YG_EXTERN_C_END