Add C# bindings for Errata API #1259

Closed
NickGerleman wants to merge 3 commits from export-D45297676 into main
4 changed files with 32 additions and 2 deletions

View File

@@ -175,6 +175,7 @@ static YGConfigRef globalConfig;
globalConfig = YGConfigNew();
YGConfigSetExperimentalFeatureEnabled(
globalConfig, YGExperimentalFeatureWebFlexBasis, true);
YGConfigSetErrata(globalConfig, YGErrataClassic);
YGConfigSetPointScaleFactor(globalConfig, [UIScreen mainScreen].scale);
}

View File

@@ -73,6 +73,12 @@ namespace Facebook.Yoga
[DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern bool YGConfigGetUseLegacyStretchBehaviour(YGConfigHandle config);
[DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern void YGConfigSetErrata(YGConfigHandle config, YogaErrata errata);
[DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern YogaErrata YGConfigGetErrata(YGConfigHandle config);
[DllImport(DllName, ExactSpelling = true, CallingConvention = CallingConvention.Cdecl)]
public static extern void YGConfigSetPointScaleFactor(
YGConfigHandle config,

View File

@@ -117,8 +117,12 @@ namespace Facebook.Yoga
}
}
public bool UseLegacyStretchBehaviour
{
[ObsoleteAttribute("\"UseLegacyStretchBehaviour\" will be removed in the next release. " +
"Usage should be replaced with \"Errata\" set to \"YogaErrata.All\" to opt out of all " +
"future breaking conformance fixes, or \"YogaErrata.StretchFlexBasis\" toopt out of " +
"the specific conformance fix previously disabled by \"UseLegacyStretchBehaviour\".",
true /*error*/)]
public bool UseLegacyStretchBehaviour {
get
{
return Native.YGConfigGetUseLegacyStretchBehaviour(_ygConfig);
@@ -130,6 +134,19 @@ namespace Facebook.Yoga
}
}
public YogaErrata Errata
{
get
{
return Native.YGConfigGetErrata(_ygConfig);
}
set
{
Native.YGConfigSetErrata(_ygConfig, value);
}
}
public float PointScaleFactor
{
set

View File

@@ -22,7 +22,13 @@ public abstract class YogaConfig {
* Yoga previously had an error where containers would take the maximum space possible instead of the minimum
* like they are supposed to. In practice this resulted in implicit behaviour similar to align-self: stretch;
* Because this was such a long-standing bug we must allow legacy users to switch back to this behaviour.
*
* @deprecated "setUseLegacyStretchBehaviour" will be removed in the next release. Usage should be replaced with
* "setErrata(YogaErrata.ALL)" to opt out of all future breaking conformance fixes, or
* "setErrata(YogaErrata.STRETCH_FLEX_BASIS)" to opt out of the specific conformance fix previously disabled by
* "UseLegacyStretchBehaviour".
*/
@Deprecated
public abstract void setUseLegacyStretchBehaviour(boolean useLegacyStretchBehaviour);
public abstract void setErrata(YogaErrata errata);