Implement java bindings for custom baseline function
Summary: Implement java bindings for custom baseline function Differential Revision: D4392516 fbshipit-source-id: 39cf6066f8e5982268becd87e54c9ab51fbf7a90
This commit is contained in:
committed by
Facebook Github Bot
parent
1782646723
commit
c04604dbc0
22
java/com/facebook/yoga/YogaBaselineFunction.java
Normal file
22
java/com/facebook/yoga/YogaBaselineFunction.java
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright (c) 2014-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under the BSD-style license found in the
|
||||
* LICENSE file in the root directory of this source tree. An additional grant
|
||||
* of patent rights can be found in the PATENTS file in the same directory.
|
||||
*/
|
||||
|
||||
package com.facebook.yoga;
|
||||
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
|
||||
@DoNotStrip
|
||||
public interface YogaBaselineFunction {
|
||||
/**
|
||||
* Return the baseline of the node in pixels. When no baseline function is set the baseline
|
||||
* default to the computed height of the node.
|
||||
*/
|
||||
@DoNotStrip
|
||||
float baseline(YogaNodeAPI node, float width, float height);
|
||||
}
|
@@ -52,6 +52,7 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
||||
private YogaNode mParent;
|
||||
private List<YogaNode> mChildren;
|
||||
private YogaMeasureFunction mMeasureFunction;
|
||||
private YogaBaselineFunction mBaselineFunction;
|
||||
private long mNativePointer;
|
||||
private Object mData;
|
||||
|
||||
@@ -623,6 +624,18 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
||||
YogaMeasureMode.values()[heightMode]);
|
||||
}
|
||||
|
||||
private native void jni_YGNodeSetHasBaselineFunc(long nativePointer, boolean hasMeasureFunc);
|
||||
@Override
|
||||
public void setBaselineFunction(YogaBaselineFunction baselineFunction) {
|
||||
mBaselineFunction = baselineFunction;
|
||||
jni_YGNodeSetHasBaselineFunc(mNativePointer, baselineFunction != null);
|
||||
}
|
||||
|
||||
@DoNotStrip
|
||||
public final float baseline(float width, float height) {
|
||||
return mBaselineFunction.baseline(this, width, height);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMeasureDefined() {
|
||||
return mMeasureFunction != null;
|
||||
|
@@ -18,6 +18,7 @@ public interface YogaNodeAPI<YogaNodeType extends YogaNodeAPI> {
|
||||
YogaNodeType getParent();
|
||||
int indexOf(YogaNodeType child);
|
||||
void setMeasureFunction(YogaMeasureFunction measureFunction);
|
||||
void setBaselineFunction(YogaBaselineFunction measureFunction);
|
||||
boolean isMeasureDefined();
|
||||
void calculateLayout();
|
||||
boolean isDirty();
|
||||
|
Reference in New Issue
Block a user