From 7f27046cc5b95c74761b9a7ed4240557d0c6d0b8 Mon Sep 17 00:00:00 2001 From: Emil Sjolander Date: Tue, 9 Aug 2016 04:28:20 -0700 Subject: [PATCH] Expose methods to set position Start|End Summary: As they're were not available yet. Emil, I'm going to wait for your diffs to land before pushing this to avoid disruptions on your side. Differential Revision: D3669177 fbshipit-source-id: b06f382cb89546e817a2475298cf2cad17d95a2c --- java/com/facebook/csslayout/CSSNode.java | 28 +++++++++++++++++++++ java/com/facebook/csslayout/CSSNodeAPI.java | 4 +++ java/com/facebook/csslayout/CSSNodeJNI.java | 28 +++++++++++++++++++++ java/jni/CSSJNI.c | 2 ++ 4 files changed, 62 insertions(+) diff --git a/java/com/facebook/csslayout/CSSNode.java b/java/com/facebook/csslayout/CSSNode.java index 25382a79..1d3a8b28 100644 --- a/java/com/facebook/csslayout/CSSNode.java +++ b/java/com/facebook/csslayout/CSSNode.java @@ -20,8 +20,10 @@ import static com.facebook.csslayout.CSSLayout.DIMENSION_WIDTH; import static com.facebook.csslayout.CSSLayout.POSITION_LEFT; import static com.facebook.csslayout.CSSLayout.POSITION_TOP; import static com.facebook.csslayout.Spacing.BOTTOM; +import static com.facebook.csslayout.Spacing.END; import static com.facebook.csslayout.Spacing.LEFT; import static com.facebook.csslayout.Spacing.RIGHT; +import static com.facebook.csslayout.Spacing.START; import static com.facebook.csslayout.Spacing.TOP; /** @@ -475,6 +477,32 @@ public class CSSNode implements CSSNodeAPI { setPositionValue(RIGHT, positionRight); } + /** + * Get this node's position start, as defined by style. + */ + @Override + public float getPositionStart() { + return style.position.get(START); + } + + @Override + public void setPositionStart(float positionStart) { + setPositionValue(START, positionStart); + } + + /** + * Get this node's position end, as defined by style. + */ + @Override + public float getPositionEnd() { + return style.position.get(END); + } + + @Override + public void setPositionEnd(float positionEnd) { + setPositionValue(END, positionEnd); + } + /** * Get this node's width, as defined in the style. */ diff --git a/java/com/facebook/csslayout/CSSNodeAPI.java b/java/com/facebook/csslayout/CSSNodeAPI.java index fd834223..ba2d82e8 100644 --- a/java/com/facebook/csslayout/CSSNodeAPI.java +++ b/java/com/facebook/csslayout/CSSNodeAPI.java @@ -68,6 +68,10 @@ public interface CSSNodeAPI { void setPositionLeft(float positionLeft); float getPositionRight(); void setPositionRight(float positionRight); + float getPositionStart(); + void setPositionStart(float positionStart); + float getPositionEnd(); + void setPositionEnd(float positionEnd); float getStyleWidth(); void setStyleWidth(float width); float getStyleHeight(); diff --git a/java/com/facebook/csslayout/CSSNodeJNI.java b/java/com/facebook/csslayout/CSSNodeJNI.java index aad1b465..4fd97521 100644 --- a/java/com/facebook/csslayout/CSSNodeJNI.java +++ b/java/com/facebook/csslayout/CSSNodeJNI.java @@ -572,6 +572,34 @@ public class CSSNodeJNI implements CSSNodeAPI { jni_CSSNodeStyleSetPositionRight(mNativePointer, positionRight); } + private native float jni_CSSNodeStyleGetPositionStart(int nativePointer); + @Override + public float getPositionStart() { + assertNativeInstance(); + return jni_CSSNodeStyleGetPositionStart(mNativePointer); + } + + private native void jni_CSSNodeStyleSetPositionStart(int nativePointer, float positionStart); + @Override + public void setPositionStart(float positionStart) { + assertNativeInstance(); + jni_CSSNodeStyleSetPositionStart(mNativePointer, positionStart); + } + + private native float jni_CSSNodeStyleGetPositionEnd(int nativePointer); + @Override + public float getPositionEnd() { + assertNativeInstance(); + return jni_CSSNodeStyleGetPositionEnd(mNativePointer); + } + + private native void jni_CSSNodeStyleSetPositionEnd(int nativePointer, float positionEnd); + @Override + public void setPositionEnd(float positionEnd) { + assertNativeInstance(); + jni_CSSNodeStyleSetPositionEnd(mNativePointer, positionEnd); + } + private native float jni_CSSNodeStyleGetWidth(int nativePointer); @Override public float getStyleWidth() { diff --git a/java/jni/CSSJNI.c b/java/jni/CSSJNI.c index f10888b3..8f1483c3 100644 --- a/java/jni/CSSJNI.c +++ b/java/jni/CSSJNI.c @@ -170,6 +170,8 @@ CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionLeft); CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionTop); CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionRight); CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionBottom); +CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionStart); +CSS_NODE_JNI_STYLE_PROP(jfloat, float, PositionEnd); CSS_NODE_JNI_STYLE_PROP(jfloat, float, Width); CSS_NODE_JNI_STYLE_PROP(jfloat, float, MinWidth);