From de9db1bc031c9a0c471de0457a9550a09bf3ef4f Mon Sep 17 00:00:00 2001 From: Nick Gerleman Date: Sat, 24 Dec 2022 08:17:17 -0800 Subject: [PATCH] Add missing config bindings --- javascript/README.md | 2 +- javascript/src_js/wrapAsm.d.ts | 14 ++++++++++---- javascript/src_native/Config.cc | 16 ++++++++++++++++ javascript/src_native/Config.hh | 4 ++++ javascript/src_native/embind.cc | 6 +++++- 5 files changed, 36 insertions(+), 6 deletions(-) diff --git a/javascript/README.md b/javascript/README.md index 7d53f143..6f7b4d1a 100644 --- a/javascript/README.md +++ b/javascript/README.md @@ -44,7 +44,7 @@ For better performance and smaller packages, WebAssembly is preferred to asm.js A specific entrypoint may be specified on platforms which do not understand export conditions. ```ts -import { loadYoga } from "yoga-layout/entrypoint/wasm-async"; +import { loadYoga } from "yoga-layout/dist/entrypoint/wasm-async"; ``` diff --git a/javascript/src_js/wrapAsm.d.ts b/javascript/src_js/wrapAsm.d.ts index 805ac812..cca5026e 100644 --- a/javascript/src_js/wrapAsm.d.ts +++ b/javascript/src_js/wrapAsm.d.ts @@ -43,19 +43,25 @@ type Value = { } export type Config = { + free(): void; isExperimentalFeatureEnabled(feature: ExperimentalFeature): boolean, setExperimentalFeatureEnabled( feature: ExperimentalFeature, enabled: boolean, ): void, setPointScaleFactor(factor: number): void, + useLegacyStretchBehaviour(): boolean, + setUseLegacyStretchBehaviour(useLegacyStretchBehaviour: boolean): void, + useWebDefaults(): boolean, + setUseWebDefaults(useWebDefaults): void, }; export type MeasureFunction = ( - width: number, - widthMode: number, - height: number, - heightMode: number) => Size; + width: number, + widthMode: number, + height: number, + heightMode: number +) => Size; export type Node = { calculateLayout( diff --git a/javascript/src_native/Config.cc b/javascript/src_native/Config.cc index a23aa20f..3824f519 100644 --- a/javascript/src_native/Config.cc +++ b/javascript/src_native/Config.cc @@ -32,7 +32,23 @@ void Config::setPointScaleFactor(float pixelsInPoint) { YGConfigSetPointScaleFactor(m_config, pixelsInPoint); } +void Config::setUseLegacyStretchBehaviour(bool useLegacyStretchBehaviour) { + YGConfigSetUseLegacyStretchBehaviour(m_config, useLegacyStretchBehaviour); +} + +void Config::setUseWebDefaults(bool useWebDefaults) { + YGConfigSetUseWebDefaults(m_config, useWebDefaults); +} + bool Config::isExperimentalFeatureEnabled(int feature) const { return YGConfigIsExperimentalFeatureEnabled( m_config, static_cast(feature)); } + +bool Config::useLegacyStretchBehaviour() { + return YGConfigGetUseLegacyStretchBehaviour(m_config); +} + +bool Config::useWebDefaults() { + return YGConfigGetUseWebDefaults(m_config); +} diff --git a/javascript/src_native/Config.hh b/javascript/src_native/Config.hh index 8b082b33..ccebfa67 100644 --- a/javascript/src_native/Config.hh +++ b/javascript/src_native/Config.hh @@ -32,9 +32,13 @@ public: // Prevent accidental copy public: // Setters void setExperimentalFeatureEnabled(int feature, bool enabled); void setPointScaleFactor(float pixelsInPoint); + void setUseLegacyStretchBehaviour(bool useLegacyStretchBehaviour); + void setUseWebDefaults(bool useWebDefaults); public: // Getters bool isExperimentalFeatureEnabled(int feature) const; + bool useLegacyStretchBehaviour(); + bool useWebDefaults(); private: YGConfigRef m_config; diff --git a/javascript/src_native/embind.cc b/javascript/src_native/embind.cc index 96d6b018..cb5d8056 100644 --- a/javascript/src_native/embind.cc +++ b/javascript/src_native/embind.cc @@ -32,9 +32,13 @@ EMSCRIPTEN_BINDINGS(YOGA_LAYOUT) { "setExperimentalFeatureEnabled", &Config::setExperimentalFeatureEnabled) .function("setPointScaleFactor", &Config::setPointScaleFactor) + .function("setUseLegacyStretchBehaviour", &Config::setUseLegacyStretchBehaviour) + .function("setUseWebDefaults", &Config::setUseWebDefaults) .function( "isExperimentalFeatureEnabled", - &Config::isExperimentalFeatureEnabled); + &Config::isExperimentalFeatureEnabled) + .function("useLegacyStretchBehaviour", &Config::useLegacyStretchBehaviour) + .function("useWebDefaults", &Config::useWebDefaults); value_object("Layout") .field("left", &Layout::left)