diff --git a/java/com/facebook/yoga/YogaNative.java b/java/com/facebook/yoga/YogaNative.java index 89ef5ef16f..582bd1eb19 100644 --- a/java/com/facebook/yoga/YogaNative.java +++ b/java/com/facebook/yoga/YogaNative.java @@ -74,6 +74,9 @@ public class YogaNative { static native void jni_YGNodeStyleSetFlexBasisJNI(long nativePointer, float flexBasis); static native void jni_YGNodeStyleSetFlexBasisPercentJNI(long nativePointer, float percent); static native void jni_YGNodeStyleSetFlexBasisAutoJNI(long nativePointer); + static native void jni_YGNodeStyleSetFlexBasisMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetFlexBasisFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetFlexBasisStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetMarginJNI(long nativePointer, int edge); static native void jni_YGNodeStyleSetMarginJNI(long nativePointer, int edge, float margin); static native void jni_YGNodeStyleSetMarginPercentJNI(long nativePointer, int edge, float percent); @@ -91,22 +94,40 @@ public class YogaNative { static native void jni_YGNodeStyleSetWidthJNI(long nativePointer, float width); static native void jni_YGNodeStyleSetWidthPercentJNI(long nativePointer, float percent); static native void jni_YGNodeStyleSetWidthAutoJNI(long nativePointer); + static native void jni_YGNodeStyleSetWidthMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetWidthFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetWidthStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetHeightJNI(long nativePointer); static native void jni_YGNodeStyleSetHeightJNI(long nativePointer, float height); static native void jni_YGNodeStyleSetHeightPercentJNI(long nativePointer, float percent); static native void jni_YGNodeStyleSetHeightAutoJNI(long nativePointer); + static native void jni_YGNodeStyleSetHeightMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetHeightFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetHeightStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetMinWidthJNI(long nativePointer); static native void jni_YGNodeStyleSetMinWidthJNI(long nativePointer, float minWidth); static native void jni_YGNodeStyleSetMinWidthPercentJNI(long nativePointer, float percent); + static native void jni_YGNodeStyleSetMinWidthMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMinWidthFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMinWidthStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetMinHeightJNI(long nativePointer); static native void jni_YGNodeStyleSetMinHeightJNI(long nativePointer, float minHeight); static native void jni_YGNodeStyleSetMinHeightPercentJNI(long nativePointer, float percent); + static native void jni_YGNodeStyleSetMinHeightMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMinHeightFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMinHeightStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetMaxWidthJNI(long nativePointer); static native void jni_YGNodeStyleSetMaxWidthJNI(long nativePointer, float maxWidth); static native void jni_YGNodeStyleSetMaxWidthPercentJNI(long nativePointer, float percent); + static native void jni_YGNodeStyleSetMaxWidthMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMaxWidthFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMaxWidthStretchJNI(long nativePointer); static native long jni_YGNodeStyleGetMaxHeightJNI(long nativePointer); static native void jni_YGNodeStyleSetMaxHeightJNI(long nativePointer, float maxheight); static native void jni_YGNodeStyleSetMaxHeightPercentJNI(long nativePointer, float percent); + static native void jni_YGNodeStyleSetMaxHeightMaxContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMaxHeightFitContentJNI(long nativePointer); + static native void jni_YGNodeStyleSetMaxHeightStretchJNI(long nativePointer); static native float jni_YGNodeStyleGetAspectRatioJNI(long nativePointer); static native void jni_YGNodeStyleSetAspectRatioJNI(long nativePointer, float aspectRatio); static native float jni_YGNodeStyleGetGapJNI(long nativePointer, int gutter); diff --git a/java/com/facebook/yoga/YogaNode.java b/java/com/facebook/yoga/YogaNode.java index ba07684675..b683b553ca 100644 --- a/java/com/facebook/yoga/YogaNode.java +++ b/java/com/facebook/yoga/YogaNode.java @@ -124,6 +124,12 @@ public interface Inputs { public abstract void setFlexBasisAuto(); + public abstract void setFlexBasisMaxContent(); + + public abstract void setFlexBasisFitContent(); + + public abstract void setFlexBasisStretch(); + public abstract YogaValue getMargin(YogaEdge edge); public abstract void setMargin(YogaEdge edge, float margin); @@ -158,6 +164,12 @@ public interface Inputs { public abstract void setWidthAuto(); + public abstract void setWidthMaxContent(); + + public abstract void setWidthFitContent(); + + public abstract void setWidthStretch(); + public abstract YogaValue getHeight(); public abstract void setHeight(float height); @@ -166,30 +178,60 @@ public interface Inputs { public abstract void setHeightAuto(); + public abstract void setHeightMaxContent(); + + public abstract void setHeightFitContent(); + + public abstract void setHeightStretch(); + public abstract YogaValue getMinWidth(); public abstract void setMinWidth(float minWidth); public abstract void setMinWidthPercent(float percent); + public abstract void setMinWidthMaxContent(); + + public abstract void setMinWidthFitContent(); + + public abstract void setMinWidthStretch(); + public abstract YogaValue getMinHeight(); public abstract void setMinHeight(float minHeight); public abstract void setMinHeightPercent(float percent); + public abstract void setMinHeightMaxContent(); + + public abstract void setMinHeightFitContent(); + + public abstract void setMinHeightStretch(); + public abstract YogaValue getMaxWidth(); public abstract void setMaxWidth(float maxWidth); public abstract void setMaxWidthPercent(float percent); + public abstract void setMaxWidthMaxContent(); + + public abstract void setMaxWidthFitContent(); + + public abstract void setMaxWidthStretch(); + public abstract YogaValue getMaxHeight(); public abstract void setMaxHeight(float maxheight); public abstract void setMaxHeightPercent(float percent); + public abstract void setMaxHeightMaxContent(); + + public abstract void setMaxHeightFitContent(); + + public abstract void setMaxHeightStretch(); + public abstract float getAspectRatio(); public abstract void setAspectRatio(float aspectRatio); diff --git a/java/com/facebook/yoga/YogaNodeJNIBase.java b/java/com/facebook/yoga/YogaNodeJNIBase.java index a53fe74af0..e25872545e 100644 --- a/java/com/facebook/yoga/YogaNodeJNIBase.java +++ b/java/com/facebook/yoga/YogaNodeJNIBase.java @@ -373,6 +373,18 @@ public void setFlexBasisAuto() { YogaNative.jni_YGNodeStyleSetFlexBasisAutoJNI(mNativePointer); } + public void setFlexBasisMaxContent() { + YogaNative.jni_YGNodeStyleSetFlexBasisMaxContentJNI(mNativePointer); + } + + public void setFlexBasisFitContent() { + YogaNative.jni_YGNodeStyleSetFlexBasisFitContentJNI(mNativePointer); + } + + public void setFlexBasisStretch() { + YogaNative.jni_YGNodeStyleSetFlexBasisStretchJNI(mNativePointer); + } + public YogaValue getMargin(YogaEdge edge) { return valueFromLong(YogaNative.jni_YGNodeStyleGetMarginJNI(mNativePointer, edge.intValue())); } @@ -441,6 +453,18 @@ public void setWidthAuto() { YogaNative.jni_YGNodeStyleSetWidthAutoJNI(mNativePointer); } + public void setWidthMaxContent() { + YogaNative.jni_YGNodeStyleSetWidthMaxContentJNI(mNativePointer); + } + + public void setWidthFitContent() { + YogaNative.jni_YGNodeStyleSetWidthFitContentJNI(mNativePointer); + } + + public void setWidthStretch() { + YogaNative.jni_YGNodeStyleSetWidthStretchJNI(mNativePointer); + } + public YogaValue getHeight() { return valueFromLong(YogaNative.jni_YGNodeStyleGetHeightJNI(mNativePointer)); } @@ -457,6 +481,18 @@ public void setHeightAuto() { YogaNative.jni_YGNodeStyleSetHeightAutoJNI(mNativePointer); } + public void setHeightMaxContent() { + YogaNative.jni_YGNodeStyleSetHeightMaxContentJNI(mNativePointer); + } + + public void setHeightFitContent() { + YogaNative.jni_YGNodeStyleSetHeightFitContentJNI(mNativePointer); + } + + public void setHeightStretch() { + YogaNative.jni_YGNodeStyleSetHeightStretchJNI(mNativePointer); + } + public YogaValue getMinWidth() { return valueFromLong(YogaNative.jni_YGNodeStyleGetMinWidthJNI(mNativePointer)); } @@ -469,6 +505,18 @@ public void setMinWidthPercent(float percent) { YogaNative.jni_YGNodeStyleSetMinWidthPercentJNI(mNativePointer, percent); } + public void setMinWidthMaxContent() { + YogaNative.jni_YGNodeStyleSetMinWidthMaxContentJNI(mNativePointer); + } + + public void setMinWidthFitContent() { + YogaNative.jni_YGNodeStyleSetMinWidthFitContentJNI(mNativePointer); + } + + public void setMinWidthStretch() { + YogaNative.jni_YGNodeStyleSetMinWidthStretchJNI(mNativePointer); + } + public YogaValue getMinHeight() { return valueFromLong(YogaNative.jni_YGNodeStyleGetMinHeightJNI(mNativePointer)); } @@ -481,6 +529,18 @@ public void setMinHeightPercent(float percent) { YogaNative.jni_YGNodeStyleSetMinHeightPercentJNI(mNativePointer, percent); } + public void setMinHeightMaxContent() { + YogaNative.jni_YGNodeStyleSetMinHeightMaxContentJNI(mNativePointer); + } + + public void setMinHeightFitContent() { + YogaNative.jni_YGNodeStyleSetMinHeightFitContentJNI(mNativePointer); + } + + public void setMinHeightStretch() { + YogaNative.jni_YGNodeStyleSetMinHeightStretchJNI(mNativePointer); + } + public YogaValue getMaxWidth() { return valueFromLong(YogaNative.jni_YGNodeStyleGetMaxWidthJNI(mNativePointer)); } @@ -493,6 +553,18 @@ public void setMaxWidthPercent(float percent) { YogaNative.jni_YGNodeStyleSetMaxWidthPercentJNI(mNativePointer, percent); } + public void setMaxWidthMaxContent() { + YogaNative.jni_YGNodeStyleSetMaxWidthMaxContentJNI(mNativePointer); + } + + public void setMaxWidthFitContent() { + YogaNative.jni_YGNodeStyleSetMaxWidthFitContentJNI(mNativePointer); + } + + public void setMaxWidthStretch() { + YogaNative.jni_YGNodeStyleSetMaxWidthStretchJNI(mNativePointer); + } + public YogaValue getMaxHeight() { return valueFromLong(YogaNative.jni_YGNodeStyleGetMaxHeightJNI(mNativePointer)); } @@ -505,6 +577,18 @@ public void setMaxHeightPercent(float percent) { YogaNative.jni_YGNodeStyleSetMaxHeightPercentJNI(mNativePointer, percent); } + public void setMaxHeightMaxContent() { + YogaNative.jni_YGNodeStyleSetMaxHeightMaxContentJNI(mNativePointer); + } + + public void setMaxHeightFitContent() { + YogaNative.jni_YGNodeStyleSetMaxHeightFitContentJNI(mNativePointer); + } + + public void setMaxHeightStretch() { + YogaNative.jni_YGNodeStyleSetMaxHeightStretchJNI(mNativePointer); + } + public float getAspectRatio() { return YogaNative.jni_YGNodeStyleGetAspectRatioJNI(mNativePointer); } diff --git a/java/com/facebook/yoga/YogaProps.java b/java/com/facebook/yoga/YogaProps.java index c596c6a7c1..0cad45fa9c 100644 --- a/java/com/facebook/yoga/YogaProps.java +++ b/java/com/facebook/yoga/YogaProps.java @@ -15,15 +15,33 @@ public interface YogaProps { void setWidthPercent(float percent); + void setWidthAuto(); + + void setWidthMaxContent(); + + void setWidthFitContent(); + + void setWidthStretch(); + void setMinWidth(float minWidth); void setMinWidthPercent(float percent); + void setMinWidthMaxContent(); + + void setMinWidthFitContent(); + + void setMinWidthStretch(); + void setMaxWidth(float maxWidth); void setMaxWidthPercent(float percent); - void setWidthAuto(); + void setMaxWidthMaxContent(); + + void setMaxWidthFitContent(); + + void setMaxWidthStretch(); /* Height properties */ @@ -31,15 +49,33 @@ public interface YogaProps { void setHeightPercent(float percent); + void setHeightAuto(); + + void setHeightMaxContent(); + + void setHeightFitContent(); + + void setHeightStretch(); + void setMinHeight(float minHeight); void setMinHeightPercent(float percent); + void setMinHeightMaxContent(); + + void setMinHeightFitContent(); + + void setMinHeightStretch(); + void setMaxHeight(float maxHeight); void setMaxHeightPercent(float percent); - void setHeightAuto(); + void setMaxHeightMaxContent(); + + void setMaxHeightFitContent(); + + void setMaxHeightStretch(); /* Margin properties */ @@ -81,6 +117,12 @@ public interface YogaProps { void setFlexBasis(float flexBasis); + void setFlexBasisMaxContent(); + + void setFlexBasisFitContent(); + + void setFlexBasisStretch(); + void setFlexDirection(YogaFlexDirection direction); void setFlexGrow(float flexGrow); diff --git a/java/jni/YGJNIVanilla.cpp b/java/jni/YGJNIVanilla.cpp index 6b8ed14bd6..95273836c2 100644 --- a/java/jni/YGJNIVanilla.cpp +++ b/java/jni/YGJNIVanilla.cpp @@ -429,6 +429,28 @@ static void jni_YGNodeCopyStyleJNI( YGNodeStyleSet##name##Auto(_jlong2YGNodeRef(nativePointer)); \ } +#define YG_NODE_JNI_STYLE_UNIT_PROP_AUTO_INTRINSIC(name) \ + YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(name) \ + YG_NODE_JNI_STYLE_UNIT_INTRINSIC(name) + +#define YG_NODE_JNI_STYLE_UNIT_PROP_INTRINSIC(name) \ + YG_NODE_JNI_STYLE_UNIT_PROP(name) \ + YG_NODE_JNI_STYLE_UNIT_INTRINSIC(name) + +#define YG_NODE_JNI_STYLE_UNIT_INTRINSIC(name) \ + static void jni_YGNodeStyleSet##name##MaxContentJNI( \ + JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) { \ + YGNodeStyleSet##name##MaxContent(_jlong2YGNodeRef(nativePointer)); \ + } \ + static void jni_YGNodeStyleSet##name##FitContentJNI( \ + JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) { \ + YGNodeStyleSet##name##FitContent(_jlong2YGNodeRef(nativePointer)); \ + } \ + static void jni_YGNodeStyleSet##name##StretchJNI( \ + JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) { \ + YGNodeStyleSet##name##Stretch(_jlong2YGNodeRef(nativePointer)); \ + } + #define YG_NODE_JNI_STYLE_EDGE_UNIT_PROP(name) \ static jlong jni_YGNodeStyleGet##name##JNI( \ JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer, jint edge) { \ @@ -483,13 +505,13 @@ YG_NODE_JNI_STYLE_PROP(jfloat, float, Flex); YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexGrow); YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexShrink); -YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(FlexBasis); -YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(Width); -YG_NODE_JNI_STYLE_UNIT_PROP(MinWidth); -YG_NODE_JNI_STYLE_UNIT_PROP(MaxWidth); -YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(Height); -YG_NODE_JNI_STYLE_UNIT_PROP(MinHeight); -YG_NODE_JNI_STYLE_UNIT_PROP(MaxHeight); +YG_NODE_JNI_STYLE_UNIT_PROP_AUTO_INTRINSIC(FlexBasis); +YG_NODE_JNI_STYLE_UNIT_PROP_AUTO_INTRINSIC(Width); +YG_NODE_JNI_STYLE_UNIT_PROP_INTRINSIC(MinWidth); +YG_NODE_JNI_STYLE_UNIT_PROP_INTRINSIC(MaxWidth); +YG_NODE_JNI_STYLE_UNIT_PROP_AUTO_INTRINSIC(Height); +YG_NODE_JNI_STYLE_UNIT_PROP_INTRINSIC(MinHeight); +YG_NODE_JNI_STYLE_UNIT_PROP_INTRINSIC(MaxHeight); YG_NODE_JNI_STYLE_EDGE_UNIT_PROP_AUTO(Position); @@ -870,6 +892,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetFlexBasisAutoJNI", "(J)V", (void*)jni_YGNodeStyleSetFlexBasisAutoJNI}, + {"jni_YGNodeStyleSetFlexBasisMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetFlexBasisMaxContentJNI}, + {"jni_YGNodeStyleSetFlexBasisFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetFlexBasisFitContentJNI}, + {"jni_YGNodeStyleSetFlexBasisStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetFlexBasisStretchJNI}, {"jni_YGNodeStyleGetMarginJNI", "(JI)J", (void*)jni_YGNodeStyleGetMarginJNI}, @@ -917,6 +948,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetWidthAutoJNI", "(J)V", (void*)jni_YGNodeStyleSetWidthAutoJNI}, + {"jni_YGNodeStyleSetWidthMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetWidthMaxContentJNI}, + {"jni_YGNodeStyleSetWidthFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetWidthFitContentJNI}, + {"jni_YGNodeStyleSetWidthStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetWidthStretchJNI}, {"jni_YGNodeStyleGetHeightJNI", "(J)J", (void*)jni_YGNodeStyleGetHeightJNI}, {"jni_YGNodeStyleSetHeightJNI", "(JF)V", @@ -927,6 +967,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetHeightAutoJNI", "(J)V", (void*)jni_YGNodeStyleSetHeightAutoJNI}, + {"jni_YGNodeStyleSetHeightMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetHeightMaxContentJNI}, + {"jni_YGNodeStyleSetHeightFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetHeightFitContentJNI}, + {"jni_YGNodeStyleSetHeightStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetHeightStretchJNI}, {"jni_YGNodeStyleGetMinWidthJNI", "(J)J", (void*)jni_YGNodeStyleGetMinWidthJNI}, @@ -936,6 +985,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetMinWidthPercentJNI", "(JF)V", (void*)jni_YGNodeStyleSetMinWidthPercentJNI}, + {"jni_YGNodeStyleSetMinWidthMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinWidthMaxContentJNI}, + {"jni_YGNodeStyleSetMinWidthFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinWidthFitContentJNI}, + {"jni_YGNodeStyleSetMinWidthStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinWidthStretchJNI}, {"jni_YGNodeStyleGetMinHeightJNI", "(J)J", (void*)jni_YGNodeStyleGetMinHeightJNI}, @@ -945,6 +1003,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetMinHeightPercentJNI", "(JF)V", (void*)jni_YGNodeStyleSetMinHeightPercentJNI}, + {"jni_YGNodeStyleSetMinHeightMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinHeightMaxContentJNI}, + {"jni_YGNodeStyleSetMinHeightFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinHeightFitContentJNI}, + {"jni_YGNodeStyleSetMinHeightStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMinHeightStretchJNI}, {"jni_YGNodeStyleGetMaxWidthJNI", "(J)J", (void*)jni_YGNodeStyleGetMaxWidthJNI}, @@ -954,6 +1021,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetMaxWidthPercentJNI", "(JF)V", (void*)jni_YGNodeStyleSetMaxWidthPercentJNI}, + {"jni_YGNodeStyleSetMaxWidthMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxWidthMaxContentJNI}, + {"jni_YGNodeStyleSetMaxWidthFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxWidthFitContentJNI}, + {"jni_YGNodeStyleSetMaxWidthStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxWidthStretchJNI}, {"jni_YGNodeStyleGetMaxHeightJNI", "(J)J", (void*)jni_YGNodeStyleGetMaxHeightJNI}, @@ -963,6 +1039,15 @@ static JNINativeMethod methods[] = { {"jni_YGNodeStyleSetMaxHeightPercentJNI", "(JF)V", (void*)jni_YGNodeStyleSetMaxHeightPercentJNI}, + {"jni_YGNodeStyleSetMaxHeightMaxContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxHeightMaxContentJNI}, + {"jni_YGNodeStyleSetMaxHeightFitContentJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxHeightFitContentJNI}, + {"jni_YGNodeStyleSetMaxHeightStretchJNI", + "(J)V", + (void*)jni_YGNodeStyleSetMaxHeightStretchJNI}, {"jni_YGNodeStyleGetAspectRatioJNI", "(J)F", (void*)jni_YGNodeStyleGetAspectRatioJNI}, diff --git a/javascript/src/Node.cpp b/javascript/src/Node.cpp index f5c6a86651..5284ddb5b0 100644 --- a/javascript/src/Node.cpp +++ b/javascript/src/Node.cpp @@ -160,6 +160,18 @@ void Node::setFlexBasisAuto() { YGNodeStyleSetFlexBasisAuto(m_node); } +void Node::setFlexBasisMaxContent() { + YGNodeStyleSetFlexBasisMaxContent(m_node); +} + +void Node::setFlexBasisFitContent() { + YGNodeStyleSetFlexBasisFitContent(m_node); +} + +void Node::setFlexBasisStretch() { + YGNodeStyleSetFlexBasisStretch(m_node); +} + void Node::setFlexGrow(double flexGrow) { YGNodeStyleSetFlexGrow(m_node, flexGrow); } @@ -180,6 +192,18 @@ void Node::setWidthAuto() { YGNodeStyleSetWidthAuto(m_node); } +void Node::setWidthMaxContent() { + YGNodeStyleSetWidthMaxContent(m_node); +} + +void Node::setWidthFitContent() { + YGNodeStyleSetWidthFitContent(m_node); +} + +void Node::setWidthStretch() { + YGNodeStyleSetWidthStretch(m_node); +} + void Node::setHeight(double height) { YGNodeStyleSetHeight(m_node, height); } @@ -192,6 +216,18 @@ void Node::setHeightAuto() { YGNodeStyleSetHeightAuto(m_node); } +void Node::setHeightMaxContent() { + YGNodeStyleSetHeightMaxContent(m_node); +} + +void Node::setHeightFitContent() { + YGNodeStyleSetHeightFitContent(m_node); +} + +void Node::setHeightStretch() { + YGNodeStyleSetHeightStretch(m_node); +} + void Node::setMinWidth(double minWidth) { YGNodeStyleSetMinWidth(m_node, minWidth); } @@ -200,6 +236,18 @@ void Node::setMinWidthPercent(double minWidth) { YGNodeStyleSetMinWidthPercent(m_node, minWidth); } +void Node::setMinWidthMaxContent() { + YGNodeStyleSetMinWidthMaxContent(m_node); +} + +void Node::setMinWidthFitContent() { + YGNodeStyleSetMinWidthFitContent(m_node); +} + +void Node::setMinWidthStretch() { + YGNodeStyleSetMinWidthStretch(m_node); +} + void Node::setMinHeight(double minHeight) { YGNodeStyleSetMinHeight(m_node, minHeight); } @@ -208,6 +256,18 @@ void Node::setMinHeightPercent(double minHeight) { YGNodeStyleSetMinHeightPercent(m_node, minHeight); } +void Node::setMinHeightMaxContent() { + YGNodeStyleSetMinHeightMaxContent(m_node); +} + +void Node::setMinHeightFitContent() { + YGNodeStyleSetMinHeightFitContent(m_node); +} + +void Node::setMinHeightStretch() { + YGNodeStyleSetMinHeightStretch(m_node); +} + void Node::setMaxWidth(double maxWidth) { YGNodeStyleSetMaxWidth(m_node, maxWidth); } @@ -216,6 +276,18 @@ void Node::setMaxWidthPercent(double maxWidth) { YGNodeStyleSetMaxWidthPercent(m_node, maxWidth); } +void Node::setMaxWidthMaxContent() { + YGNodeStyleSetMaxWidthMaxContent(m_node); +} + +void Node::setMaxWidthFitContent() { + YGNodeStyleSetMaxWidthFitContent(m_node); +} + +void Node::setMaxWidthStretch() { + YGNodeStyleSetMaxWidthStretch(m_node); +} + void Node::setMaxHeight(double maxHeight) { YGNodeStyleSetMaxHeight(m_node, maxHeight); } @@ -224,6 +296,18 @@ void Node::setMaxHeightPercent(double maxHeight) { YGNodeStyleSetMaxHeightPercent(m_node, maxHeight); } +void Node::setMaxHeightMaxContent() { + YGNodeStyleSetMaxHeightMaxContent(m_node); +} + +void Node::setMaxHeightFitContent() { + YGNodeStyleSetMaxHeightFitContent(m_node); +} + +void Node::setMaxHeightStretch() { + YGNodeStyleSetMaxHeightStretch(m_node); +} + void Node::setAspectRatio(double aspectRatio) { YGNodeStyleSetAspectRatio(m_node, aspectRatio); } diff --git a/javascript/src/Node.h b/javascript/src/Node.h index c30f1d2ded..0ed4d1d416 100644 --- a/javascript/src/Node.h +++ b/javascript/src/Node.h @@ -97,25 +97,46 @@ class Node { void setFlexBasis(double flexBasis); void setFlexBasisPercent(double flexBasis); void setFlexBasisAuto(); + void setFlexBasisMaxContent(); + void setFlexBasisFitContent(); + void setFlexBasisStretch(); void setFlexGrow(double flexGrow); void setFlexShrink(double flexShrink); void setWidth(double width); void setWidthPercent(double width); void setWidthAuto(); + void setWidthMaxContent(); + void setWidthFitContent(); + void setWidthStretch(); void setHeight(double height); void setHeightPercent(double height); void setHeightAuto(); + void setHeightMaxContent(); + void setHeightFitContent(); + void setHeightStretch(); void setMinWidth(double minWidth); void setMinWidthPercent(double minWidth); + void setMinWidthMaxContent(); + void setMinWidthFitContent(); + void setMinWidthStretch(); void setMinHeight(double minHeight); void setMinHeightPercent(double minHeight); + void setMinHeightMaxContent(); + void setMinHeightFitContent(); + void setMinHeightStretch(); void setMaxWidth(double maxWidth); void setMaxWidthPercent(double maxWidth); + void setMaxWidthMaxContent(); + void setMaxWidthFitContent(); + void setMaxWidthStretch(); void setMaxHeight(double maxHeight); void setMaxHeightPercent(double maxHeight); + void setMaxHeightMaxContent(); + void setMaxHeightFitContent(); + void setMaxHeightStretch(); void setAspectRatio(double aspectRatio); diff --git a/javascript/src/embind.cpp b/javascript/src/embind.cpp index d1789788cf..a2f7202961 100644 --- a/javascript/src/embind.cpp +++ b/javascript/src/embind.cpp @@ -90,25 +90,46 @@ EMSCRIPTEN_BINDINGS(YOGA_LAYOUT) { .function("setFlexBasis", &Node::setFlexBasis) .function("setFlexBasisPercent", &Node::setFlexBasisPercent) .function("setFlexBasisAuto", &Node::setFlexBasisAuto) + .function("setFlexBasisMaxContent", &Node::setFlexBasisMaxContent) + .function("setFlexBasisFitContent", &Node::setFlexBasisFitContent) + .function("setFlexBasisStretch", &Node::setFlexBasisStretch) .function("setFlexGrow", &Node::setFlexGrow) .function("setFlexShrink", &Node::setFlexShrink) .function("setWidth", &Node::setWidth) .function("setWidthPercent", &Node::setWidthPercent) .function("setWidthAuto", &Node::setWidthAuto) + .function("setWidthMaxContent", &Node::setWidthMaxContent) + .function("setWidthFitContent", &Node::setWidthFitContent) + .function("setWidthStretch", &Node::setWidthStretch) .function("setHeight", &Node::setHeight) .function("setHeightPercent", &Node::setHeightPercent) .function("setHeightAuto", &Node::setHeightAuto) + .function("setHeightMaxContent", &Node::setHeightMaxContent) + .function("setHeightFitContent", &Node::setHeightFitContent) + .function("setHeightStretch", &Node::setHeightStretch) .function("setMinWidth", &Node::setMinWidth) .function("setMinWidthPercent", &Node::setMinWidthPercent) + .function("setMinWidthMaxContent", &Node::setMinWidthMaxContent) + .function("setMinWidthFitContent", &Node::setMinWidthFitContent) + .function("setMinWidthStretch", &Node::setMinWidthStretch) .function("setMinHeight", &Node::setMinHeight) .function("setMinHeightPercent", &Node::setMinHeightPercent) + .function("setMinHeightMaxContent", &Node::setMinHeightMaxContent) + .function("setMinHeightFitContent", &Node::setMinHeightFitContent) + .function("setMinHeightStretch", &Node::setMinHeightStretch) .function("setMaxWidth", &Node::setMaxWidth) .function("setMaxWidthPercent", &Node::setMaxWidthPercent) + .function("setMaxWidthMaxContent", &Node::setMaxWidthMaxContent) + .function("setMaxWidthFitContent", &Node::setMaxWidthFitContent) + .function("setMaxWidthStretch", &Node::setMaxWidthStretch) .function("setMaxHeight", &Node::setMaxHeight) .function("setMaxHeightPercent", &Node::setMaxHeightPercent) + .function("setMaxHeightMaxContent", &Node::setMaxHeightMaxContent) + .function("setMaxHeightFitContent", &Node::setMaxHeightFitContent) + .function("setMaxHeightStretch", &Node::setMaxHeightStretch) .function("setBoxSizing", &Node::setBoxSizing) diff --git a/javascript/src/wrapAssembly.ts b/javascript/src/wrapAssembly.ts index 3f91c160bf..9b2dc1e6ec 100644 --- a/javascript/src/wrapAssembly.ts +++ b/javascript/src/wrapAssembly.ts @@ -134,17 +134,41 @@ export type Node = { setDirection(direction: Direction): void; setDisplay(display: Display): void; setFlex(flex: number | undefined): void; - setFlexBasis(flexBasis: number | 'auto' | `${number}%` | undefined): void; + setFlexBasis( + flexBasis: + | number + | 'auto' + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; setFlexBasisPercent(flexBasis: number | undefined): void; setFlexBasisAuto(): void; + setFlexBasisFitContent(): void; + setFlexBasisMaxContent(): void; + setFlexBasisStretch(): void; setFlexDirection(flexDirection: FlexDirection): void; setFlexGrow(flexGrow: number | undefined): void; setFlexShrink(flexShrink: number | undefined): void; setFlexWrap(flexWrap: Wrap): void; - setHeight(height: number | 'auto' | `${number}%` | undefined): void; + setHeight( + height: + | number + | 'auto' + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; setIsReferenceBaseline(isReferenceBaseline: boolean): void; setHeightAuto(): void; + setHeightFitContent(): void; + setHeightMaxContent(): void; setHeightPercent(height: number | undefined): void; + setHeightStretch(): void; setJustifyContent(justifyContent: Justify): void; setGap(gutter: Gutter, gapLength: number | `${number}%` | undefined): Value; setGapPercent(gutter: Gutter, gapLength: number | undefined): Value; @@ -154,16 +178,60 @@ export type Node = { ): void; setMarginAuto(edge: Edge): void; setMarginPercent(edge: Edge, margin: number | undefined): void; - setMaxHeight(maxHeight: number | `${number}%` | undefined): void; + setMaxHeight( + maxHeight: + | number + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; + setMaxHeightFitContent(): void; + setMaxHeightMaxContent(): void; setMaxHeightPercent(maxHeight: number | undefined): void; - setMaxWidth(maxWidth: number | `${number}%` | undefined): void; + setMaxHeightStretch(): void; + setMaxWidth( + maxWidth: + | number + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; + setMaxWidthFitContent(): void; + setMaxWidthMaxContent(): void; setMaxWidthPercent(maxWidth: number | undefined): void; + setMaxWidthStretch(): void; setDirtiedFunc(dirtiedFunc: DirtiedFunction | null): void; setMeasureFunc(measureFunc: MeasureFunction | null): void; - setMinHeight(minHeight: number | `${number}%` | undefined): void; + setMinHeight( + minHeight: + | number + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; + setMinHeightFitContent(): void; + setMinHeightMaxContent(): void; setMinHeightPercent(minHeight: number | undefined): void; - setMinWidth(minWidth: number | `${number}%` | undefined): void; + setMinHeightStretch(): void; + setMinWidth( + minWidth: + | number + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; + setMinWidthFitContent(): void; + setMinWidthMaxContent(): void; setMinWidthPercent(minWidth: number | undefined): void; + setMinWidthStretch(): void; setOverflow(overflow: Overflow): void; setPadding(edge: Edge, padding: number | `${number}%` | undefined): void; setPaddingPercent(edge: Edge, padding: number | undefined): void; @@ -172,9 +240,21 @@ export type Node = { setPositionType(positionType: PositionType): void; setPositionAuto(edge: Edge): void; setBoxSizing(boxSizing: BoxSizing): void; - setWidth(width: number | 'auto' | `${number}%` | undefined): void; + setWidth( + width: + | number + | 'auto' + | 'fit-content' + | 'max-content' + | 'stretch' + | `${number}%` + | undefined, + ): void; setWidthAuto(): void; + setWidthFitContent(): void; + setWidthMaxContent(): void; setWidthPercent(width: number | undefined): void; + setWidthStretch(): void; unsetDirtiedFunc(): void; unsetMeasureFunc(): void; setAlwaysFormsContainingBlock(alwaysFormsContainingBlock: boolean): void; @@ -220,6 +300,9 @@ export default function wrapAssembly(lib: any): Yoga { [Unit.Point]: lib.Node.prototype[fnName], [Unit.Percent]: lib.Node.prototype[`${fnName}Percent`], [Unit.Auto]: lib.Node.prototype[`${fnName}Auto`], + [Unit.MaxContent]: lib.Node.prototype[`${fnName}MaxContent`], + [Unit.FitContent]: lib.Node.prototype[`${fnName}FitContent`], + [Unit.Stretch]: lib.Node.prototype[`${fnName}Stretch`], }; patch(lib.Node.prototype, fnName, function (original, ...args) { @@ -232,6 +315,15 @@ export default function wrapAssembly(lib: any): Yoga { if (value === 'auto') { unit = Unit.Auto; asNumber = undefined; + } else if (value == 'max-content') { + unit = Unit.MaxContent; + asNumber = undefined; + } else if (value == 'fit-content') { + unit = Unit.FitContent; + asNumber = undefined; + } else if (value == 'stretch') { + unit = Unit.Stretch; + asNumber = undefined; } else if (typeof value === 'object') { unit = value.unit; asNumber = value.valueOf(); diff --git a/yoga/YGNodeStyle.cpp b/yoga/YGNodeStyle.cpp index 1f110a9edb..2c9ad31997 100644 --- a/yoga/YGNodeStyle.cpp +++ b/yoga/YGNodeStyle.cpp @@ -192,6 +192,21 @@ void YGNodeStyleSetFlexBasisAuto(const YGNodeRef node) { node, StyleSizeValue::ofAuto()); } +void YGNodeStyleSetFlexBasisMaxContent(const YGNodeRef node) { + updateStyle<&Style::flexBasis, &Style::setFlexBasis>( + node, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetFlexBasisFitContent(const YGNodeRef node) { + updateStyle<&Style::flexBasis, &Style::setFlexBasis>( + node, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetFlexBasisStretch(const YGNodeRef node) { + updateStyle<&Style::flexBasis, &Style::setFlexBasis>( + node, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetFlexBasis(const YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().flexBasis(); } @@ -321,6 +336,21 @@ void YGNodeStyleSetWidthAuto(YGNodeRef node) { node, Dimension::Width, StyleSizeValue::ofAuto()); } +void YGNodeStyleSetWidthMaxContent(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Width, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetWidthFitContent(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Width, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetWidthStretch(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Width, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetWidth(YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().dimension(Dimension::Width); } @@ -340,6 +370,21 @@ void YGNodeStyleSetHeightAuto(YGNodeRef node) { node, Dimension::Height, StyleSizeValue::ofAuto()); } +void YGNodeStyleSetHeightMaxContent(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Height, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetHeightFitContent(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Height, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetHeightStretch(YGNodeRef node) { + updateStyle<&Style::dimension, &Style::setDimension>( + node, Dimension::Height, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetHeight(YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().dimension(Dimension::Height); } @@ -354,6 +399,21 @@ void YGNodeStyleSetMinWidthPercent(const YGNodeRef node, const float minWidth) { node, Dimension::Width, StyleSizeValue::percent(minWidth)); } +void YGNodeStyleSetMinWidthMaxContent(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Width, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetMinWidthFitContent(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Width, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetMinWidthStretch(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Width, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetMinWidth(const YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().minDimension(Dimension::Width); } @@ -370,6 +430,21 @@ void YGNodeStyleSetMinHeightPercent( node, Dimension::Height, StyleSizeValue::percent(minHeight)); } +void YGNodeStyleSetMinHeightMaxContent(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Height, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetMinHeightFitContent(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Height, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetMinHeightStretch(const YGNodeRef node) { + updateStyle<&Style::minDimension, &Style::setMinDimension>( + node, Dimension::Height, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetMinHeight(const YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().minDimension(Dimension::Height); } @@ -384,6 +459,21 @@ void YGNodeStyleSetMaxWidthPercent(const YGNodeRef node, const float maxWidth) { node, Dimension::Width, StyleSizeValue::percent(maxWidth)); } +void YGNodeStyleSetMaxWidthMaxContent(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Width, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetMaxWidthFitContent(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Width, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetMaxWidthStretch(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Width, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetMaxWidth(const YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().maxDimension(Dimension::Width); } @@ -400,6 +490,21 @@ void YGNodeStyleSetMaxHeightPercent( node, Dimension::Height, StyleSizeValue::percent(maxHeight)); } +void YGNodeStyleSetMaxHeightMaxContent(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Height, StyleSizeValue::ofMaxContent()); +} + +void YGNodeStyleSetMaxHeightFitContent(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Height, StyleSizeValue::ofFitContent()); +} + +void YGNodeStyleSetMaxHeightStretch(const YGNodeRef node) { + updateStyle<&Style::maxDimension, &Style::setMaxDimension>( + node, Dimension::Height, StyleSizeValue::ofStretch()); +} + YGValue YGNodeStyleGetMaxHeight(const YGNodeConstRef node) { return (YGValue)resolveRef(node)->style().maxDimension(Dimension::Height); } diff --git a/yoga/YGNodeStyle.h b/yoga/YGNodeStyle.h index 2746a4a00a..a971138bb9 100644 --- a/yoga/YGNodeStyle.h +++ b/yoga/YGNodeStyle.h @@ -64,6 +64,9 @@ YG_EXPORT float YGNodeStyleGetFlexShrink(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetFlexBasis(YGNodeRef node, float flexBasis); YG_EXPORT void YGNodeStyleSetFlexBasisPercent(YGNodeRef node, float flexBasis); YG_EXPORT void YGNodeStyleSetFlexBasisAuto(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetFlexBasisMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetFlexBasisFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetFlexBasisStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetFlexBasis(YGNodeConstRef node); YG_EXPORT void @@ -101,27 +104,45 @@ YG_EXPORT YGBoxSizing YGNodeStyleGetBoxSizing(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetWidth(YGNodeRef node, float width); YG_EXPORT void YGNodeStyleSetWidthPercent(YGNodeRef node, float width); YG_EXPORT void YGNodeStyleSetWidthAuto(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetWidthMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetWidthFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetWidthStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetWidth(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetHeight(YGNodeRef node, float height); YG_EXPORT void YGNodeStyleSetHeightPercent(YGNodeRef node, float height); YG_EXPORT void YGNodeStyleSetHeightAuto(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetHeightMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetHeightFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetHeightStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetHeight(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetMinWidth(YGNodeRef node, float minWidth); YG_EXPORT void YGNodeStyleSetMinWidthPercent(YGNodeRef node, float minWidth); +YG_EXPORT void YGNodeStyleSetMinWidthMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMinWidthFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMinWidthStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetMinWidth(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetMinHeight(YGNodeRef node, float minHeight); YG_EXPORT void YGNodeStyleSetMinHeightPercent(YGNodeRef node, float minHeight); +YG_EXPORT void YGNodeStyleSetMinHeightMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMinHeightFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMinHeightStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetMinHeight(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetMaxWidth(YGNodeRef node, float maxWidth); YG_EXPORT void YGNodeStyleSetMaxWidthPercent(YGNodeRef node, float maxWidth); +YG_EXPORT void YGNodeStyleSetMaxWidthMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMaxWidthFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMaxWidthStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetMaxWidth(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetMaxHeight(YGNodeRef node, float maxHeight); YG_EXPORT void YGNodeStyleSetMaxHeightPercent(YGNodeRef node, float maxHeight); +YG_EXPORT void YGNodeStyleSetMaxHeightMaxContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMaxHeightFitContent(YGNodeRef node); +YG_EXPORT void YGNodeStyleSetMaxHeightStretch(YGNodeRef node); YG_EXPORT YGValue YGNodeStyleGetMaxHeight(YGNodeConstRef node); YG_EXPORT void YGNodeStyleSetAspectRatio(YGNodeRef node, float aspectRatio);