Skip to content

Commit 1712bdc

Browse files
android - non fabric gaps
1 parent 5483d03 commit 1712bdc

File tree

9 files changed

+140
-0
lines changed

9 files changed

+140
-0
lines changed

ReactAndroid/src/main/java/com/facebook/react/uimanager/LayoutShadowNode.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,30 @@ public void setFlexGrow(float flexGrow) {
224224
super.setFlexGrow(flexGrow);
225225
}
226226

227+
@ReactProp(name = ViewProps.ROW_GAP, defaultFloat = 0f)
228+
public void setRowGap(float rowGap) {
229+
if (isVirtual()) {
230+
return;
231+
}
232+
super.setRowGap(rowGap);
233+
}
234+
235+
@ReactProp(name = ViewProps.COLUMN_GAP, defaultFloat = 0f)
236+
public void setColumnGap(float columnGap) {
237+
if (isVirtual()) {
238+
return;
239+
}
240+
super.setColumnGap(columnGap);
241+
}
242+
243+
@ReactProp(name = ViewProps.GAP, defaultFloat = 0f)
244+
public void setGap(float gap) {
245+
if (isVirtual()) {
246+
return;
247+
}
248+
super.setGap(gap);
249+
}
250+
227251
@ReactProp(name = ViewProps.FLEX_SHRINK, defaultFloat = 0f)
228252
public void setFlexShrink(float flexShrink) {
229253
if (isVirtual()) {

ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNode.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,12 @@ public interface ReactShadowNode<T extends ReactShadowNode> {
308308

309309
void setFlexGrow(float flexGrow);
310310

311+
void setRowGap(float rowGap);
312+
313+
void setColumnGap(float columnGap);
314+
315+
void setGap(float gap);
316+
311317
void setFlexShrink(float flexShrink);
312318

313319
void setFlexBasis(float flexBasis);

ReactAndroid/src/main/java/com/facebook/react/uimanager/ReactShadowNodeImpl.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -794,6 +794,21 @@ public void setFlexGrow(float flexGrow) {
794794
mYogaNode.setFlexGrow(flexGrow);
795795
}
796796

797+
@Override
798+
public void setRowGap(float rowGap) {
799+
mYogaNode.setRowGap(rowGap);
800+
}
801+
802+
@Override
803+
public void setColumnGap(float columnGap) {
804+
mYogaNode.setColumnGap(columnGap);
805+
}
806+
807+
@Override
808+
public void setGap(float gap) {
809+
mYogaNode.setGap(gap);
810+
}
811+
797812
@Override
798813
public void setFlexShrink(float flexShrink) {
799814
mYogaNode.setFlexShrink(flexShrink);

ReactAndroid/src/main/java/com/facebook/react/uimanager/interfaces/ViewProps.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ public class ViewProps {
3232
public static final String FLEX_BASIS = "flexBasis";
3333
public static final String FLEX_DIRECTION = "flexDirection";
3434
public static final String FLEX_WRAP = "flexWrap";
35+
public static final String ROW_GAP = "rowGap";
36+
public static final String COLUMN_GAP = "columnGap";
37+
public static final String GAP = "gap";
3538
public static final String HEIGHT = "height";
3639
public static final String JUSTIFY_CONTENT = "justifyContent";
3740
public static final String LEFT = "left";
@@ -200,6 +203,9 @@ public class ViewProps {
200203
FLEX_BASIS,
201204
FLEX_DIRECTION,
202205
FLEX_GROW,
206+
ROW_GAP,
207+
COLUMN_GAP,
208+
GAP,
203209
FLEX_SHRINK,
204210
FLEX_WRAP,
205211
JUSTIFY_CONTENT,

ReactAndroid/src/main/java/com/facebook/yoga/YogaNative.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ public class YogaNative {
6868
static native void jni_YGNodeStyleSetFlexJNI(long nativePointer, float flex);
6969
static native float jni_YGNodeStyleGetFlexGrowJNI(long nativePointer);
7070
static native void jni_YGNodeStyleSetFlexGrowJNI(long nativePointer, float flexGrow);
71+
static native float jni_YGNodeStyleGetRowGapJNI(long nativePointer);
72+
static native void jni_YGNodeStyleSetRowGapJNI(long nativePointer, float rowGap);
73+
static native float jni_YGNodeStyleGetColumnGapJNI(long nativePointer);
74+
static native void jni_YGNodeStyleSetColumnGapJNI(long nativePointer, float columnGap);
75+
static native float jni_YGNodeStyleGetGapJNI(long nativePointer);
76+
static native void jni_YGNodeStyleSetGapJNI(long nativePointer, float gap);
7177
static native float jni_YGNodeStyleGetFlexShrinkJNI(long nativePointer);
7278
static native void jni_YGNodeStyleSetFlexShrinkJNI(long nativePointer, float flexShrink);
7379
static native long jni_YGNodeStyleGetFlexBasisJNI(long nativePointer);

ReactAndroid/src/main/java/com/facebook/yoga/YogaNode.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,18 @@ public interface Inputs {
108108

109109
public abstract void setFlexGrow(float flexGrow);
110110

111+
public abstract float getGap();
112+
113+
public abstract void setGap(float gap);
114+
115+
public abstract float getRowGap();
116+
117+
public abstract void setRowGap(float rowGap);
118+
119+
public abstract float getColumnGap();
120+
121+
public abstract void setColumnGap(float columnGap);
122+
111123
public abstract float getFlexShrink();
112124

113125
public abstract void setFlexShrink(float flexShrink);

ReactAndroid/src/main/java/com/facebook/yoga/YogaNodeJNIBase.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,30 @@ public void setFlexGrow(float flexGrow) {
344344
YogaNative.jni_YGNodeStyleSetFlexGrowJNI(mNativePointer, flexGrow);
345345
}
346346

347+
public float getRowGap() {
348+
return YogaNative.jni_YGNodeStyleGetRowGapJNI(mNativePointer);
349+
}
350+
351+
public void setRowGap(float rowGap) {
352+
YogaNative.jni_YGNodeStyleSetRowGapJNI(mNativePointer, rowGap);
353+
}
354+
355+
public float getColumnGap() {
356+
return YogaNative.jni_YGNodeStyleGetColumnGapJNI(mNativePointer);
357+
}
358+
359+
public void setColumnGap(float columnGap) {
360+
YogaNative.jni_YGNodeStyleSetColumnGapJNI(mNativePointer, columnGap);
361+
}
362+
363+
public float getGap() {
364+
return YogaNative.jni_YGNodeStyleGetGapJNI(mNativePointer);
365+
}
366+
367+
public void setGap(float gap) {
368+
YogaNative.jni_YGNodeStyleSetGapJNI(mNativePointer, gap);
369+
}
370+
347371
public float getFlexShrink() {
348372
return YogaNative.jni_YGNodeStyleGetFlexShrinkJNI(mNativePointer);
349373
}

ReactAndroid/src/main/java/com/facebook/yoga/YogaProps.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,12 @@ public interface YogaProps {
8484
void setFlexDirection(YogaFlexDirection direction);
8585

8686
void setFlexGrow(float flexGrow);
87+
88+
void setRowGap(float rowGap);
89+
90+
void setColumnGap(float columnGap);
91+
92+
void setGap(float gap);
8793

8894
void setFlexShrink(float flexShrink);
8995

@@ -135,6 +141,12 @@ public interface YogaProps {
135141

136142
float getFlexGrow();
137143

144+
float getRowGap();
145+
146+
float getGap();
147+
148+
float getColumnGap();
149+
138150
float getFlexShrink();
139151

140152
YogaValue getFlexBasis();

ReactAndroid/src/main/jni/first-party/yogajni/jni/YGJNIVanilla.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,19 @@ static void jni_YGNodeCopyStyleJNI(
493493
static_cast<float>(value)); \
494494
}
495495

496+
497+
#define YG_NODE_JNI_STYLE_GAP_PROP(name, gapType) \
498+
static jfloat jni_YGNodeStyleGet##name##JNI( \
499+
JNIEnv* env, jobject obj, jlong nativePointer) { \
500+
return (jfloat) YGNodeStyleGetGap(_jlong2YGNodeRef(nativePointer), gapType); \
501+
} \
502+
\
503+
static void jni_YGNodeStyleSet##name##JNI( \
504+
JNIEnv* env, jobject obj, jlong nativePointer, jfloat value) { \
505+
YGNodeStyleSetGap( \
506+
_jlong2YGNodeRef(nativePointer), gapType, static_cast<float>(value)); \
507+
}
508+
496509
YG_NODE_JNI_STYLE_PROP(jint, YGDirection, Direction);
497510
YG_NODE_JNI_STYLE_PROP(jint, YGFlexDirection, FlexDirection);
498511
YG_NODE_JNI_STYLE_PROP(jint, YGJustify, JustifyContent);
@@ -507,6 +520,10 @@ YG_NODE_JNI_STYLE_PROP(jfloat, float, Flex);
507520
YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexGrow);
508521
YG_NODE_JNI_STYLE_PROP(jfloat, float, FlexShrink);
509522

523+
YG_NODE_JNI_STYLE_GAP_PROP(Gap, YGGapAll);
524+
YG_NODE_JNI_STYLE_GAP_PROP(RowGap, YGGapRow);
525+
YG_NODE_JNI_STYLE_GAP_PROP(ColumnGap, YGGapColumn);
526+
510527
YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(FlexBasis);
511528
YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(Width);
512529
YG_NODE_JNI_STYLE_UNIT_PROP(MinWidth);
@@ -852,6 +869,24 @@ static JNINativeMethod methods[] = {
852869
{"jni_YGNodeStyleSetFlexGrowJNI",
853870
"(JF)V",
854871
(void*) jni_YGNodeStyleSetFlexGrowJNI},
872+
{"jni_YGNodeStyleGetGapJNI",
873+
"(J)F",
874+
(void*) jni_YGNodeStyleGetGapJNI},
875+
{"jni_YGNodeStyleSetGapJNI",
876+
"(JF)V",
877+
(void*) jni_YGNodeStyleSetGapJNI},
878+
{"jni_YGNodeStyleGetRowGapJNI",
879+
"(J)F",
880+
(void*) jni_YGNodeStyleGetRowGapJNI},
881+
{"jni_YGNodeStyleSetRowGapJNI",
882+
"(JF)V",
883+
(void*) jni_YGNodeStyleSetRowGapJNI},
884+
{"jni_YGNodeStyleGetColumnGapJNI",
885+
"(J)F",
886+
(void*) jni_YGNodeStyleGetColumnGapJNI},
887+
{"jni_YGNodeStyleSetColumnGapJNI",
888+
"(JF)V",
889+
(void*) jni_YGNodeStyleSetColumnGapJNI},
855890
{"jni_YGNodeStyleGetFlexShrinkJNI",
856891
"(J)F",
857892
(void*) jni_YGNodeStyleGetFlexShrinkJNI},

0 commit comments

Comments
 (0)