Change NodeToString.cpp to output JSON not html #1563
@@ -15,8 +15,6 @@ public abstract class YogaConfig {
|
|||||||
|
|
||||||
public abstract void setUseWebDefaults(boolean useWebDefaults);
|
public abstract void setUseWebDefaults(boolean useWebDefaults);
|
||||||
|
|
||||||
public abstract void setPrintTreeFlag(boolean enable);
|
|
||||||
|
|
||||||
public abstract void setPointScaleFactor(float pixelsInPoint);
|
public abstract void setPointScaleFactor(float pixelsInPoint);
|
||||||
|
|
||||||
public abstract void setErrata(YogaErrata errata);
|
public abstract void setErrata(YogaErrata errata);
|
||||||
|
@@ -35,10 +35,6 @@ public abstract class YogaConfigJNIBase extends YogaConfig {
|
|||||||
YogaNative.jni_YGConfigSetUseWebDefaultsJNI(mNativePointer, useWebDefaults);
|
YogaNative.jni_YGConfigSetUseWebDefaultsJNI(mNativePointer, useWebDefaults);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPrintTreeFlag(boolean enable) {
|
|
||||||
YogaNative.jni_YGConfigSetPrintTreeFlagJNI(mNativePointer, enable);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPointScaleFactor(float pixelsInPoint) {
|
public void setPointScaleFactor(float pixelsInPoint) {
|
||||||
YogaNative.jni_YGConfigSetPointScaleFactorJNI(mNativePointer, pixelsInPoint);
|
YogaNative.jni_YGConfigSetPointScaleFactorJNI(mNativePointer, pixelsInPoint);
|
||||||
}
|
}
|
||||||
|
@@ -22,7 +22,6 @@ public class YogaNative {
|
|||||||
static native void jni_YGConfigFreeJNI(long nativePointer);
|
static native void jni_YGConfigFreeJNI(long nativePointer);
|
||||||
static native void jni_YGConfigSetExperimentalFeatureEnabledJNI(long nativePointer, int feature, boolean enabled);
|
static native void jni_YGConfigSetExperimentalFeatureEnabledJNI(long nativePointer, int feature, boolean enabled);
|
||||||
static native void jni_YGConfigSetUseWebDefaultsJNI(long nativePointer, boolean useWebDefaults);
|
static native void jni_YGConfigSetUseWebDefaultsJNI(long nativePointer, boolean useWebDefaults);
|
||||||
static native void jni_YGConfigSetPrintTreeFlagJNI(long nativePointer, boolean enable);
|
|
||||||
static native void jni_YGConfigSetPointScaleFactorJNI(long nativePointer, float pixelsInPoint);
|
static native void jni_YGConfigSetPointScaleFactorJNI(long nativePointer, float pixelsInPoint);
|
||||||
static native void jni_YGConfigSetErrataJNI(long nativePointer, int errata);
|
static native void jni_YGConfigSetErrataJNI(long nativePointer, int errata);
|
||||||
static native int jni_YGConfigGetErrataJNI(long nativePointer);
|
static native int jni_YGConfigGetErrataJNI(long nativePointer);
|
||||||
@@ -111,7 +110,6 @@ public class YogaNative {
|
|||||||
static native void jni_YGNodeStyleSetGapJNI(long nativePointer, int gutter, float gapLength);
|
static native void jni_YGNodeStyleSetGapJNI(long nativePointer, int gutter, float gapLength);
|
||||||
static native void jni_YGNodeSetHasMeasureFuncJNI(long nativePointer, boolean hasMeasureFunc);
|
static native void jni_YGNodeSetHasMeasureFuncJNI(long nativePointer, boolean hasMeasureFunc);
|
||||||
static native void jni_YGNodeSetHasBaselineFuncJNI(long nativePointer, boolean hasMeasureFunc);
|
static native void jni_YGNodeSetHasBaselineFuncJNI(long nativePointer, boolean hasMeasureFunc);
|
||||||
static native void jni_YGNodePrintJNI(long nativePointer);
|
|
||||||
static native void jni_YGNodeSetStyleInputsJNI(long nativePointer, float[] styleInputsArray, int size);
|
static native void jni_YGNodeSetStyleInputsJNI(long nativePointer, float[] styleInputsArray, int size);
|
||||||
static native long jni_YGNodeCloneJNI(long nativePointer);
|
static native long jni_YGNodeCloneJNI(long nativePointer);
|
||||||
static native void jni_YGNodeSetAlwaysFormsContainingBlockJNI(long nativePointer, boolean alwaysFormContainingBlock);
|
static native void jni_YGNodeSetAlwaysFormsContainingBlockJNI(long nativePointer, boolean alwaysFormContainingBlock);
|
||||||
|
@@ -221,8 +221,6 @@ public abstract class YogaNode implements YogaProps {
|
|||||||
@Nullable
|
@Nullable
|
||||||
public abstract Object getData();
|
public abstract Object getData();
|
||||||
|
|
||||||
public abstract void print();
|
|
||||||
|
|
||||||
public abstract YogaNode cloneWithoutChildren();
|
public abstract YogaNode cloneWithoutChildren();
|
||||||
|
|
||||||
public abstract YogaNode cloneWithChildren();
|
public abstract YogaNode cloneWithChildren();
|
||||||
|
@@ -556,14 +556,6 @@ public abstract class YogaNodeJNIBase extends YogaNode implements Cloneable {
|
|||||||
return mData;
|
return mData;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Use the set logger (defaults to adb log) to print out the styles, children, and computed layout
|
|
||||||
* of the tree rooted at this node.
|
|
||||||
*/
|
|
||||||
public void print() {
|
|
||||||
YogaNative.jni_YGNodePrintJNI(mNativePointer);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method replaces the child at childIndex position with the newNode received by parameter.
|
* This method replaces the child at childIndex position with the newNode received by parameter.
|
||||||
* This is different than calling removeChildAt and addChildAt because this method ONLY replaces
|
* This is different than calling removeChildAt and addChildAt because this method ONLY replaces
|
||||||
|
@@ -66,15 +66,6 @@ static void jni_YGConfigSetUseWebDefaultsJNI(
|
|||||||
YGConfigSetUseWebDefaults(config, useWebDefaults);
|
YGConfigSetUseWebDefaults(config, useWebDefaults);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void jni_YGConfigSetPrintTreeFlagJNI(
|
|
||||||
JNIEnv* /*env*/,
|
|
||||||
jobject /*obj*/,
|
|
||||||
jlong nativePointer,
|
|
||||||
jboolean enable) {
|
|
||||||
const YGConfigRef config = _jlong2YGConfigRef(nativePointer);
|
|
||||||
YGConfigSetPrintTreeFlag(config, enable);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void jni_YGConfigSetPointScaleFactorJNI(
|
static void jni_YGConfigSetPointScaleFactorJNI(
|
||||||
JNIEnv* /*env*/,
|
JNIEnv* /*env*/,
|
||||||
jobject /*obj*/,
|
jobject /*obj*/,
|
||||||
@@ -690,18 +681,6 @@ static void jni_YGNodeSetAlwaysFormsContainingBlockJNI(
|
|||||||
_jlong2YGNodeRef(nativePointer), alwaysFormsContainingBlock);
|
_jlong2YGNodeRef(nativePointer), alwaysFormsContainingBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
jni_YGNodePrintJNI(JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) {
|
|
||||||
#ifdef DEBUG
|
|
||||||
const YGNodeRef node = _jlong2YGNodeRef(nativePointer);
|
|
||||||
YGNodePrint(
|
|
||||||
node,
|
|
||||||
(YGPrintOptions)(YGPrintOptionsStyle | YGPrintOptionsLayout | YGPrintOptionsChildren));
|
|
||||||
#else
|
|
||||||
(void)nativePointer;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static jlong
|
static jlong
|
||||||
jni_YGNodeCloneJNI(JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) {
|
jni_YGNodeCloneJNI(JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) {
|
||||||
auto node = _jlong2YGNodeRef(nativePointer);
|
auto node = _jlong2YGNodeRef(nativePointer);
|
||||||
@@ -744,9 +723,6 @@ static JNINativeMethod methods[] = {
|
|||||||
{"jni_YGConfigSetUseWebDefaultsJNI",
|
{"jni_YGConfigSetUseWebDefaultsJNI",
|
||||||
"(JZ)V",
|
"(JZ)V",
|
||||||
(void*)jni_YGConfigSetUseWebDefaultsJNI},
|
(void*)jni_YGConfigSetUseWebDefaultsJNI},
|
||||||
{"jni_YGConfigSetPrintTreeFlagJNI",
|
|
||||||
"(JZ)V",
|
|
||||||
(void*)jni_YGConfigSetPrintTreeFlagJNI},
|
|
||||||
{"jni_YGConfigSetPointScaleFactorJNI",
|
{"jni_YGConfigSetPointScaleFactorJNI",
|
||||||
"(JF)V",
|
"(JF)V",
|
||||||
(void*)jni_YGConfigSetPointScaleFactorJNI},
|
(void*)jni_YGConfigSetPointScaleFactorJNI},
|
||||||
@@ -970,7 +946,6 @@ static JNINativeMethod methods[] = {
|
|||||||
{"jni_YGNodeSetAlwaysFormsContainingBlockJNI",
|
{"jni_YGNodeSetAlwaysFormsContainingBlockJNI",
|
||||||
"(JZ)V",
|
"(JZ)V",
|
||||||
(void*)jni_YGNodeSetAlwaysFormsContainingBlockJNI},
|
(void*)jni_YGNodeSetAlwaysFormsContainingBlockJNI},
|
||||||
{"jni_YGNodePrintJNI", "(J)V", (void*)jni_YGNodePrintJNI},
|
|
||||||
{"jni_YGNodeCloneJNI", "(J)J", (void*)jni_YGNodeCloneJNI},
|
{"jni_YGNodeCloneJNI", "(J)J", (void*)jni_YGNodeCloneJNI},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -1,137 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <gtest/gtest.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <yoga/Yoga.h>
|
|
||||||
|
|
||||||
#if DEBUG
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
char writeBuffer[4096];
|
|
||||||
int _unmanagedLogger(
|
|
||||||
const YGConfigConstRef /*config*/,
|
|
||||||
const YGNodeConstRef /*node*/,
|
|
||||||
YGLogLevel /*level*/,
|
|
||||||
const char* format,
|
|
||||||
va_list args) {
|
|
||||||
return vsnprintf(
|
|
||||||
writeBuffer + strlen(writeBuffer),
|
|
||||||
sizeof(writeBuffer) - strlen(writeBuffer),
|
|
||||||
format,
|
|
||||||
args);
|
|
||||||
}
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
TEST(YogaTest, config_print_tree_enabled) {
|
|
||||||
writeBuffer[0] = '\0';
|
|
||||||
const YGConfigRef config = YGConfigNew();
|
|
||||||
YGConfigSetPrintTreeFlag(config, true);
|
|
||||||
YGConfigSetLogger(config, _unmanagedLogger);
|
|
||||||
const YGNodeRef root = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child0 = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child1 = YGNodeNewWithConfig(config);
|
|
||||||
YGNodeInsertChild(root, child0, 0);
|
|
||||||
YGNodeInsertChild(root, child1, 1);
|
|
||||||
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
|
|
||||||
YGConfigSetLogger(config, NULL);
|
|
||||||
YGNodeFreeRecursive(root);
|
|
||||||
|
|
||||||
const char* expected =
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" >\n "
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" "
|
|
||||||
"></div>\n <div layout=\"width: 0; height: 0; top: 0; left: 0;\" "
|
|
||||||
"style=\"\" ></div>\n</div>";
|
|
||||||
ASSERT_STREQ(expected, writeBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(YogaTest, config_print_tree_disabled) {
|
|
||||||
writeBuffer[0] = '\0';
|
|
||||||
const YGConfigRef config = YGConfigNew();
|
|
||||||
YGConfigSetPrintTreeFlag(config, false);
|
|
||||||
YGConfigSetLogger(config, _unmanagedLogger);
|
|
||||||
const YGNodeRef root = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child0 = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child1 = YGNodeNewWithConfig(config);
|
|
||||||
YGNodeInsertChild(root, child0, 0);
|
|
||||||
YGNodeInsertChild(root, child1, 1);
|
|
||||||
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
|
|
||||||
YGConfigSetLogger(config, NULL);
|
|
||||||
YGNodeFreeRecursive(root);
|
|
||||||
|
|
||||||
const char* expected = "";
|
|
||||||
ASSERT_STREQ(expected, writeBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(YogaTest, logger_default_node_should_print_no_style_info) {
|
|
||||||
writeBuffer[0] = '\0';
|
|
||||||
const YGConfigRef config = YGConfigNew();
|
|
||||||
YGConfigSetLogger(config, _unmanagedLogger);
|
|
||||||
const YGNodeRef root = YGNodeNewWithConfig(config);
|
|
||||||
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
|
|
||||||
YGNodePrint(
|
|
||||||
root,
|
|
||||||
(YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle));
|
|
||||||
YGConfigSetLogger(config, NULL);
|
|
||||||
YGNodeFree(root);
|
|
||||||
|
|
||||||
const char* expected =
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" "
|
|
||||||
"></div>";
|
|
||||||
ASSERT_STREQ(expected, writeBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(YogaTest, logger_node_with_percentage_absolute_position_and_margin) {
|
|
||||||
writeBuffer[0] = '\0';
|
|
||||||
const YGConfigRef config = YGConfigNew();
|
|
||||||
YGConfigSetLogger(config, _unmanagedLogger);
|
|
||||||
const YGNodeRef root = YGNodeNewWithConfig(config);
|
|
||||||
YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute);
|
|
||||||
YGNodeStyleSetWidthPercent(root, 50);
|
|
||||||
YGNodeStyleSetHeightPercent(root, 75);
|
|
||||||
YGNodeStyleSetFlex(root, 1);
|
|
||||||
YGNodeStyleSetMargin(root, YGEdgeRight, 10);
|
|
||||||
YGNodeStyleSetMarginAuto(root, YGEdgeLeft);
|
|
||||||
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
|
|
||||||
YGNodePrint(
|
|
||||||
root,
|
|
||||||
(YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle));
|
|
||||||
YGConfigSetLogger(config, NULL);
|
|
||||||
YGNodeFree(root);
|
|
||||||
|
|
||||||
const char* expected =
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"flex: 1; "
|
|
||||||
"margin-left: auto; margin-right: 10px; width: 50%; height: 75%; "
|
|
||||||
"position: absolute; \" ></div>";
|
|
||||||
ASSERT_STREQ(expected, writeBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
TEST(YogaTest, logger_node_with_children_should_print_indented) {
|
|
||||||
writeBuffer[0] = '\0';
|
|
||||||
const YGConfigRef config = YGConfigNew();
|
|
||||||
YGConfigSetLogger(config, _unmanagedLogger);
|
|
||||||
const YGNodeRef root = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child0 = YGNodeNewWithConfig(config);
|
|
||||||
const YGNodeRef child1 = YGNodeNewWithConfig(config);
|
|
||||||
YGNodeInsertChild(root, child0, 0);
|
|
||||||
YGNodeInsertChild(root, child1, 1);
|
|
||||||
YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR);
|
|
||||||
YGNodePrint(
|
|
||||||
root,
|
|
||||||
(YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle));
|
|
||||||
YGConfigSetLogger(config, NULL);
|
|
||||||
YGNodeFreeRecursive(root);
|
|
||||||
|
|
||||||
const char* expected =
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" >\n "
|
|
||||||
"<div layout=\"width: 0; height: 0; top: 0; left: 0;\" style=\"\" "
|
|
||||||
"></div>\n <div layout=\"width: 0; height: 0; top: 0; left: 0;\" "
|
|
||||||
"style=\"\" ></div>\n</div>";
|
|
||||||
ASSERT_STREQ(expected, writeBuffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@@ -90,7 +90,3 @@ void YGConfigSetCloneNodeFunc(
|
|||||||
const YGCloneNodeFunc callback) {
|
const YGCloneNodeFunc callback) {
|
||||||
resolveRef(config)->setCloneNodeCallback(callback);
|
resolveRef(config)->setCloneNodeCallback(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
void YGConfigSetPrintTreeFlag(YGConfigRef config, bool enabled) {
|
|
||||||
resolveRef(config)->setShouldPrintTree(enabled);
|
|
||||||
}
|
|
||||||
|
@@ -155,9 +155,4 @@ YG_EXPORT void YGConfigSetCloneNodeFunc(
|
|||||||
YGConfigRef config,
|
YGConfigRef config,
|
||||||
YGCloneNodeFunc callback);
|
YGCloneNodeFunc callback);
|
||||||
|
|
||||||
/**
|
|
||||||
* Allows printing the Yoga node tree during layout for debugging purposes.
|
|
||||||
*/
|
|
||||||
YG_EXPORT void YGConfigSetPrintTreeFlag(YGConfigRef config, bool enabled);
|
|
||||||
|
|
||||||
YG_EXTERN_C_END
|
YG_EXTERN_C_END
|
||||||
|
@@ -11,7 +11,6 @@
|
|||||||
#include <yoga/algorithm/CalculateLayout.h>
|
#include <yoga/algorithm/CalculateLayout.h>
|
||||||
#include <yoga/debug/AssertFatal.h>
|
#include <yoga/debug/AssertFatal.h>
|
||||||
#include <yoga/debug/Log.h>
|
#include <yoga/debug/Log.h>
|
||||||
#include <yoga/debug/NodeToString.h>
|
|
||||||
#include <yoga/event/event.h>
|
#include <yoga/event/event.h>
|
||||||
#include <yoga/node/Node.h>
|
#include <yoga/node/Node.h>
|
||||||
|
|
||||||
@@ -330,12 +329,6 @@ void YGNodeSetAlwaysFormsContainingBlock(
|
|||||||
resolveRef(node)->setAlwaysFormsContainingBlock(alwaysFormsContainingBlock);
|
resolveRef(node)->setAlwaysFormsContainingBlock(alwaysFormsContainingBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
void YGNodePrint(const YGNodeConstRef node, const YGPrintOptions options) {
|
|
||||||
yoga::print(resolveRef(node), scopedEnum(options));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// TODO: This leaks internal details to the public API. Remove after removing
|
// TODO: This leaks internal details to the public API. Remove after removing
|
||||||
// ComponentKit usage of it.
|
// ComponentKit usage of it.
|
||||||
bool YGNodeCanUseCachedMeasurement(
|
bool YGNodeCanUseCachedMeasurement(
|
||||||
|
@@ -273,11 +273,6 @@ YG_EXPORT void YGNodeSetAlwaysFormsContainingBlock(
|
|||||||
YGNodeRef node,
|
YGNodeRef node,
|
||||||
bool alwaysFormsContainingBlock);
|
bool alwaysFormsContainingBlock);
|
||||||
|
|
||||||
/**
|
|
||||||
* Print a node to log output.
|
|
||||||
*/
|
|
||||||
YG_EXPORT void YGNodePrint(YGNodeConstRef node, YGPrintOptions options);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user