move percent auto style properties to vanilla jni (YogaStyleProperties Part 3)
Summary: Move Yoga style properties to vanilla JNI under a flag. Reviewed By: amir-shalem Differential Revision: D17666674 fbshipit-source-id: 08490bf7c214c856a93214088a27dd4e6df9e0fd
This commit is contained in:
committed by
Facebook Github Bot
parent
25b8c94788
commit
6e6b1369ac
@@ -10,7 +10,6 @@
|
||||
#include <yoga/Yoga-internal.h>
|
||||
#include <yoga/log.h>
|
||||
#include <cstdint>
|
||||
#include <cstring>
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
|
||||
|
@@ -4,6 +4,8 @@
|
||||
* This source code is licensed under the MIT license found in the LICENSE
|
||||
* file in the root directory of this source tree.
|
||||
*/
|
||||
#include <cstring>
|
||||
|
||||
namespace {
|
||||
|
||||
union YGNodeContext {
|
||||
|
@@ -7,6 +7,7 @@
|
||||
#include "jni.h"
|
||||
#include "YGJNIVanilla.h"
|
||||
#include <yoga/YGNode.h>
|
||||
#include "YGJNI.h"
|
||||
|
||||
static inline YGNodeRef _jlong2YGNodeRef(jlong addr) {
|
||||
return reinterpret_cast<YGNodeRef>(static_cast<intptr_t>(addr));
|
||||
@@ -24,6 +25,32 @@ static inline YGNodeRef _jlong2YGNodeRef(jlong addr) {
|
||||
_jlong2YGNodeRef(nativePointer), static_cast<type>(value)); \
|
||||
}
|
||||
|
||||
#define YG_NODE_JNI_STYLE_UNIT_PROP(name) \
|
||||
static jlong jni_YGNodeStyleGet##name##JNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer) { \
|
||||
return YogaValue::asJavaLong( \
|
||||
YGNodeStyleGet##name(_jlong2YGNodeRef(nativePointer))); \
|
||||
} \
|
||||
\
|
||||
static void jni_YGNodeStyleSet##name##JNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer, jfloat value) { \
|
||||
YGNodeStyleSet##name( \
|
||||
_jlong2YGNodeRef(nativePointer), static_cast<float>(value)); \
|
||||
} \
|
||||
\
|
||||
static void jni_YGNodeStyleSet##name##PercentJNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer, jfloat value) { \
|
||||
YGNodeStyleSet##name##Percent( \
|
||||
_jlong2YGNodeRef(nativePointer), static_cast<float>(value)); \
|
||||
}
|
||||
|
||||
#define YG_NODE_JNI_STYLE_UNIT_PROP_AUTO(name) \
|
||||
YG_NODE_JNI_STYLE_UNIT_PROP(name) \
|
||||
static void jni_YGNodeStyleSet##name##AutoJNI( \
|
||||
JNIEnv* env, jobject obj, jlong nativePointer) { \
|
||||
YGNodeStyleSet##name##Auto(_jlong2YGNodeRef(nativePointer)); \
|
||||
}
|
||||
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGDirection, Direction);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGFlexDirection, FlexDirection);
|
||||
YG_NODE_JNI_STYLE_PROP(jint, YGJustify, JustifyContent);
|
||||
@@ -38,6 +65,14 @@ 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);
|
||||
|
||||
// Yoga specific properties, not compatible with flexbox specification
|
||||
YG_NODE_JNI_STYLE_PROP(jfloat, float, AspectRatio);
|
||||
|
||||
@@ -138,6 +173,74 @@ static JNINativeMethod methods[] = {
|
||||
{"jni_YGNodeStyleSetFlexShrinkJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetFlexShrinkJNI},
|
||||
{"jni_YGNodeStyleGetFlexBasisJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetFlexBasisJNI},
|
||||
{"jni_YGNodeStyleSetFlexBasisJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetFlexBasisJNI},
|
||||
{"jni_YGNodeStyleSetFlexBasisPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetFlexBasisPercentJNI},
|
||||
{"jni_YGNodeStyleSetFlexBasisAutoJNI",
|
||||
"(J)V",
|
||||
(void*) jni_YGNodeStyleSetFlexBasisAutoJNI},
|
||||
{"jni_YGNodeStyleGetWidthJNI", "(J)J", (void*) jni_YGNodeStyleGetWidthJNI},
|
||||
{"jni_YGNodeStyleSetWidthJNI", "(JF)V", (void*) jni_YGNodeStyleSetWidthJNI},
|
||||
{"jni_YGNodeStyleSetWidthPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetWidthPercentJNI},
|
||||
{"jni_YGNodeStyleSetWidthAutoJNI",
|
||||
"(J)V",
|
||||
(void*) jni_YGNodeStyleSetWidthAutoJNI},
|
||||
{"jni_YGNodeStyleGetHeightJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetHeightJNI},
|
||||
{"jni_YGNodeStyleSetHeightJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetHeightJNI},
|
||||
{"jni_YGNodeStyleSetHeightPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetHeightPercentJNI},
|
||||
{"jni_YGNodeStyleSetHeightAutoJNI",
|
||||
"(J)V",
|
||||
(void*) jni_YGNodeStyleSetHeightAutoJNI},
|
||||
{"jni_YGNodeStyleGetMinWidthJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetMinWidthJNI},
|
||||
{"jni_YGNodeStyleSetMinWidthJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMinWidthJNI},
|
||||
{"jni_YGNodeStyleSetMinWidthPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMinWidthPercentJNI},
|
||||
{"jni_YGNodeStyleGetMinHeightJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetMinHeightJNI},
|
||||
{"jni_YGNodeStyleSetMinHeightJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMinHeightJNI},
|
||||
{"jni_YGNodeStyleSetMinHeightPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMinHeightPercentJNI},
|
||||
{"jni_YGNodeStyleGetMaxWidthJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetMaxWidthJNI},
|
||||
{"jni_YGNodeStyleSetMaxWidthJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMaxWidthJNI},
|
||||
{"jni_YGNodeStyleSetMaxWidthPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMaxWidthPercentJNI},
|
||||
{"jni_YGNodeStyleGetMaxHeightJNI",
|
||||
"(J)J",
|
||||
(void*) jni_YGNodeStyleGetMaxHeightJNI},
|
||||
{"jni_YGNodeStyleSetMaxHeightJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMaxHeightJNI},
|
||||
{"jni_YGNodeStyleSetMaxHeightPercentJNI",
|
||||
"(JF)V",
|
||||
(void*) jni_YGNodeStyleSetMaxHeightPercentJNI},
|
||||
{"jni_YGNodeStyleGetAspectRatioJNI",
|
||||
"(J)F",
|
||||
(void*) jni_YGNodeStyleGetAspectRatioJNI},
|
||||
|
Reference in New Issue
Block a user