Merge branch 'master' of https://github.com/facebook/yoga
This commit is contained in:
83
.travis.yml
83
.travis.yml
@@ -10,33 +10,76 @@ osx_image: xcode8.2
|
|||||||
language: cpp
|
language: cpp
|
||||||
compiler: clang
|
compiler: clang
|
||||||
|
|
||||||
|
env:
|
||||||
|
- TARGET=c
|
||||||
|
- TARGET=java
|
||||||
|
- TARGET=net
|
||||||
|
- TARGET=ios
|
||||||
|
- TARGET=js
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- brew update
|
- brew update
|
||||||
- brew tap facebook/fb
|
- brew tap facebook/fb
|
||||||
- brew install buck
|
- brew install buck
|
||||||
- brew cask install java
|
|
||||||
- brew outdated xctool || brew upgrade xctool
|
|
||||||
- brew install mono
|
|
||||||
|
|
||||||
- export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)
|
# Java
|
||||||
- export PATH=$JAVA_HOME/bin:$PATH
|
- |
|
||||||
|
if [[ $TARGET = "java" ]]; then
|
||||||
|
brew cask install java;
|
||||||
|
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8);
|
||||||
|
export PATH=$JAVA_HOME/bin:$PATH;
|
||||||
|
fi
|
||||||
|
|
||||||
install:
|
# .NET
|
||||||
- cd javascript
|
- |
|
||||||
- npm install
|
if [[ $TARGET = "net" ]]; then
|
||||||
- cd $TRAVIS_BUILD_DIR
|
brew install mono;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# iOS
|
||||||
|
- |
|
||||||
|
if [[ $TARGET = "ios" ]]; then
|
||||||
|
brew upgrade xctool;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# JavaScript
|
||||||
|
- |
|
||||||
|
if [[ $TARGET = "js" ]]; then
|
||||||
|
cd javascript;
|
||||||
|
npm install;
|
||||||
|
fi
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- buck test //:yoga
|
# C
|
||||||
- buck test //java:java
|
- |
|
||||||
- buck test //YogaKit:YogaKitTests --config cxx.default_platform=iphonesimulator-x86_64
|
if [[ $TARGET = "c" ]]; then
|
||||||
- sh csharp/tests/Facebook.Yoga/test_macos.sh
|
buck test --verbose 0 //:yoga;
|
||||||
|
buck run --verbose 0 //benchmark:benchmark;
|
||||||
|
git checkout HEAD^;
|
||||||
|
buck run --verbose 0 //benchmark:benchmark;
|
||||||
|
fi
|
||||||
|
|
||||||
- cd javascript
|
# Java
|
||||||
- npm run test:all
|
- |
|
||||||
- npm run bench
|
if [[ $TARGET = "java" ]]; then
|
||||||
- cd $TRAVIS_BUILD_DIR
|
buck test --verbose 0 //java:java;
|
||||||
|
fi
|
||||||
|
|
||||||
- buck run //benchmark:benchmark
|
# .NET
|
||||||
- git checkout HEAD^
|
- |
|
||||||
- buck run //benchmark:benchmark
|
if [[ $TARGET = "net" ]]; then
|
||||||
|
sh csharp/tests/Facebook.Yoga/test_macos.sh;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# iOS
|
||||||
|
- |
|
||||||
|
if [[ $TARGET = "ios" ]]; then
|
||||||
|
buck test --verbose 0 //YogaKit:YogaKitTests --config cxx.default_platform=iphonesimulator-x86_64;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# JavaScript
|
||||||
|
- |
|
||||||
|
if [[ $TARGET = "js" ]]; then
|
||||||
|
npm run test:all;
|
||||||
|
npm run bench;
|
||||||
|
fi
|
||||||
|
@@ -1,4 +1,10 @@
|
|||||||
# Yoga [](https://travis-ci.org/facebook/yoga) [](http://cocoapods.org/pods/YogaKit) [](https://www.npmjs.com/package/yoga-layout)
|
# Yoga [](http://cocoapods.org/pods/YogaKit) [](https://www.npmjs.com/package/yoga-layout)
|
||||||
|
|
||||||
|
[](https://travis-ci.org/facebook/yoga)
|
||||||
|
[](https://travis-ci.org/facebook/yoga)
|
||||||
|
[](https://travis-ci.org/facebook/yoga)
|
||||||
|
[](https://travis-ci.org/facebook/yoga)
|
||||||
|
[](https://travis-ci.org/facebook/yoga)
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
Yoga builds with [buck](https://buckbuild.com). Make sure you install buck before contributing to Yoga. Yoga's main implementation is in C, with bindings to supported languages and frameworks. When making changes to Yoga please ensure the changes are also propagated to these bindings when applicable.
|
Yoga builds with [buck](https://buckbuild.com). Make sure you install buck before contributing to Yoga. Yoga's main implementation is in C, with bindings to supported languages and frameworks. When making changes to Yoga please ensure the changes are also propagated to these bindings when applicable.
|
||||||
|
46
YogaKit/CHANGELOG.md
Normal file
46
YogaKit/CHANGELOG.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# CHANGELOG
|
||||||
|
|
||||||
|
The changelog for `YogaKit`.
|
||||||
|
|
||||||
|
1.2.0 (**upcoming release**)
|
||||||
|
-----
|
||||||
|
|
||||||
|
### Breaking Changes
|
||||||
|
|
||||||
|
- `applyLayout()` has now been changed to `applyLayout(preservingOrigin:)`.
|
||||||
|
|
||||||
|
- Computed properties are no longer reflected in getter's of the affected properties.
|
||||||
|
```swift
|
||||||
|
// OLD
|
||||||
|
view.yoga.margin = 10
|
||||||
|
view.yoga.marginTop // 10
|
||||||
|
view.yoga.marginLeft // 10
|
||||||
|
|
||||||
|
// NEW
|
||||||
|
view.yoga.margin = 10
|
||||||
|
view.yoga.marginTop // 0
|
||||||
|
view.yoga.marginLeft // 0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
- Pixel Rounding now uses `roundf()` instead of `round()`.
|
||||||
|
|
||||||
|
- There is now a method that allows "bulk" updates to YGLayout.
|
||||||
|
```objc
|
||||||
|
[view configureLayoutWithBlock:^(YGLayout *layout) {
|
||||||
|
layout.isEnabled = YES;
|
||||||
|
layout.width = 50;
|
||||||
|
layout.height = 50;
|
||||||
|
}];
|
||||||
|
```
|
||||||
|
|
||||||
|
```swift
|
||||||
|
view.configureLayout { (layout) in
|
||||||
|
layout.isEnabled = true
|
||||||
|
layout.width = 50
|
||||||
|
layout.height = 50
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- Added new `isDirty` property, and make `markDirty` a little more performant.
|
@@ -8,7 +8,7 @@
|
|||||||
YogaKit is available to install via [CocoaPods](https://cocoapods.org/).
|
YogaKit is available to install via [CocoaPods](https://cocoapods.org/).
|
||||||
|
|
||||||
```
|
```
|
||||||
pod 'YogaKit', '~> 1.0.2'
|
pod 'YogaKit', '~> 1.1'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
@@ -10,8 +10,24 @@
|
|||||||
#import "YGLayout.h"
|
#import "YGLayout.h"
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
|
typedef void (^YGLayoutConfigurationBlock)(YGLayout *);
|
||||||
|
|
||||||
@interface UIView (Yoga)
|
@interface UIView (Yoga)
|
||||||
|
|
||||||
|
/**
|
||||||
|
The YGLayout that is attached to this view. It is lazily created.
|
||||||
|
*/
|
||||||
@property (nonatomic, readonly, strong) YGLayout *yoga;
|
@property (nonatomic, readonly, strong) YGLayout *yoga;
|
||||||
|
|
||||||
|
/**
|
||||||
|
In ObjC land, every time you access `view.yoga.*` you are adding another `objc_msgSend`
|
||||||
|
to your code. If you plan on making multiple changes to YGLayout, it's more performant
|
||||||
|
to use this method, which uses a single objc_msgSend call.
|
||||||
|
*/
|
||||||
|
- (void)configureLayoutWithBlock:(YGLayoutConfigurationBlock)block NS_SWIFT_NAME(configureLayout(block:));
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
NS_ASSUME_NONNULL_END
|
||||||
|
@@ -26,5 +26,11 @@ static const void *kYGYogaAssociatedKey = &kYGYogaAssociatedKey;
|
|||||||
return yoga;
|
return yoga;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)configureLayoutWithBlock:(YGLayoutConfigurationBlock)block
|
||||||
|
{
|
||||||
|
if (block != nil) {
|
||||||
|
block(self.yoga);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -89,9 +89,10 @@
|
|||||||
@property (nonatomic, readonly, assign) YGDirection resolvedDirection;
|
@property (nonatomic, readonly, assign) YGDirection resolvedDirection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Perform a layout calculation and update the frames of the views in the hierarchy with the results
|
Perform a layout calculation and update the frames of the views in the hierarchy with the results.
|
||||||
|
If the origin is not preserved, the root view's layout results will applied from {0,0}.
|
||||||
*/
|
*/
|
||||||
- (void)applyLayout NS_SWIFT_NAME(applyLayout());
|
- (void)applyLayoutPreservingOrigin:(BOOL)preserveOrigin NS_SWIFT_NAME(applyLayout(preservingOrigin:));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Returns the size of the view if no constraints were given. This could equivalent to calling [self
|
Returns the size of the view if no constraints were given. This could equivalent to calling [self
|
||||||
@@ -110,6 +111,12 @@
|
|||||||
*/
|
*/
|
||||||
@property (nonatomic, readonly, assign) BOOL isLeaf;
|
@property (nonatomic, readonly, assign) BOOL isLeaf;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return's a BOOL indicating if a view is dirty. When a node is dirty
|
||||||
|
it usually indicates that it will be remeasured on the next layout pass.
|
||||||
|
*/
|
||||||
|
@property (nonatomic, readonly, assign) BOOL isDirty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Mark that a view's layout needs to be recalculated. Only works for leaf views.
|
Mark that a view's layout needs to be recalculated. Only works for leaf views.
|
||||||
*/
|
*/
|
||||||
|
@@ -43,12 +43,6 @@
|
|||||||
return YGNodeStyleGet##property(self.node, edge); \
|
return YGNodeStyleGet##property(self.node, edge); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define YG_SHORTHAND_EDGE_PROPERTY_GETTER(lowercased_name) \
|
|
||||||
- (CGFloat)lowercased_name \
|
|
||||||
{ \
|
|
||||||
return YGUndefined; \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge) \
|
#define YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge) \
|
||||||
- (void)set##capitalized_name:(CGFloat)lowercased_name \
|
- (void)set##capitalized_name:(CGFloat)lowercased_name \
|
||||||
{ \
|
{ \
|
||||||
@@ -59,10 +53,6 @@
|
|||||||
YG_EDGE_PROPERTY_GETTER(lowercased_name, capitalized_name, property, edge) \
|
YG_EDGE_PROPERTY_GETTER(lowercased_name, capitalized_name, property, edge) \
|
||||||
YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
||||||
|
|
||||||
#define YG_SHORTHAND_EDGE_PROPERTY(lowercased_name, capitalized_name, property, edge) \
|
|
||||||
YG_SHORTHAND_EDGE_PROPERTY_GETTER(lowercased_name) \
|
|
||||||
YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
|
||||||
|
|
||||||
#define YG_VALUE_EDGE_PROPERTY_GETTER(objc_lowercased_name, objc_capitalized_name, c_name, edge) \
|
#define YG_VALUE_EDGE_PROPERTY_GETTER(objc_lowercased_name, objc_capitalized_name, c_name, edge) \
|
||||||
- (CGFloat)objc_lowercased_name \
|
- (CGFloat)objc_lowercased_name \
|
||||||
{ \
|
{ \
|
||||||
@@ -84,10 +74,6 @@ YG_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
|||||||
YG_VALUE_EDGE_PROPERTY_GETTER(lowercased_name, capitalized_name, property, edge) \
|
YG_VALUE_EDGE_PROPERTY_GETTER(lowercased_name, capitalized_name, property, edge) \
|
||||||
YG_VALUE_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
YG_VALUE_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
||||||
|
|
||||||
#define YG_VALUE_SHORTHAND_EDGE_PROPERTY(lowercased_name, capitalized_name, property, edge) \
|
|
||||||
YG_SHORTHAND_EDGE_PROPERTY_GETTER(lowercased_name) \
|
|
||||||
YG_VALUE_EDGE_PROPERTY_SETTER(lowercased_name, capitalized_name, property, edge)
|
|
||||||
|
|
||||||
#define YG_VALUE_EDGES_PROPERTIES(lowercased_name, capitalized_name) \
|
#define YG_VALUE_EDGES_PROPERTIES(lowercased_name, capitalized_name) \
|
||||||
YG_VALUE_EDGE_PROPERTY(lowercased_name##Left, capitalized_name##Left, capitalized_name, YGEdgeLeft) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Left, capitalized_name##Left, capitalized_name, YGEdgeLeft) \
|
||||||
YG_VALUE_EDGE_PROPERTY(lowercased_name##Top, capitalized_name##Top, capitalized_name, YGEdgeTop) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Top, capitalized_name##Top, capitalized_name, YGEdgeTop) \
|
||||||
@@ -95,9 +81,9 @@ YG_VALUE_EDGE_PROPERTY(lowercased_name##Right, capitalized_name##Right, capitali
|
|||||||
YG_VALUE_EDGE_PROPERTY(lowercased_name##Bottom, capitalized_name##Bottom, capitalized_name, YGEdgeBottom) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Bottom, capitalized_name##Bottom, capitalized_name, YGEdgeBottom) \
|
||||||
YG_VALUE_EDGE_PROPERTY(lowercased_name##Start, capitalized_name##Start, capitalized_name, YGEdgeStart) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Start, capitalized_name##Start, capitalized_name, YGEdgeStart) \
|
||||||
YG_VALUE_EDGE_PROPERTY(lowercased_name##End, capitalized_name##End, capitalized_name, YGEdgeEnd) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##End, capitalized_name##End, capitalized_name, YGEdgeEnd) \
|
||||||
YG_VALUE_SHORTHAND_EDGE_PROPERTY(lowercased_name##Horizontal, capitalized_name##Horizontal, capitalized_name, YGEdgeHorizontal) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Horizontal, capitalized_name##Horizontal, capitalized_name, YGEdgeHorizontal) \
|
||||||
YG_VALUE_SHORTHAND_EDGE_PROPERTY(lowercased_name##Vertical, capitalized_name##Vertical, capitalized_name, YGEdgeVertical) \
|
YG_VALUE_EDGE_PROPERTY(lowercased_name##Vertical, capitalized_name##Vertical, capitalized_name, YGEdgeVertical) \
|
||||||
YG_VALUE_SHORTHAND_EDGE_PROPERTY(lowercased_name, capitalized_name, capitalized_name, YGEdgeAll)
|
YG_VALUE_EDGE_PROPERTY(lowercased_name, capitalized_name, capitalized_name, YGEdgeAll)
|
||||||
|
|
||||||
@interface YGLayout ()
|
@interface YGLayout ()
|
||||||
|
|
||||||
@@ -134,11 +120,26 @@ YG_VALUE_SHORTHAND_EDGE_PROPERTY(lowercased_name, capitalized_name, capitalized_
|
|||||||
YGNodeFree(self.node);
|
YGNodeFree(self.node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)isDirty
|
||||||
|
{
|
||||||
|
return YGNodeIsDirty(self.node);
|
||||||
|
}
|
||||||
|
|
||||||
- (void)markDirty
|
- (void)markDirty
|
||||||
{
|
{
|
||||||
if (self.isLeaf) {
|
if (self.isDirty || !self.isLeaf) {
|
||||||
YGNodeMarkDirty(self.node);
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Yoga is not happy if we try to mark a node as "dirty" before we have set
|
||||||
|
// the measure function. Since we already know that this is a leaf,
|
||||||
|
// this *should* be fine. Forgive me Hack Gods.
|
||||||
|
const YGNodeRef node = self.node;
|
||||||
|
if (YGNodeGetMeasureFunc(node) == NULL) {
|
||||||
|
YGNodeSetMeasureFunc(node, YGMeasureView);
|
||||||
|
}
|
||||||
|
|
||||||
|
YGNodeMarkDirty(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSUInteger)numberOfChildren
|
- (NSUInteger)numberOfChildren
|
||||||
@@ -202,7 +203,7 @@ YG_EDGE_PROPERTY(borderRightWidth, BorderRightWidth, Border, YGEdgeRight)
|
|||||||
YG_EDGE_PROPERTY(borderBottomWidth, BorderBottomWidth, Border, YGEdgeBottom)
|
YG_EDGE_PROPERTY(borderBottomWidth, BorderBottomWidth, Border, YGEdgeBottom)
|
||||||
YG_EDGE_PROPERTY(borderStartWidth, BorderStartWidth, Border, YGEdgeStart)
|
YG_EDGE_PROPERTY(borderStartWidth, BorderStartWidth, Border, YGEdgeStart)
|
||||||
YG_EDGE_PROPERTY(borderEndWidth, BorderEndWidth, Border, YGEdgeEnd)
|
YG_EDGE_PROPERTY(borderEndWidth, BorderEndWidth, Border, YGEdgeEnd)
|
||||||
YG_SHORTHAND_EDGE_PROPERTY(borderWidth, BorderWidth, Border, YGEdgeAll)
|
YG_EDGE_PROPERTY(borderWidth, BorderWidth, Border, YGEdgeAll)
|
||||||
|
|
||||||
YG_VALUE_PROPERTY(width, Width)
|
YG_VALUE_PROPERTY(width, Width)
|
||||||
YG_VALUE_PROPERTY(height, Height)
|
YG_VALUE_PROPERTY(height, Height)
|
||||||
@@ -222,7 +223,13 @@ YG_PROPERTY(CGFloat, aspectRatio, AspectRatio)
|
|||||||
- (void)applyLayout
|
- (void)applyLayout
|
||||||
{
|
{
|
||||||
[self calculateLayoutWithSize:self.view.bounds.size];
|
[self calculateLayoutWithSize:self.view.bounds.size];
|
||||||
YGApplyLayoutToViewHierarchy(self.view, YES);
|
YGApplyLayoutToViewHierarchy(self.view, NO);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)applyLayoutPreservingOrigin:(BOOL)preserveOrigin
|
||||||
|
{
|
||||||
|
[self calculateLayoutWithSize:self.view.bounds.size];
|
||||||
|
YGApplyLayoutToViewHierarchy(self.view, preserveOrigin);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (CGSize)intrinsicSize
|
- (CGSize)intrinsicSize
|
||||||
@@ -361,7 +368,7 @@ static CGFloat YGRoundPixelValue(CGFloat value)
|
|||||||
scale = [UIScreen mainScreen].scale;
|
scale = [UIScreen mainScreen].scale;
|
||||||
});
|
});
|
||||||
|
|
||||||
return round(value * scale) / scale;
|
return roundf(value * scale) / scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void YGApplyLayoutToViewHierarchy(UIView *view, BOOL preserveOrigin)
|
static void YGApplyLayoutToViewHierarchy(UIView *view, BOOL preserveOrigin)
|
||||||
|
@@ -18,6 +18,25 @@
|
|||||||
|
|
||||||
@implementation YogaKitTests
|
@implementation YogaKitTests
|
||||||
|
|
||||||
|
- (void)testConfigureLayoutIsNoOpWithNilBlock
|
||||||
|
{
|
||||||
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
XCTAssertNoThrow([view configureLayoutWithBlock:nil]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testConfigureLayoutBlockWorksWithValidBlock
|
||||||
|
{
|
||||||
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
[view configureLayoutWithBlock:^(YGLayout *layout){
|
||||||
|
XCTAssertNotNil(layout);
|
||||||
|
layout.isEnabled = YES;
|
||||||
|
layout.width = 25;
|
||||||
|
}];
|
||||||
|
|
||||||
|
XCTAssertTrue(view.yoga.isEnabled);
|
||||||
|
XCTAssertEqual(view.yoga.width, 25);
|
||||||
|
}
|
||||||
|
|
||||||
- (void)testNodesAreDeallocedWithSingleView
|
- (void)testNodesAreDeallocedWithSingleView
|
||||||
{
|
{
|
||||||
__weak YGLayout *layoutRef = nil;
|
__weak YGLayout *layoutRef = nil;
|
||||||
@@ -109,6 +128,49 @@
|
|||||||
XCTAssertEqual(longTextLabelSize.width + textBadgeView.yoga.intrinsicSize.width, containerSize.width);
|
XCTAssertEqual(longTextLabelSize.width + textBadgeView.yoga.intrinsicSize.width, containerSize.width);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (void)testPreservingOrigin
|
||||||
|
{
|
||||||
|
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0,0,50,75)];
|
||||||
|
container.yoga.isEnabled = YES;
|
||||||
|
|
||||||
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
view.yoga.isEnabled = YES;
|
||||||
|
view.yoga.flexBasis = 0;
|
||||||
|
view.yoga.flexGrow = 1;
|
||||||
|
[container addSubview:view];
|
||||||
|
|
||||||
|
UIView *view2 = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
view2.yoga.isEnabled = YES;
|
||||||
|
view2.yoga.marginTop = 25;
|
||||||
|
view2.yoga.flexBasis = 0;
|
||||||
|
view2.yoga.flexGrow = 1;
|
||||||
|
[container addSubview:view2];
|
||||||
|
|
||||||
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
XCTAssertEqual(50, view2.frame.origin.y);
|
||||||
|
|
||||||
|
[view2.yoga applyLayoutPreservingOrigin:NO];
|
||||||
|
XCTAssertEqual(25, view2.frame.origin.y);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)testMarkingDirtyOnlyWorksOnLeafNodes
|
||||||
|
{
|
||||||
|
UIView *container = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
container.yoga.isEnabled = YES;
|
||||||
|
|
||||||
|
UIView *subview = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
subview.yoga.isEnabled = YES;
|
||||||
|
[container addSubview:subview];
|
||||||
|
|
||||||
|
XCTAssertFalse(container.yoga.isDirty);
|
||||||
|
[container.yoga markDirty];
|
||||||
|
XCTAssertFalse(container.yoga.isDirty);
|
||||||
|
|
||||||
|
XCTAssertFalse(subview.yoga.isDirty);
|
||||||
|
[subview.yoga markDirty];
|
||||||
|
XCTAssertTrue(subview.yoga.isDirty);
|
||||||
|
}
|
||||||
|
|
||||||
- (void)testThatMarkingLeafsAsDirtyWillTriggerASizeRecalculation
|
- (void)testThatMarkingLeafsAsDirtyWillTriggerASizeRecalculation
|
||||||
{
|
{
|
||||||
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 500, 50)];
|
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 500, 50)];
|
||||||
@@ -116,22 +178,22 @@
|
|||||||
container.yoga.flexDirection = YGFlexDirectionRow;
|
container.yoga.flexDirection = YGFlexDirectionRow;
|
||||||
container.yoga.alignItems = YGAlignFlexStart;
|
container.yoga.alignItems = YGAlignFlexStart;
|
||||||
|
|
||||||
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
|
UILabel *view = [[UILabel alloc] initWithFrame:CGRectZero];
|
||||||
label.text = @"This is a short text.";
|
view.text = @"This is a short text.";
|
||||||
label.numberOfLines = 1;
|
view.numberOfLines = 1;
|
||||||
label.yoga.isEnabled = YES;
|
view.yoga.isEnabled = YES;
|
||||||
[container addSubview:label];
|
[container addSubview:view];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
CGSize const labelSizeAfterFirstPass = label.frame.size;
|
CGSize const viewSizeAfterFirstPass = view.frame.size;
|
||||||
|
|
||||||
label.text = @"This is a slightly longer text.";
|
view.text = @"This is a slightly longer text.";
|
||||||
XCTAssertTrue(CGSizeEqualToSize(label.frame.size, labelSizeAfterFirstPass));
|
XCTAssertTrue(CGSizeEqualToSize(view.frame.size, viewSizeAfterFirstPass));
|
||||||
|
|
||||||
[label.yoga markDirty];
|
[view.yoga markDirty];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
XCTAssertFalse(CGSizeEqualToSize(label.frame.size, labelSizeAfterFirstPass));
|
XCTAssertFalse(CGSizeEqualToSize(view.frame.size, viewSizeAfterFirstPass));
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)testFrameAndOriginPlacement
|
- (void)testFrameAndOriginPlacement
|
||||||
@@ -157,7 +219,7 @@
|
|||||||
subview3.yoga.flexGrow = 1;
|
subview3.yoga.flexGrow = 1;
|
||||||
[container addSubview:subview3];
|
[container addSubview:subview3];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertEqualWithAccuracy(subview2.frame.origin.x, CGRectGetMaxX(subview1.frame), FLT_EPSILON);
|
XCTAssertEqualWithAccuracy(subview2.frame.origin.x, CGRectGetMaxX(subview1.frame), FLT_EPSILON);
|
||||||
XCTAssertEqualWithAccuracy(subview3.frame.origin.x, CGRectGetMaxX(subview2.frame), FLT_EPSILON);
|
XCTAssertEqualWithAccuracy(subview3.frame.origin.x, CGRectGetMaxX(subview2.frame), FLT_EPSILON);
|
||||||
@@ -193,7 +255,7 @@
|
|||||||
subview3.yoga.flexGrow = 1;
|
subview3.yoga.flexGrow = 1;
|
||||||
[container addSubview:subview3];
|
[container addSubview:subview3];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview1.frame, CGRectMake(0, 0, 100, 50)));
|
XCTAssertTrue(CGRectEqualToRect(subview1.frame, CGRectMake(0, 0, 100, 50)));
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview2.frame, CGRectMake(100, 0, 100, 50)));
|
XCTAssertTrue(CGRectEqualToRect(subview2.frame, CGRectMake(100, 0, 100, 50)));
|
||||||
@@ -201,7 +263,7 @@
|
|||||||
|
|
||||||
[container exchangeSubviewAtIndex:2 withSubviewAtIndex:0];
|
[container exchangeSubviewAtIndex:2 withSubviewAtIndex:0];
|
||||||
subview2.yoga.isIncludedInLayout = NO;
|
subview2.yoga.isIncludedInLayout = NO;
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview3.frame, CGRectMake(0, 0, 150, 50)));
|
XCTAssertTrue(CGRectEqualToRect(subview3.frame, CGRectMake(0, 0, 150, 50)));
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview1.frame, CGRectMake(150, 0, 150, 50)));
|
XCTAssertTrue(CGRectEqualToRect(subview1.frame, CGRectMake(150, 0, 150, 50)));
|
||||||
@@ -233,14 +295,14 @@
|
|||||||
subview3.yoga.flexGrow = 1;
|
subview3.yoga.flexGrow = 1;
|
||||||
[container addSubview:subview3];
|
[container addSubview:subview3];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
for (UIView *subview in container.subviews) {
|
for (UIView *subview in container.subviews) {
|
||||||
XCTAssertEqual(subview.bounds.size.width, 100);
|
XCTAssertEqual(subview.bounds.size.width, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
subview3.yoga.isIncludedInLayout = NO;
|
subview3.yoga.isIncludedInLayout = NO;
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertEqual(subview1.bounds.size.width, 150);
|
XCTAssertEqual(subview1.bounds.size.width, 150);
|
||||||
XCTAssertEqual(subview2.bounds.size.width, 150);
|
XCTAssertEqual(subview2.bounds.size.width, 150);
|
||||||
@@ -270,11 +332,11 @@
|
|||||||
subview3.yoga.isIncludedInLayout = YES;
|
subview3.yoga.isIncludedInLayout = YES;
|
||||||
[container addSubview:subview3];
|
[container addSubview:subview3];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
XCTAssertEqual(container.yoga.numberOfChildren, 1);
|
XCTAssertEqual(container.yoga.numberOfChildren, 1);
|
||||||
|
|
||||||
subview2.yoga.isIncludedInLayout = YES;
|
subview2.yoga.isIncludedInLayout = YES;
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
XCTAssertEqual(container.yoga.numberOfChildren, 2);
|
XCTAssertEqual(container.yoga.numberOfChildren, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,14 +362,14 @@
|
|||||||
subview3.yoga.isIncludedInLayout = NO;
|
subview3.yoga.isIncludedInLayout = NO;
|
||||||
[container addSubview:subview3];
|
[container addSubview:subview3];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertEqual(subview1.bounds.size.width, 150);
|
XCTAssertEqual(subview1.bounds.size.width, 150);
|
||||||
XCTAssertEqual(subview2.bounds.size.width, 150);
|
XCTAssertEqual(subview2.bounds.size.width, 150);
|
||||||
XCTAssertEqual(subview3.bounds.size.width, 0);
|
XCTAssertEqual(subview3.bounds.size.width, 0);
|
||||||
|
|
||||||
subview3.yoga.isIncludedInLayout = YES;
|
subview3.yoga.isIncludedInLayout = YES;
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertEqual(subview1.bounds.size.width, 100);
|
XCTAssertEqual(subview1.bounds.size.width, 100);
|
||||||
XCTAssertEqual(subview2.bounds.size.width, 100);
|
XCTAssertEqual(subview2.bounds.size.width, 100);
|
||||||
@@ -361,7 +423,7 @@
|
|||||||
someView.yoga.flexGrow = 1;
|
someView.yoga.flexGrow = 1;
|
||||||
[view addSubview:someView];
|
[view addSubview:someView];
|
||||||
}
|
}
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
// Add the same amount of new views, reapply layout.
|
// Add the same amount of new views, reapply layout.
|
||||||
for (UIView *view in @[subview1, subview2]) {
|
for (UIView *view in @[subview1, subview2]) {
|
||||||
@@ -370,7 +432,7 @@
|
|||||||
someView.yoga.flexGrow = 1;
|
someView.yoga.flexGrow = 1;
|
||||||
[view addSubview:someView];
|
[view addSubview:someView];
|
||||||
}
|
}
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
|
|
||||||
XCTAssertEqual(subview1.bounds.size.width, 100);
|
XCTAssertEqual(subview1.bounds.size.width, 100);
|
||||||
XCTAssertEqual(subview1.bounds.size.height, 25);
|
XCTAssertEqual(subview1.bounds.size.height, 25);
|
||||||
@@ -406,9 +468,9 @@
|
|||||||
subview2.yoga.isEnabled = YES;
|
subview2.yoga.isEnabled = YES;
|
||||||
[subview1 addSubview:subview2];
|
[subview1 addSubview:subview2];
|
||||||
|
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
[subview2 removeFromSuperview];
|
[subview2 removeFromSuperview];
|
||||||
[container.yoga applyLayout];
|
[container.yoga applyLayoutPreservingOrigin:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)testPositionalPropertiesWork
|
- (void)testPositionalPropertiesWork
|
||||||
@@ -451,39 +513,27 @@
|
|||||||
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
|
||||||
view.yoga.margin = 1;
|
view.yoga.margin = 1;
|
||||||
XCTAssertEqual(view.yoga.marginLeft, 1);
|
XCTAssertEqual(view.yoga.margin, 1);
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeLeft).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginLeft));
|
||||||
XCTAssertEqual(view.yoga.marginRight, 1);
|
XCTAssertTrue(isnan(view.yoga.marginRight));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeRight).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginStart));
|
||||||
XCTAssertEqual(view.yoga.marginStart, 1);
|
XCTAssertTrue(isnan(view.yoga.marginEnd));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeStart).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginTop));
|
||||||
XCTAssertEqual(view.yoga.marginEnd, 1);
|
XCTAssertTrue(isnan(view.yoga.marginBottom));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeEnd).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.marginTop, 1);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeTop).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.marginBottom, 1);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeBottom).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.marginHorizontal));
|
XCTAssertTrue(isnan(view.yoga.marginHorizontal));
|
||||||
XCTAssertTrue(isnan(view.yoga.marginVertical));
|
XCTAssertTrue(isnan(view.yoga.marginVertical));
|
||||||
XCTAssertTrue(isnan(view.yoga.margin));
|
|
||||||
|
|
||||||
view.yoga.marginHorizontal = 2;
|
view.yoga.marginHorizontal = 2;
|
||||||
XCTAssertEqual(view.yoga.marginLeft, 2);
|
XCTAssertEqual(view.yoga.marginHorizontal, 2);
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeLeft).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginLeft));
|
||||||
XCTAssertEqual(view.yoga.marginRight, 2);
|
XCTAssertTrue(isnan(view.yoga.marginRight));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeRight).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginStart));
|
||||||
XCTAssertEqual(view.yoga.marginStart, 2);
|
XCTAssertTrue(isnan(view.yoga.marginEnd));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeStart).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.marginEnd, 2);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeEnd).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.marginHorizontal));
|
|
||||||
|
|
||||||
view.yoga.marginVertical = 3;
|
view.yoga.marginVertical = 3;
|
||||||
XCTAssertEqual(view.yoga.marginTop, 3);
|
XCTAssertEqual(view.yoga.marginVertical, 3);
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeTop).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.marginTop));
|
||||||
XCTAssertEqual(view.yoga.marginBottom, 3);
|
XCTAssertTrue(isnan(view.yoga.marginBottom));
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeBottom).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.marginVertical));
|
|
||||||
|
|
||||||
view.yoga.marginLeft = 4;
|
view.yoga.marginLeft = 4;
|
||||||
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeLeft).value, 4);
|
XCTAssertEqual(YGNodeStyleGetMargin(view.yoga.node, YGEdgeLeft).value, 4);
|
||||||
@@ -521,39 +571,27 @@
|
|||||||
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
|
||||||
view.yoga.padding = 1;
|
view.yoga.padding = 1;
|
||||||
XCTAssertEqual(view.yoga.paddingLeft, 1);
|
XCTAssertEqual(view.yoga.padding, 1);
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeLeft).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingLeft));
|
||||||
XCTAssertEqual(view.yoga.paddingRight, 1);
|
XCTAssertTrue(isnan(view.yoga.paddingRight));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeRight).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingStart));
|
||||||
XCTAssertEqual(view.yoga.paddingStart, 1);
|
XCTAssertTrue(isnan(view.yoga.paddingEnd));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeStart).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingTop));
|
||||||
XCTAssertEqual(view.yoga.paddingEnd, 1);
|
XCTAssertTrue(isnan(view.yoga.paddingBottom));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeEnd).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.paddingTop, 1);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeTop).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.paddingBottom, 1);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeBottom).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.paddingHorizontal));
|
XCTAssertTrue(isnan(view.yoga.paddingHorizontal));
|
||||||
XCTAssertTrue(isnan(view.yoga.paddingVertical));
|
XCTAssertTrue(isnan(view.yoga.paddingVertical));
|
||||||
XCTAssertTrue(isnan(view.yoga.padding));
|
|
||||||
|
|
||||||
view.yoga.paddingHorizontal = 2;
|
view.yoga.paddingHorizontal = 2;
|
||||||
XCTAssertEqual(view.yoga.paddingLeft, 2);
|
XCTAssertEqual(view.yoga.paddingHorizontal, 2);
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeLeft).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingLeft));
|
||||||
XCTAssertEqual(view.yoga.paddingRight, 2);
|
XCTAssertTrue(isnan(view.yoga.paddingRight));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeRight).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingStart));
|
||||||
XCTAssertEqual(view.yoga.paddingStart, 2);
|
XCTAssertTrue(isnan(view.yoga.paddingEnd));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeStart).unit, YGUnitPixel);
|
|
||||||
XCTAssertEqual(view.yoga.paddingEnd, 2);
|
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeEnd).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.paddingHorizontal));
|
|
||||||
|
|
||||||
view.yoga.paddingVertical = 3;
|
view.yoga.paddingVertical = 3;
|
||||||
XCTAssertEqual(view.yoga.paddingTop, 3);
|
XCTAssertEqual(view.yoga.paddingVertical, 3);
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeTop).unit, YGUnitPixel);
|
XCTAssertTrue(isnan(view.yoga.paddingTop));
|
||||||
XCTAssertEqual(view.yoga.paddingBottom, 3);
|
XCTAssertTrue(isnan(view.yoga.paddingBottom));
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeBottom).unit, YGUnitPixel);
|
|
||||||
XCTAssertTrue(isnan(view.yoga.paddingVertical));
|
|
||||||
|
|
||||||
view.yoga.paddingLeft = 4;
|
view.yoga.paddingLeft = 4;
|
||||||
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeLeft).value, 4);
|
XCTAssertEqual(YGNodeStyleGetPadding(view.yoga.node, YGEdgeLeft).value, 4);
|
||||||
@@ -591,13 +629,13 @@
|
|||||||
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
UIView *view = [[UIView alloc] initWithFrame:CGRectZero];
|
||||||
|
|
||||||
view.yoga.borderWidth = 1;
|
view.yoga.borderWidth = 1;
|
||||||
XCTAssertEqual(view.yoga.borderLeftWidth, 1);
|
XCTAssertEqual(view.yoga.borderWidth, 1);
|
||||||
XCTAssertEqual(view.yoga.borderRightWidth, 1);
|
XCTAssertTrue(isnan(view.yoga.borderLeftWidth));
|
||||||
XCTAssertEqual(view.yoga.borderStartWidth, 1);
|
XCTAssertTrue(isnan(view.yoga.borderRightWidth));
|
||||||
XCTAssertEqual(view.yoga.borderEndWidth, 1);
|
XCTAssertTrue(isnan(view.yoga.borderStartWidth));
|
||||||
XCTAssertEqual(view.yoga.borderTopWidth, 1);
|
XCTAssertTrue(isnan(view.yoga.borderEndWidth));
|
||||||
XCTAssertEqual(view.yoga.borderBottomWidth, 1);
|
XCTAssertTrue(isnan(view.yoga.borderTopWidth));
|
||||||
XCTAssertTrue(isnan(view.yoga.borderWidth));
|
XCTAssertTrue(isnan(view.yoga.borderBottomWidth));
|
||||||
|
|
||||||
view.yoga.borderLeftWidth = 2;
|
view.yoga.borderLeftWidth = 2;
|
||||||
XCTAssertEqual(view.yoga.borderLeftWidth, 2);
|
XCTAssertEqual(view.yoga.borderLeftWidth, 2);
|
||||||
@@ -618,39 +656,4 @@
|
|||||||
XCTAssertEqual(view.yoga.borderEndWidth, 7);
|
XCTAssertEqual(view.yoga.borderEndWidth, 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)testOriginIsPreservedOnRootOfLayout {
|
|
||||||
const CGSize containerSize = CGSizeMake(200, 50);
|
|
||||||
|
|
||||||
UIView *container = [[UIView alloc] initWithFrame:CGRectMake(10, 10, containerSize.width, containerSize.height)];
|
|
||||||
container.yoga.isEnabled = YES;
|
|
||||||
container.yoga.flexDirection = YGFlexDirectionRow;
|
|
||||||
|
|
||||||
UIView *subview1 = [[UIView alloc] initWithFrame:CGRectZero];
|
|
||||||
subview1.yoga.isEnabled = YES;
|
|
||||||
subview1.yoga.flexGrow = 1;
|
|
||||||
[container addSubview:subview1];
|
|
||||||
|
|
||||||
UIView *subview2 = [[UIView alloc] initWithFrame:CGRectZero];
|
|
||||||
subview2.yoga.isEnabled = YES;
|
|
||||||
subview2.yoga.flexGrow = 1;
|
|
||||||
subview2.yoga.flexDirection = YGFlexDirectionColumn;
|
|
||||||
subview2.yoga.marginLeft = 10;
|
|
||||||
[container addSubview:subview2];
|
|
||||||
[container.yoga applyLayout];
|
|
||||||
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(container.frame, CGRectMake(10, 10, 200, 50)));
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview1.frame, CGRectMake(0, 0, 95, 50)));
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview2.frame, CGRectMake(105, 0, 95, 50)));
|
|
||||||
|
|
||||||
UIView *subview3 = [[UIView alloc] initWithFrame:CGRectZero];
|
|
||||||
subview3.yoga.isEnabled = YES;
|
|
||||||
subview3.yoga.alignSelf = YGAlignFlexEnd;
|
|
||||||
subview3.yoga.height = 50;
|
|
||||||
[subview2 addSubview:subview3];
|
|
||||||
[subview2.yoga applyLayout];
|
|
||||||
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview2.frame, CGRectMake(115, 0, 85, 50)));
|
|
||||||
XCTAssertTrue(CGRectEqualToRect(subview3.frame, CGRectMake(85,0,0,50)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@@ -2,4 +2,5 @@ use_frameworks!
|
|||||||
|
|
||||||
target 'YogaKitSample' do
|
target 'YogaKitSample' do
|
||||||
pod 'YogaKit', :path => '../../YogaKit.podspec'
|
pod 'YogaKit', :path => '../../YogaKit.podspec'
|
||||||
|
pod 'IGListKit', '~> 2.1.0'
|
||||||
end
|
end
|
||||||
|
@@ -1,19 +1,26 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- Yoga (1.0.2)
|
- IGListKit (2.1.0):
|
||||||
- YogaKit (1.0.3):
|
- IGListKit/Default (= 2.1.0)
|
||||||
- Yoga (~> 1.0)
|
- IGListKit/Default (2.1.0):
|
||||||
|
- IGListKit/Diffing
|
||||||
|
- IGListKit/Diffing (2.1.0)
|
||||||
|
- Yoga (1.1.0)
|
||||||
|
- YogaKit (1.1.0):
|
||||||
|
- Yoga (~> 1.1)
|
||||||
|
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
|
- IGListKit (~> 2.1.0)
|
||||||
- YogaKit (from `../../YogaKit.podspec`)
|
- YogaKit (from `../../YogaKit.podspec`)
|
||||||
|
|
||||||
EXTERNAL SOURCES:
|
EXTERNAL SOURCES:
|
||||||
YogaKit:
|
YogaKit:
|
||||||
:path: "../../YogaKit.podspec"
|
:path: ../../YogaKit.podspec
|
||||||
|
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
Yoga: ef42f88b9bcbd7daf7267c0f19d8636ce3a50618
|
IGListKit: b826c68ef7a4ae1626c09d4d3e1ea7a169e6c36e
|
||||||
YogaKit: 6d9826a015c029b13731a33bf96fe6c1e33748a6
|
Yoga: 0bf083b7c485b20598020dbedcea869cbe53071e
|
||||||
|
YogaKit: 80df90de9ef2900baa111f2c93476a6f9e921385
|
||||||
|
|
||||||
PODFILE CHECKSUM: 9db3bdea7f1b4b715ad859a449b2dc87fb6226cc
|
PODFILE CHECKSUM: 216f8e7127767709e0e43f3711208d238fa5c404
|
||||||
|
|
||||||
COCOAPODS: 1.2.0
|
COCOAPODS: 1.2.0
|
||||||
|
@@ -7,14 +7,15 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
13687D481DF8748400E7C260 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13687D471DF8748400E7C260 /* main.m */; };
|
|
||||||
13687D4B1DF8748400E7C260 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13687D4A1DF8748400E7C260 /* AppDelegate.m */; };
|
|
||||||
13687D4E1DF8748400E7C260 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 13687D4D1DF8748400E7C260 /* ViewController.m */; };
|
|
||||||
13687D531DF8748400E7C260 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13687D521DF8748400E7C260 /* Assets.xcassets */; };
|
13687D531DF8748400E7C260 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13687D521DF8748400E7C260 /* Assets.xcassets */; };
|
||||||
13687D851DF87D1E00E7C260 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13687D841DF87D1E00E7C260 /* UIKit.framework */; };
|
13687D851DF87D1E00E7C260 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13687D841DF87D1E00E7C260 /* UIKit.framework */; };
|
||||||
13687D871DF87D2400E7C260 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13687D861DF87D2400E7C260 /* Foundation.framework */; };
|
13687D871DF87D2400E7C260 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13687D861DF87D2400E7C260 /* Foundation.framework */; };
|
||||||
15A7CB5995C9DAB1C8803834 /* Pods_YogaKitSample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C80A931E90C7F3088CB86822 /* Pods_YogaKitSample.framework */; };
|
15A7CB5995C9DAB1C8803834 /* Pods_YogaKitSample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C80A931E90C7F3088CB86822 /* Pods_YogaKitSample.framework */; };
|
||||||
638A94481E1F06D100A726AD /* SwiftViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 638A94471E1F06D100A726AD /* SwiftViewController.swift */; };
|
40BD9F461E477A09002790A9 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40BD9F451E477A09002790A9 /* AppDelegate.swift */; };
|
||||||
|
40BD9F4B1E47850C002790A9 /* BasicViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40BD9F4A1E47850C002790A9 /* BasicViewController.swift */; };
|
||||||
|
40BD9F501E479079002790A9 /* SingleLabelCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40BD9F4F1E479079002790A9 /* SingleLabelCollectionCell.swift */; };
|
||||||
|
40BD9F521E479173002790A9 /* LayoutInclusionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 40BD9F511E479173002790A9 /* LayoutInclusionViewController.swift */; };
|
||||||
|
638A94481E1F06D100A726AD /* ExamplesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 638A94471E1F06D100A726AD /* ExamplesViewController.swift */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
@@ -52,17 +53,16 @@
|
|||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
13687D431DF8748400E7C260 /* YogaKitSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YogaKitSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
13687D431DF8748400E7C260 /* YogaKitSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YogaKitSample.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
13687D471DF8748400E7C260 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
13687D491DF8748400E7C260 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
|
|
||||||
13687D4A1DF8748400E7C260 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
|
|
||||||
13687D4C1DF8748400E7C260 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
|
|
||||||
13687D4D1DF8748400E7C260 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
|
|
||||||
13687D521DF8748400E7C260 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
13687D521DF8748400E7C260 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
13687D571DF8748400E7C260 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
13687D571DF8748400E7C260 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
13687D841DF87D1E00E7C260 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
13687D841DF87D1E00E7C260 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||||
13687D861DF87D2400E7C260 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
13687D861DF87D2400E7C260 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
1D2FF4D5FCA6A8C54A4074A3 /* Pods-YogaKitSample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YogaKitSample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-YogaKitSample/Pods-YogaKitSample.debug.xcconfig"; sourceTree = "<group>"; };
|
1D2FF4D5FCA6A8C54A4074A3 /* Pods-YogaKitSample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YogaKitSample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-YogaKitSample/Pods-YogaKitSample.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
638A94471E1F06D100A726AD /* SwiftViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftViewController.swift; sourceTree = "<group>"; };
|
40BD9F451E477A09002790A9 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
40BD9F4A1E47850C002790A9 /* BasicViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BasicViewController.swift; path = ViewControllers/BasicViewController.swift; sourceTree = "<group>"; };
|
||||||
|
40BD9F4F1E479079002790A9 /* SingleLabelCollectionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SingleLabelCollectionCell.swift; path = Views/SingleLabelCollectionCell.swift; sourceTree = "<group>"; };
|
||||||
|
40BD9F511E479173002790A9 /* LayoutInclusionViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LayoutInclusionViewController.swift; path = ViewControllers/LayoutInclusionViewController.swift; sourceTree = "<group>"; };
|
||||||
|
638A94471E1F06D100A726AD /* ExamplesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExamplesViewController.swift; sourceTree = "<group>"; };
|
||||||
638A944F1E215CC800A726AD /* YogaKitSampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = YogaKitSampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
638A944F1E215CC800A726AD /* YogaKitSampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = YogaKitSampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
82F0896A88112E957EF37C7F /* Pods-YogaKitSample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YogaKitSample.release.xcconfig"; path = "Pods/Target Support Files/Pods-YogaKitSample/Pods-YogaKitSample.release.xcconfig"; sourceTree = "<group>"; };
|
82F0896A88112E957EF37C7F /* Pods-YogaKitSample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YogaKitSample.release.xcconfig"; path = "Pods/Target Support Files/Pods-YogaKitSample/Pods-YogaKitSample.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
C80A931E90C7F3088CB86822 /* Pods_YogaKitSample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_YogaKitSample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
C80A931E90C7F3088CB86822 /* Pods_YogaKitSample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_YogaKitSample.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
@@ -111,26 +111,16 @@
|
|||||||
13687D451DF8748400E7C260 /* YogaKitSample */ = {
|
13687D451DF8748400E7C260 /* YogaKitSample */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
13687D491DF8748400E7C260 /* AppDelegate.h */,
|
40BD9F4E1E47902F002790A9 /* Views */,
|
||||||
13687D4A1DF8748400E7C260 /* AppDelegate.m */,
|
40BD9F481E4784B3002790A9 /* ViewControllers */,
|
||||||
13687D4C1DF8748400E7C260 /* ViewController.h */,
|
638A94471E1F06D100A726AD /* ExamplesViewController.swift */,
|
||||||
13687D4D1DF8748400E7C260 /* ViewController.m */,
|
|
||||||
638A94471E1F06D100A726AD /* SwiftViewController.swift */,
|
|
||||||
13687D521DF8748400E7C260 /* Assets.xcassets */,
|
13687D521DF8748400E7C260 /* Assets.xcassets */,
|
||||||
13687D571DF8748400E7C260 /* Info.plist */,
|
13687D571DF8748400E7C260 /* Info.plist */,
|
||||||
13687D461DF8748400E7C260 /* Supporting Files */,
|
40BD9F451E477A09002790A9 /* AppDelegate.swift */,
|
||||||
);
|
);
|
||||||
path = YogaKitSample;
|
path = YogaKitSample;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
13687D461DF8748400E7C260 /* Supporting Files */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
13687D471DF8748400E7C260 /* main.m */,
|
|
||||||
);
|
|
||||||
name = "Supporting Files";
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
13687D831DF87D1E00E7C260 /* Frameworks */ = {
|
13687D831DF87D1E00E7C260 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -141,6 +131,23 @@
|
|||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
40BD9F481E4784B3002790A9 /* ViewControllers */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
40BD9F4A1E47850C002790A9 /* BasicViewController.swift */,
|
||||||
|
40BD9F511E479173002790A9 /* LayoutInclusionViewController.swift */,
|
||||||
|
);
|
||||||
|
name = ViewControllers;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
40BD9F4E1E47902F002790A9 /* Views */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
40BD9F4F1E479079002790A9 /* SingleLabelCollectionCell.swift */,
|
||||||
|
);
|
||||||
|
name = Views;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
E1C759E3C8E84821213ECE8D /* Pods */ = {
|
E1C759E3C8E84821213ECE8D /* Pods */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -304,10 +311,11 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
638A94481E1F06D100A726AD /* SwiftViewController.swift in Sources */,
|
40BD9F501E479079002790A9 /* SingleLabelCollectionCell.swift in Sources */,
|
||||||
13687D4E1DF8748400E7C260 /* ViewController.m in Sources */,
|
40BD9F521E479173002790A9 /* LayoutInclusionViewController.swift in Sources */,
|
||||||
13687D4B1DF8748400E7C260 /* AppDelegate.m in Sources */,
|
638A94481E1F06D100A726AD /* ExamplesViewController.swift in Sources */,
|
||||||
13687D481DF8748400E7C260 /* main.m in Sources */,
|
40BD9F4B1E47850C002790A9 /* BasicViewController.swift in Sources */,
|
||||||
|
40BD9F461E477A09002790A9 /* AppDelegate.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright 2014-present, Facebook, Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the license found in the
|
|
||||||
* LICENSE-examples file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface AppDelegate : UIResponder <UIApplicationDelegate>
|
|
||||||
|
|
||||||
@property (strong, nonatomic) UIWindow *window;
|
|
||||||
|
|
||||||
@end
|
|
@@ -1,27 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright 2014-present, Facebook, Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the license found in the
|
|
||||||
* LICENSE-examples file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import "AppDelegate.h"
|
|
||||||
#import "ViewController.h"
|
|
||||||
|
|
||||||
@interface AppDelegate ()
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation AppDelegate
|
|
||||||
|
|
||||||
|
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
|
||||||
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
|
||||||
self.window.rootViewController = [ViewController new];
|
|
||||||
self.window.backgroundColor = [UIColor whiteColor];
|
|
||||||
[self.window makeKeyAndVisible];
|
|
||||||
return YES;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
27
YogaKit/YogaKitSample/YogaKitSample/AppDelegate.swift
Normal file
27
YogaKit/YogaKitSample/YogaKitSample/AppDelegate.swift
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2014-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the license found in the
|
||||||
|
* LICENSE-examples file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
@UIApplicationMain
|
||||||
|
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||||
|
var window: UIWindow?
|
||||||
|
|
||||||
|
func applicationDidFinishLaunching(_ application: UIApplication) {
|
||||||
|
self.window = UIWindow(frame: UIScreen.main.bounds)
|
||||||
|
if let window = self.window {
|
||||||
|
let navigationController = UINavigationController(rootViewController: ExamplesViewController())
|
||||||
|
navigationController.navigationBar.isTranslucent = false
|
||||||
|
|
||||||
|
window.rootViewController = navigationController
|
||||||
|
window.backgroundColor = .white
|
||||||
|
window.makeKeyAndVisible()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
100
YogaKit/YogaKitSample/YogaKitSample/ExamplesViewController.swift
Normal file
100
YogaKit/YogaKitSample/YogaKitSample/ExamplesViewController.swift
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2014-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the license found in the
|
||||||
|
* LICENSE-examples file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
import IGListKit
|
||||||
|
|
||||||
|
private final class ExampleModel {
|
||||||
|
let title: String
|
||||||
|
let controllerClass: UIViewController.Type
|
||||||
|
|
||||||
|
init(title: String, controllerClass: UIViewController.Type) {
|
||||||
|
self.title = title
|
||||||
|
self.controllerClass = controllerClass
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension ExampleModel: IGListDiffable {
|
||||||
|
fileprivate func diffIdentifier() -> NSObjectProtocol {
|
||||||
|
return title as NSString
|
||||||
|
}
|
||||||
|
|
||||||
|
fileprivate func isEqual(toDiffableObject object: IGListDiffable?) -> Bool {
|
||||||
|
guard let otherObj = object as? ExampleModel else { return false }
|
||||||
|
|
||||||
|
return (title == otherObj.title) &&
|
||||||
|
(controllerClass == otherObj.controllerClass)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final class ExamplesViewController: UIViewController, IGListAdapterDataSource, IGListSingleSectionControllerDelegate {
|
||||||
|
private lazy var adapter: IGListAdapter = {
|
||||||
|
return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0)
|
||||||
|
}()
|
||||||
|
private let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
|
||||||
|
|
||||||
|
|
||||||
|
// Update this to array to create more examples.
|
||||||
|
private let models: [ExampleModel] = [ExampleModel(title: "Basic Layout", controllerClass: BasicViewController.self),
|
||||||
|
ExampleModel(title: "Exclude Views in Layout", controllerClass: LayoutInclusionViewController.self)]
|
||||||
|
|
||||||
|
//MARK: UIViewController
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
title = "Examples"
|
||||||
|
view.addSubview(collectionView)
|
||||||
|
adapter.collectionView = collectionView
|
||||||
|
adapter.dataSource = self
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewDidLayoutSubviews() {
|
||||||
|
super.viewDidLayoutSubviews()
|
||||||
|
collectionView.frame = view.bounds
|
||||||
|
}
|
||||||
|
|
||||||
|
//MARK: IGListAdapterDataSource
|
||||||
|
|
||||||
|
func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] {
|
||||||
|
return models as [IGListDiffable]
|
||||||
|
}
|
||||||
|
|
||||||
|
func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController {
|
||||||
|
let sizeBlock: IGListSingleSectionCellSizeBlock = { (model, context) in
|
||||||
|
return CGSize(width: (context?.containerSize.width)!, height: 75.0)
|
||||||
|
}
|
||||||
|
|
||||||
|
let configureBlock: IGListSingleSectionCellConfigureBlock = { (model, cell) in
|
||||||
|
guard let m = model as? ExampleModel, let c = cell as? SingleLabelCollectionCell else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.label.text = m.title
|
||||||
|
}
|
||||||
|
|
||||||
|
let sectionController = IGListSingleSectionController(cellClass: SingleLabelCollectionCell.self,
|
||||||
|
configureBlock: configureBlock,
|
||||||
|
sizeBlock: sizeBlock)
|
||||||
|
sectionController.selectionDelegate = self
|
||||||
|
return sectionController
|
||||||
|
}
|
||||||
|
|
||||||
|
func emptyView(for listAdapter: IGListAdapter) -> UIView? { return nil }
|
||||||
|
|
||||||
|
//MARK: IGListSingleSectionControllerDelegate
|
||||||
|
|
||||||
|
func didSelect(_ sectionController: IGListSingleSectionController) {
|
||||||
|
let section = adapter.section(for: sectionController)
|
||||||
|
let model = models[section]
|
||||||
|
|
||||||
|
let controller = model.controllerClass.init()
|
||||||
|
controller.title = model.title
|
||||||
|
|
||||||
|
self.navigationController?.pushViewController(controller, animated: true)
|
||||||
|
}
|
||||||
|
}
|
@@ -7,35 +7,60 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import IGListKit
|
||||||
import YogaKit
|
import YogaKit
|
||||||
|
|
||||||
class SwiftViewController: UIViewController {
|
struct DemoItem {
|
||||||
|
let name: String
|
||||||
|
}
|
||||||
|
|
||||||
|
final class SwiftViewController: UIViewController, IGListAdapterDataSource {
|
||||||
|
|
||||||
|
lazy var adapter: IGListAdapter = {
|
||||||
|
return IGListAdapter(updater: IGListAdapterUpdater(), viewController: self, workingRangeSize: 0)
|
||||||
|
}()
|
||||||
|
let collectionView = IGListCollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
|
||||||
|
|
||||||
|
//MARK: UIViewController
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
let root = self.view!
|
super.viewDidLoad()
|
||||||
root.backgroundColor = .red
|
title = "YogaKit Examples"
|
||||||
root.yoga.isEnabled = true
|
view.addSubview(collectionView)
|
||||||
root.yoga.width = self.view.bounds.size.width
|
adapter.collectionView = collectionView
|
||||||
root.yoga.height = self.view.bounds.size.height
|
adapter.dataSource = self
|
||||||
root.yoga.alignItems = .center
|
}
|
||||||
root.yoga.justifyContent = .center
|
|
||||||
|
|
||||||
let child1 = UIView()
|
override func viewDidLayoutSubviews() {
|
||||||
child1.backgroundColor = .blue
|
super.viewDidLayoutSubviews()
|
||||||
child1.yoga.isEnabled = true
|
collectionView.frame = view.bounds
|
||||||
child1.yoga.width = 100
|
}
|
||||||
child1.yoga.height = 10
|
|
||||||
|
|
||||||
let child2 = UIView()
|
|
||||||
child2.backgroundColor = .green
|
|
||||||
child2.frame = CGRect(x: 0, y: 0, width: 200, height: 100)
|
|
||||||
|
|
||||||
let child3 = UIView()
|
//MARK: IGListAdapterDataSource
|
||||||
child3.backgroundColor = .yellow
|
|
||||||
child3.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
|
|
||||||
|
|
||||||
child2.addSubview(child3)
|
func objects(for listAdapter: IGListAdapter) -> [IGListDiffable] {
|
||||||
root.addSubview(child1)
|
return ["Dustin" as IGListDiffable, "Ryan" as IGListDiffable]
|
||||||
root.addSubview(child2)
|
}
|
||||||
root.yoga.applyLayout()
|
|
||||||
|
func listAdapter(_ listAdapter: IGListAdapter, sectionControllerFor object: Any) -> IGListSectionController {
|
||||||
|
let sizeBlock: IGListSingleSectionCellSizeBlock = { (model, context) in
|
||||||
|
return CGSize(width: (context?.containerSize.width)!, height: 100.0)
|
||||||
|
}
|
||||||
|
let configureBlock: IGListSingleSectionCellConfigureBlock = { (model, cell) in
|
||||||
|
guard let m = model as? String else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
cell.backgroundColor = (m == "Dustin") ? .blue : .red
|
||||||
|
}
|
||||||
|
|
||||||
|
return IGListSingleSectionController(cellClass: UICollectionViewCell.self,
|
||||||
|
configureBlock: configureBlock,
|
||||||
|
sizeBlock: sizeBlock)
|
||||||
|
}
|
||||||
|
|
||||||
|
func emptyView(for listAdapter: IGListAdapter) -> UIView? {
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright 2014-present, Facebook, Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the license found in the
|
|
||||||
* LICENSE-examples file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface ViewController : UIViewController
|
|
||||||
|
|
||||||
@end
|
|
@@ -10,10 +10,6 @@
|
|||||||
|
|
||||||
#import <YogaKit/UIView+Yoga.h>
|
#import <YogaKit/UIView+Yoga.h>
|
||||||
|
|
||||||
@interface ViewController ()
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation ViewController
|
@implementation ViewController
|
||||||
|
|
||||||
- (void)viewDidLoad
|
- (void)viewDidLoad
|
||||||
@@ -53,7 +49,7 @@
|
|||||||
[child2 addSubview:child3];
|
[child2 addSubview:child3];
|
||||||
[root addSubview:child1];
|
[root addSubview:child1];
|
||||||
[root addSubview:child2];
|
[root addSubview:child2];
|
||||||
[root.yoga applyLayout];
|
[root.yoga applyLayoutPreservingOrigin:NO];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -0,0 +1,48 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2014-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the license found in the
|
||||||
|
* LICENSE-examples file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
import YogaKit
|
||||||
|
|
||||||
|
final class BasicViewController: UIViewController {
|
||||||
|
override func viewDidLoad() {
|
||||||
|
let containerSize = self.view.bounds.size
|
||||||
|
|
||||||
|
let root = self.view!
|
||||||
|
root.backgroundColor = .white
|
||||||
|
root.yoga.isEnabled = true
|
||||||
|
root.yoga.width = containerSize.width
|
||||||
|
root.yoga.height = containerSize.height
|
||||||
|
root.yoga.alignItems = .center
|
||||||
|
root.yoga.justifyContent = .center
|
||||||
|
|
||||||
|
let child1 = UIView()
|
||||||
|
child1.backgroundColor = .blue
|
||||||
|
child1.yoga.isEnabled = true
|
||||||
|
child1.yoga.width = 100
|
||||||
|
child1.yoga.height = 10
|
||||||
|
child1.yoga.marginBottom = 25
|
||||||
|
root.addSubview(child1)
|
||||||
|
|
||||||
|
let child2 = UIView()
|
||||||
|
child2.yoga.isEnabled = true
|
||||||
|
child2.yoga.alignSelf = .flexEnd
|
||||||
|
child2.backgroundColor = .green
|
||||||
|
child2.frame = CGRect(x: 0, y: 0, width: 200, height: 100)
|
||||||
|
root.addSubview(child2)
|
||||||
|
|
||||||
|
let child3 = UIView()
|
||||||
|
child3.yoga.isEnabled = true
|
||||||
|
child3.yoga.alignSelf = .flexStart
|
||||||
|
child3.backgroundColor = .yellow
|
||||||
|
child3.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
|
||||||
|
root.addSubview(child3)
|
||||||
|
|
||||||
|
root.yoga.applyLayout(preservingOrigin: true)
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,70 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2014-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the license found in the
|
||||||
|
* LICENSE-examples file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
import YogaKit
|
||||||
|
|
||||||
|
final class LayoutInclusionViewController: UIViewController {
|
||||||
|
private let button: UIButton = UIButton(type: .system)
|
||||||
|
private let disappearingView: UIView = UIView(frame: .zero)
|
||||||
|
private let contentView: UIView = UIView(frame: .zero)
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
let root = self.view!
|
||||||
|
root.backgroundColor = .white
|
||||||
|
root.yoga.isEnabled = true
|
||||||
|
root.yoga.flexDirection = .column
|
||||||
|
root.yoga.justifyContent = .spaceAround
|
||||||
|
|
||||||
|
contentView.backgroundColor = .clear
|
||||||
|
contentView.layer.borderColor = UIColor.lightGray.cgColor
|
||||||
|
contentView.layer.borderWidth = 1.0
|
||||||
|
contentView.yoga.isEnabled = true
|
||||||
|
contentView.yoga.height = 300
|
||||||
|
contentView.yoga.width = self.view.bounds.size.width
|
||||||
|
contentView.yoga.flexDirection = .row
|
||||||
|
contentView.yoga.justifyContent = .center
|
||||||
|
contentView.yoga.paddingHorizontal = 25
|
||||||
|
self.view.addSubview(contentView)
|
||||||
|
|
||||||
|
let redView = UIView(frame: .zero)
|
||||||
|
redView.backgroundColor = .red
|
||||||
|
redView.yoga.isEnabled = true
|
||||||
|
redView.yoga.flexGrow = 1
|
||||||
|
redView.yoga.flexShrink = 1
|
||||||
|
contentView.addSubview(redView)
|
||||||
|
|
||||||
|
disappearingView.backgroundColor = .blue
|
||||||
|
disappearingView.yoga.isEnabled = true
|
||||||
|
disappearingView.yoga.flexGrow = 1
|
||||||
|
contentView.addSubview(disappearingView)
|
||||||
|
|
||||||
|
button.setTitle("Add Blue View", for: UIControlState.selected)
|
||||||
|
button.setTitle("Remove Blue View", for: UIControlState.normal)
|
||||||
|
button.addTarget(self, action: #selector(buttonWasTapped), for: UIControlEvents.touchUpInside)
|
||||||
|
button.yoga.isEnabled = true
|
||||||
|
button.yoga.height = 300
|
||||||
|
button.yoga.width = 300
|
||||||
|
button.yoga.alignSelf = .center
|
||||||
|
root.addSubview(button)
|
||||||
|
|
||||||
|
root.yoga.applyLayout(preservingOrigin: false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK - UIButton Action
|
||||||
|
func buttonWasTapped() {
|
||||||
|
button.isSelected = !button.isSelected
|
||||||
|
|
||||||
|
button.isUserInteractionEnabled = false
|
||||||
|
disappearingView.yoga.isIncludedInLayout = !disappearingView.yoga.isIncludedInLayout
|
||||||
|
disappearingView.isHidden = !disappearingView.isHidden
|
||||||
|
|
||||||
|
contentView.yoga.applyLayout(preservingOrigin: true)
|
||||||
|
button.isUserInteractionEnabled = true
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
* Copyright 2014-present, Facebook, Inc.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* This source code is licensed under the license found in the
|
||||||
|
* LICENSE-examples file in the root directory of this source tree.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
import YogaKit
|
||||||
|
|
||||||
|
final class SingleLabelCollectionCell: UICollectionViewCell {
|
||||||
|
let label: UILabel = UILabel(frame: .zero)
|
||||||
|
|
||||||
|
override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
|
||||||
|
contentView.yoga.isEnabled = true
|
||||||
|
contentView.yoga.flexDirection = .column
|
||||||
|
contentView.yoga.justifyContent = .flexEnd
|
||||||
|
|
||||||
|
label.textAlignment = .center
|
||||||
|
label.numberOfLines = 1
|
||||||
|
label.yoga.isIncludedInLayout = false
|
||||||
|
contentView.addSubview(label)
|
||||||
|
|
||||||
|
let border = UIView(frame: .zero)
|
||||||
|
border.backgroundColor = .lightGray
|
||||||
|
border.yoga.isEnabled = true
|
||||||
|
border.yoga.height = 0.5
|
||||||
|
border.yoga.marginHorizontal = 25
|
||||||
|
contentView.addSubview(border)
|
||||||
|
}
|
||||||
|
|
||||||
|
required init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
override func layoutSubviews() {
|
||||||
|
super.layoutSubviews()
|
||||||
|
|
||||||
|
contentView.yoga.applyLayout(preservingOrigin: false)
|
||||||
|
label.frame = contentView.bounds
|
||||||
|
}
|
||||||
|
}
|
@@ -1,16 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright 2014-present, Facebook, Inc.
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the license found in the
|
|
||||||
* LICENSE-examples file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
#import "AppDelegate.h"
|
|
||||||
|
|
||||||
int main(int argc, char * argv[]) {
|
|
||||||
@autoreleasepool {
|
|
||||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
|
||||||
}
|
|
||||||
}
|
|
16
csharp/BUCK
16
csharp/BUCK
@@ -39,7 +39,9 @@ with allow_unsafe_import():
|
|||||||
|
|
||||||
if os.path.isdir('/Applications/Xcode.app'):
|
if os.path.isdir('/Applications/Xcode.app'):
|
||||||
yoganet_ios_srcs = []
|
yoganet_ios_srcs = []
|
||||||
for arch in ['iphonesimulator-x86_64', 'iphoneos-arm64', 'iphoneos-armv7']:
|
for arch in [
|
||||||
|
'iphonesimulator-x86_64', 'iphonesimulator-i386', 'iphoneos-arm64', 'iphoneos-armv7'
|
||||||
|
]:
|
||||||
name = 'yoganet-' + arch
|
name = 'yoganet-' + arch
|
||||||
yoganet_ios_srcs.append(':' + name)
|
yoganet_ios_srcs.append(':' + name)
|
||||||
genrule(
|
genrule(
|
||||||
@@ -61,3 +63,15 @@ if os.path.isdir('/Applications/Xcode.app'):
|
|||||||
cmd = 'lipo $SRCS -create -output $OUT',
|
cmd = 'lipo $SRCS -create -output $OUT',
|
||||||
visibility = ['PUBLIC'],
|
visibility = ['PUBLIC'],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
yoganet_macosx_target = 'csharp:yoganet#macosx-%s,dynamic'
|
||||||
|
genrule(
|
||||||
|
name = 'yoganet-macosx',
|
||||||
|
srcs = [
|
||||||
|
yoga_dep(yoganet_macosx_target % 'x86_64'),
|
||||||
|
yoga_dep(yoganet_macosx_target % 'i386'),
|
||||||
|
],
|
||||||
|
out = 'libyoga.dylib',
|
||||||
|
cmd = 'lipo $SRCS -create -output $OUT',
|
||||||
|
visibility = ['PUBLIC'],
|
||||||
|
)
|
||||||
|
@@ -17,5 +17,7 @@ namespace Facebook.Yoga
|
|||||||
FlexEnd,
|
FlexEnd,
|
||||||
Stretch,
|
Stretch,
|
||||||
Baseline,
|
Baseline,
|
||||||
|
SpaceBetween,
|
||||||
|
SpaceAround,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,8 +21,9 @@ namespace Facebook.Yoga
|
|||||||
public void Test_align_content_flex_start()
|
public void Test_align_content_flex_start()
|
||||||
{
|
{
|
||||||
YogaNode root = new YogaNode();
|
YogaNode root = new YogaNode();
|
||||||
|
root.FlexDirection = YogaFlexDirection.Row;
|
||||||
root.Wrap = YogaWrap.Wrap;
|
root.Wrap = YogaWrap.Wrap;
|
||||||
root.Width = 100;
|
root.Width = 130;
|
||||||
root.Height = 100;
|
root.Height = 100;
|
||||||
|
|
||||||
YogaNode root_child0 = new YogaNode();
|
YogaNode root_child0 = new YogaNode();
|
||||||
@@ -54,7 +55,7 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child0.LayoutX);
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
@@ -62,23 +63,23 @@ namespace Facebook.Yoga
|
|||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child1.LayoutX);
|
Assert.AreEqual(50f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(0f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child2.LayoutX);
|
Assert.AreEqual(0f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(10f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child3.LayoutX);
|
Assert.AreEqual(50f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(10f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child4.LayoutX);
|
Assert.AreEqual(0f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(20f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
|
||||||
@@ -87,31 +88,31 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child0.LayoutX);
|
Assert.AreEqual(80f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child1.LayoutX);
|
Assert.AreEqual(30f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(0f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child2.LayoutX);
|
Assert.AreEqual(80f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(10f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child3.LayoutX);
|
Assert.AreEqual(30f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(10f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child4.LayoutX);
|
Assert.AreEqual(80f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(20f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
}
|
}
|
||||||
@@ -120,9 +121,10 @@ namespace Facebook.Yoga
|
|||||||
public void Test_align_content_flex_end()
|
public void Test_align_content_flex_end()
|
||||||
{
|
{
|
||||||
YogaNode root = new YogaNode();
|
YogaNode root = new YogaNode();
|
||||||
|
root.FlexDirection = YogaFlexDirection.Row;
|
||||||
root.AlignContent = YogaAlign.FlexEnd;
|
root.AlignContent = YogaAlign.FlexEnd;
|
||||||
root.Wrap = YogaWrap.Wrap;
|
root.Wrap = YogaWrap.Wrap;
|
||||||
root.Width = 100;
|
root.Width = 130;
|
||||||
root.Height = 100;
|
root.Height = 100;
|
||||||
|
|
||||||
YogaNode root_child0 = new YogaNode();
|
YogaNode root_child0 = new YogaNode();
|
||||||
@@ -154,31 +156,31 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child0.LayoutX);
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(70f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child1.LayoutX);
|
Assert.AreEqual(50f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(70f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child2.LayoutX);
|
Assert.AreEqual(0f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(80f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child3.LayoutX);
|
Assert.AreEqual(50f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(80f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child4.LayoutX);
|
Assert.AreEqual(0f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(90f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
|
||||||
@@ -187,31 +189,31 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child0.LayoutX);
|
Assert.AreEqual(80f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(70f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child1.LayoutX);
|
Assert.AreEqual(30f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(70f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child2.LayoutX);
|
Assert.AreEqual(80f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(80f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child3.LayoutX);
|
Assert.AreEqual(30f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(80f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child4.LayoutX);
|
Assert.AreEqual(80f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(90f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
}
|
}
|
||||||
@@ -220,9 +222,10 @@ namespace Facebook.Yoga
|
|||||||
public void Test_align_content_center()
|
public void Test_align_content_center()
|
||||||
{
|
{
|
||||||
YogaNode root = new YogaNode();
|
YogaNode root = new YogaNode();
|
||||||
|
root.FlexDirection = YogaFlexDirection.Row;
|
||||||
root.AlignContent = YogaAlign.Center;
|
root.AlignContent = YogaAlign.Center;
|
||||||
root.Wrap = YogaWrap.Wrap;
|
root.Wrap = YogaWrap.Wrap;
|
||||||
root.Width = 100;
|
root.Width = 130;
|
||||||
root.Height = 100;
|
root.Height = 100;
|
||||||
|
|
||||||
YogaNode root_child0 = new YogaNode();
|
YogaNode root_child0 = new YogaNode();
|
||||||
@@ -254,31 +257,31 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child0.LayoutX);
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(35f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child1.LayoutX);
|
Assert.AreEqual(50f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(35f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child2.LayoutX);
|
Assert.AreEqual(0f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(45f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child3.LayoutX);
|
Assert.AreEqual(50f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(45f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child4.LayoutX);
|
Assert.AreEqual(0f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(55f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
|
||||||
@@ -287,31 +290,31 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child0.LayoutX);
|
Assert.AreEqual(80f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(35f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child1.LayoutX);
|
Assert.AreEqual(30f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutY);
|
Assert.AreEqual(35f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child2.LayoutX);
|
Assert.AreEqual(80f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(20f, root_child2.LayoutY);
|
Assert.AreEqual(45f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child3.LayoutX);
|
Assert.AreEqual(30f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(30f, root_child3.LayoutY);
|
Assert.AreEqual(45f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child4.LayoutX);
|
Assert.AreEqual(80f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(40f, root_child4.LayoutY);
|
Assert.AreEqual(55f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
}
|
}
|
||||||
@@ -322,7 +325,7 @@ namespace Facebook.Yoga
|
|||||||
YogaNode root = new YogaNode();
|
YogaNode root = new YogaNode();
|
||||||
root.AlignContent = YogaAlign.Stretch;
|
root.AlignContent = YogaAlign.Stretch;
|
||||||
root.Wrap = YogaWrap.Wrap;
|
root.Wrap = YogaWrap.Wrap;
|
||||||
root.Width = 100;
|
root.Width = 150;
|
||||||
root.Height = 100;
|
root.Height = 100;
|
||||||
|
|
||||||
YogaNode root_child0 = new YogaNode();
|
YogaNode root_child0 = new YogaNode();
|
||||||
@@ -349,7 +352,7 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(150f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(0f, root_child0.LayoutX);
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
@@ -382,34 +385,236 @@ namespace Facebook.Yoga
|
|||||||
|
|
||||||
Assert.AreEqual(0f, root.LayoutX);
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
Assert.AreEqual(0f, root.LayoutY);
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
Assert.AreEqual(100f, root.LayoutWidth);
|
Assert.AreEqual(150f, root.LayoutWidth);
|
||||||
Assert.AreEqual(100f, root.LayoutHeight);
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child0.LayoutX);
|
Assert.AreEqual(100f, root_child0.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutY);
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
Assert.AreEqual(0f, root_child0.LayoutHeight);
|
Assert.AreEqual(0f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child1.LayoutX);
|
Assert.AreEqual(100f, root_child1.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child1.LayoutY);
|
Assert.AreEqual(0f, root_child1.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
Assert.AreEqual(0f, root_child1.LayoutHeight);
|
Assert.AreEqual(0f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child2.LayoutX);
|
Assert.AreEqual(100f, root_child2.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child2.LayoutY);
|
Assert.AreEqual(0f, root_child2.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
Assert.AreEqual(0f, root_child2.LayoutHeight);
|
Assert.AreEqual(0f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child3.LayoutX);
|
Assert.AreEqual(100f, root_child3.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child3.LayoutY);
|
Assert.AreEqual(0f, root_child3.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
Assert.AreEqual(0f, root_child3.LayoutHeight);
|
Assert.AreEqual(0f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
Assert.AreEqual(50f, root_child4.LayoutX);
|
Assert.AreEqual(100f, root_child4.LayoutX);
|
||||||
Assert.AreEqual(0f, root_child4.LayoutY);
|
Assert.AreEqual(0f, root_child4.LayoutY);
|
||||||
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
Assert.AreEqual(0f, root_child4.LayoutHeight);
|
Assert.AreEqual(0f, root_child4.LayoutHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_align_content_spacebetween()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.FlexDirection = YogaFlexDirection.Row;
|
||||||
|
root.AlignContent = YogaAlign.SpaceBetween;
|
||||||
|
root.Wrap = YogaWrap.Wrap;
|
||||||
|
root.Width = 130;
|
||||||
|
root.Height = 100;
|
||||||
|
|
||||||
|
YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.Width = 50;
|
||||||
|
root_child0.Height = 10;
|
||||||
|
root.Insert(0, root_child0);
|
||||||
|
|
||||||
|
YogaNode root_child1 = new YogaNode();
|
||||||
|
root_child1.Width = 50;
|
||||||
|
root_child1.Height = 10;
|
||||||
|
root.Insert(1, root_child1);
|
||||||
|
|
||||||
|
YogaNode root_child2 = new YogaNode();
|
||||||
|
root_child2.Width = 50;
|
||||||
|
root_child2.Height = 10;
|
||||||
|
root.Insert(2, root_child2);
|
||||||
|
|
||||||
|
YogaNode root_child3 = new YogaNode();
|
||||||
|
root_child3.Width = 50;
|
||||||
|
root_child3.Height = 10;
|
||||||
|
root.Insert(3, root_child3);
|
||||||
|
|
||||||
|
YogaNode root_child4 = new YogaNode();
|
||||||
|
root_child4.Width = 50;
|
||||||
|
root_child4.Height = 10;
|
||||||
|
root.Insert(4, root_child4);
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child1.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child2.LayoutX);
|
||||||
|
Assert.AreEqual(45f, root_child2.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutX);
|
||||||
|
Assert.AreEqual(45f, root_child3.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child4.LayoutX);
|
||||||
|
Assert.AreEqual(90f, root_child4.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(130f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(80f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(30f, root_child1.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child1.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(80f, root_child2.LayoutX);
|
||||||
|
Assert.AreEqual(45f, root_child2.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(30f, root_child3.LayoutX);
|
||||||
|
Assert.AreEqual(45f, root_child3.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(80f, root_child4.LayoutX);
|
||||||
|
Assert.AreEqual(90f, root_child4.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_align_content_spacearound()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.FlexDirection = YogaFlexDirection.Row;
|
||||||
|
root.AlignContent = YogaAlign.SpaceAround;
|
||||||
|
root.Wrap = YogaWrap.Wrap;
|
||||||
|
root.Width = 140;
|
||||||
|
root.Height = 120;
|
||||||
|
|
||||||
|
YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.Width = 50;
|
||||||
|
root_child0.Height = 10;
|
||||||
|
root.Insert(0, root_child0);
|
||||||
|
|
||||||
|
YogaNode root_child1 = new YogaNode();
|
||||||
|
root_child1.Width = 50;
|
||||||
|
root_child1.Height = 10;
|
||||||
|
root.Insert(1, root_child1);
|
||||||
|
|
||||||
|
YogaNode root_child2 = new YogaNode();
|
||||||
|
root_child2.Width = 50;
|
||||||
|
root_child2.Height = 10;
|
||||||
|
root.Insert(2, root_child2);
|
||||||
|
|
||||||
|
YogaNode root_child3 = new YogaNode();
|
||||||
|
root_child3.Width = 50;
|
||||||
|
root_child3.Height = 10;
|
||||||
|
root.Insert(3, root_child3);
|
||||||
|
|
||||||
|
YogaNode root_child4 = new YogaNode();
|
||||||
|
root_child4.Width = 50;
|
||||||
|
root_child4.Height = 10;
|
||||||
|
root.Insert(4, root_child4);
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(140f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(120f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(15f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutX);
|
||||||
|
Assert.AreEqual(15f, root_child1.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child2.LayoutX);
|
||||||
|
Assert.AreEqual(55f, root_child2.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutX);
|
||||||
|
Assert.AreEqual(55f, root_child3.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child4.LayoutX);
|
||||||
|
Assert.AreEqual(95f, root_child4.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(140f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(120f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(90f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(15f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(40f, root_child1.LayoutX);
|
||||||
|
Assert.AreEqual(15f, root_child1.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child1.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child1.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(90f, root_child2.LayoutX);
|
||||||
|
Assert.AreEqual(55f, root_child2.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child2.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child2.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(40f, root_child3.LayoutX);
|
||||||
|
Assert.AreEqual(55f, root_child3.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child3.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child3.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(90f, root_child4.LayoutX);
|
||||||
|
Assert.AreEqual(95f, root_child4.LayoutY);
|
||||||
|
Assert.AreEqual(50f, root_child4.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child4.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -675,5 +675,138 @@ namespace Facebook.Yoga
|
|||||||
Assert.AreEqual(50f, root_child1.LayoutHeight);
|
Assert.AreEqual(50f, root_child1.LayoutHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_min_width_overrides_width()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.Width = 50;
|
||||||
|
root.MinWidth = 100;
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(0f, root.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(0f, root.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_max_width_overrides_width()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.Width = 200;
|
||||||
|
root.MaxWidth = 100;
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(0f, root.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(0f, root.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_min_height_overrides_height()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.Height = 50;
|
||||||
|
root.MinHeight = 100;
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(0f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(0f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_max_height_overrides_height()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.Height = 200;
|
||||||
|
root.MaxHeight = 100;
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(0f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(0f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Test_min_max_percent_no_width_height()
|
||||||
|
{
|
||||||
|
YogaNode root = new YogaNode();
|
||||||
|
root.AlignItems = YogaAlign.FlexStart;
|
||||||
|
root.Width = 100;
|
||||||
|
root.Height = 100;
|
||||||
|
|
||||||
|
YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.MinWidth = 10.Percent();
|
||||||
|
root_child0.MaxWidth = 10.Percent();
|
||||||
|
root_child0.MinHeight = 10.Percent();
|
||||||
|
root_child0.MaxHeight = 10.Percent();
|
||||||
|
root.Insert(0, root_child0);
|
||||||
|
root.StyleDirection = YogaDirection.LTR;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
|
||||||
|
root.StyleDirection = YogaDirection.RTL;
|
||||||
|
root.CalculateLayout();
|
||||||
|
|
||||||
|
Assert.AreEqual(0f, root.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root.LayoutY);
|
||||||
|
Assert.AreEqual(100f, root.LayoutWidth);
|
||||||
|
Assert.AreEqual(100f, root.LayoutHeight);
|
||||||
|
|
||||||
|
Assert.AreEqual(90f, root_child0.LayoutX);
|
||||||
|
Assert.AreEqual(0f, root_child0.LayoutY);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutWidth);
|
||||||
|
Assert.AreEqual(10f, root_child0.LayoutHeight);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -22,6 +22,6 @@ Yoga relies on `UIView` subviews to build up its internal layout tree. However,
|
|||||||
It is also possible to query the number of children **included** in layout via `numberOfChildren`.
|
It is also possible to query the number of children **included** in layout via `numberOfChildren`.
|
||||||
|
|
||||||
### Layout
|
### Layout
|
||||||
To apply a layout to a view (and its' subviews) you need to call `[view.yoga applyLayout]`. This will do a layout calculation (if needed) and apply the calculated frames to every view included in the layout.
|
To apply a layout to a view (and its' subviews) you need to call `[view.yoga applyLayoutPreservingOrigin:NO]`. This will do a layout calculation (if needed) and apply the calculated frames to every view included in the layout.
|
||||||
|
|
||||||
In the event that you need to another layout pass on a view you can mark it dirty via `[view.yoga markDirty]`.
|
In the event that you need to another layout pass on a view you can mark it dirty via `[view.yoga markDirty]`.
|
||||||
|
2
enums.py
2
enums.py
@@ -47,6 +47,8 @@ ENUMS = {
|
|||||||
'FlexEnd',
|
'FlexEnd',
|
||||||
'Stretch',
|
'Stretch',
|
||||||
'Baseline',
|
'Baseline',
|
||||||
|
'SpaceBetween',
|
||||||
|
'SpaceAround',
|
||||||
],
|
],
|
||||||
'PositionType': [
|
'PositionType': [
|
||||||
'Relative',
|
'Relative',
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
BASEDIR="$(dirname "$0")"
|
BASEDIR="$(dirname "$0")"
|
||||||
FILES=$(find "$BASEDIR" \( -path "$BASEDIR/buck-out" -o -path "$BASEDIR/lib" \) -prune -o \
|
FILES=$(find "$BASEDIR" \( -path "$BASEDIR/buck-out" -o -path "$BASEDIR/lib" \) -prune -o \
|
||||||
\( -name \*.h -o -name \*.c -o -name \*.cpp \) -print)
|
\( -name \*.h ! -name YGEnums.h -o -name \*.c -o -name \*.cpp \) -print)
|
||||||
|
|
||||||
for f in $FILES "$@"; do
|
for f in $FILES "$@"; do
|
||||||
clang-format \
|
clang-format \
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<div id="align_content_flex_start" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: flex-start;">
|
<div id="align_content_flex_start" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: flex-start;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_flex_end" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: flex-end;">
|
<div id="align_content_flex_end" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: flex-end;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_center" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: center;">
|
<div id="align_content_center" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: center;">
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
@@ -22,10 +22,26 @@
|
|||||||
<div style="width: 50px; height: 10px;"></div>
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="align_content_stretch" style="width: 100px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: stretch;">
|
<div id="align_content_stretch" style="width: 150px; height: 100px; flex-wrap: wrap; flex-direction: column; align-content: stretch;">
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px;"></div>
|
||||||
<div style="width: 50px;"></div>
|
<div style="width: 50px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="align_content_spacebetween" style="width: 130px; height: 100px; flex-wrap: wrap; flex-direction: row; align-content: space-between;">
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="align_content_spacearound" style="width: 140px; height: 120px; flex-wrap: wrap; flex-direction: row; align-content: space-around;">
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
<div style="width: 50px; height: 10px;"></div>
|
||||||
|
</div>
|
||||||
|
@@ -63,3 +63,20 @@
|
|||||||
<div style="flex-shrink:1; flex-basis:100px"></div>
|
<div style="flex-shrink:1; flex-basis:100px"></div>
|
||||||
<div style="height: 50px;"></div>
|
<div style="height: 50px;"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="min_width_overrides_width" style="min-width: 100px; width: 50px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="max_width_overrides_width" style="max-width: 100px; width: 200px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="min_height_overrides_height" style="min-height: 100px; height: 50px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="max_height_overrides_height" style="max-height: 100px; height: 200px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="min_max_percent_no_width_height" style="width: 100px; height: 100px; align-items: flex-start;">
|
||||||
|
<div style="min-width: 10%; max-width: 10%; min-height: 10%; max-height: 10%;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@@ -82,7 +82,8 @@ CPPEmitter.prototype = Object.create(Emitter.prototype, {
|
|||||||
YGAlignFlexEnd:{value:'YGAlignFlexEnd'},
|
YGAlignFlexEnd:{value:'YGAlignFlexEnd'},
|
||||||
YGAlignFlexStart:{value:'YGAlignFlexStart'},
|
YGAlignFlexStart:{value:'YGAlignFlexStart'},
|
||||||
YGAlignStretch:{value:'YGAlignStretch'},
|
YGAlignStretch:{value:'YGAlignStretch'},
|
||||||
|
YGAlignSpaceBetween:{value:'YGAlignSpaceBetween'},
|
||||||
|
YGAlignSpaceAround:{value:'YGAlignSpaceAround'},
|
||||||
YGAlignBaseline:{value:'YGAlignBaseline'},
|
YGAlignBaseline:{value:'YGAlignBaseline'},
|
||||||
|
|
||||||
YGDirectionInherit:{value:'YGDirectionInherit'},
|
YGDirectionInherit:{value:'YGDirectionInherit'},
|
||||||
|
@@ -96,6 +96,8 @@ CSEmitter.prototype = Object.create(Emitter.prototype, {
|
|||||||
YGAlignFlexEnd:{value:'YogaAlign.FlexEnd'},
|
YGAlignFlexEnd:{value:'YogaAlign.FlexEnd'},
|
||||||
YGAlignFlexStart:{value:'YogaAlign.FlexStart'},
|
YGAlignFlexStart:{value:'YogaAlign.FlexStart'},
|
||||||
YGAlignStretch:{value:'YogaAlign.Stretch'},
|
YGAlignStretch:{value:'YogaAlign.Stretch'},
|
||||||
|
YGAlignSpaceBetween:{value:'YogaAlign.SpaceBetween'},
|
||||||
|
YGAlignSpaceAround:{value:'YogaAlign.SpaceAround'},
|
||||||
YGAlignBaseline:{value:'YogaAlign.Baseline'},
|
YGAlignBaseline:{value:'YogaAlign.Baseline'},
|
||||||
|
|
||||||
YGDirectionInherit:{value:'YogaDirection.Inherit'},
|
YGDirectionInherit:{value:'YogaDirection.Inherit'},
|
||||||
|
@@ -100,6 +100,8 @@ JavaEmitter.prototype = Object.create(Emitter.prototype, {
|
|||||||
YGAlignFlexEnd:{value:'YogaAlign.FLEX_END'},
|
YGAlignFlexEnd:{value:'YogaAlign.FLEX_END'},
|
||||||
YGAlignFlexStart:{value:'YogaAlign.FLEX_START'},
|
YGAlignFlexStart:{value:'YogaAlign.FLEX_START'},
|
||||||
YGAlignStretch:{value:'YogaAlign.STRETCH'},
|
YGAlignStretch:{value:'YogaAlign.STRETCH'},
|
||||||
|
YGAlignSpaceBetween:{value:'YogaAlign.SPACE_BETWEEN'},
|
||||||
|
YGAlignSpaceAround:{value:'YogaAlign.SPACE_AROUND'},
|
||||||
YGAlignBaseline:{value:'YogaAlign.BASELINE'},
|
YGAlignBaseline:{value:'YogaAlign.BASELINE'},
|
||||||
|
|
||||||
YGDirectionInherit:{value:'YogaDirection.INHERIT'},
|
YGDirectionInherit:{value:'YogaDirection.INHERIT'},
|
||||||
|
@@ -90,6 +90,8 @@ JavascriptEmitter.prototype = Object.create(Emitter.prototype, {
|
|||||||
YGAlignFlexEnd:{value:'Yoga.ALIGN_FLEX_END'},
|
YGAlignFlexEnd:{value:'Yoga.ALIGN_FLEX_END'},
|
||||||
YGAlignFlexStart:{value:'Yoga.ALIGN_FLEX_START'},
|
YGAlignFlexStart:{value:'Yoga.ALIGN_FLEX_START'},
|
||||||
YGAlignStretch:{value:'Yoga.ALIGN_STRETCH'},
|
YGAlignStretch:{value:'Yoga.ALIGN_STRETCH'},
|
||||||
|
YGAlignSpaceBetween:{value:'Yoga.ALIGN_SPACE_BETWEEN'},
|
||||||
|
YGAlignSpaceAround:{value:'Yoga.ALIGN_SPACE_AROUND'},
|
||||||
YGAlignBaseline:{value:'Yoga.ALIGN_BASELINE'},
|
YGAlignBaseline:{value:'Yoga.ALIGN_BASELINE'},
|
||||||
|
|
||||||
YGDirectionInherit:{value:'Yoga.DIRECTION_INHERIT'},
|
YGDirectionInherit:{value:'Yoga.DIRECTION_INHERIT'},
|
||||||
|
@@ -381,6 +381,8 @@ function alignValue(e, value) {
|
|||||||
case 'stretch': return e.YGAlignStretch;
|
case 'stretch': return e.YGAlignStretch;
|
||||||
case 'flex-start': return e.YGAlignFlexStart;
|
case 'flex-start': return e.YGAlignFlexStart;
|
||||||
case 'flex-end': return e.YGAlignFlexEnd;
|
case 'flex-end': return e.YGAlignFlexEnd;
|
||||||
|
case 'space-between': return e.YGAlignSpaceBetween;
|
||||||
|
case 'space-around': return e.YGAlignSpaceAround;
|
||||||
case 'baseline': return e.YGAlignBaseline;
|
case 'baseline': return e.YGAlignBaseline;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,9 @@ public enum YogaAlign {
|
|||||||
CENTER(2),
|
CENTER(2),
|
||||||
FLEX_END(3),
|
FLEX_END(3),
|
||||||
STRETCH(4),
|
STRETCH(4),
|
||||||
BASELINE(5);
|
BASELINE(5),
|
||||||
|
SPACE_BETWEEN(6),
|
||||||
|
SPACE_AROUND(7);
|
||||||
|
|
||||||
private int mIntValue;
|
private int mIntValue;
|
||||||
|
|
||||||
@@ -38,6 +40,8 @@ public enum YogaAlign {
|
|||||||
case 3: return FLEX_END;
|
case 3: return FLEX_END;
|
||||||
case 4: return STRETCH;
|
case 4: return STRETCH;
|
||||||
case 5: return BASELINE;
|
case 5: return BASELINE;
|
||||||
|
case 6: return SPACE_BETWEEN;
|
||||||
|
case 7: return SPACE_AROUND;
|
||||||
default: throw new IllegalArgumentException("Unknown enum value: " + value);
|
default: throw new IllegalArgumentException("Unknown enum value: " + value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -86,6 +86,14 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
|||||||
@DoNotStrip
|
@DoNotStrip
|
||||||
private float mPaddingBottom = 0;
|
private float mPaddingBottom = 0;
|
||||||
@DoNotStrip
|
@DoNotStrip
|
||||||
|
private float mBorderLeft = 0;
|
||||||
|
@DoNotStrip
|
||||||
|
private float mBorderTop = 0;
|
||||||
|
@DoNotStrip
|
||||||
|
private float mBorderRight = 0;
|
||||||
|
@DoNotStrip
|
||||||
|
private float mBorderBottom = 0;
|
||||||
|
@DoNotStrip
|
||||||
private int mLayoutDirection = 0;
|
private int mLayoutDirection = 0;
|
||||||
|
|
||||||
private native long jni_YGNodeNew();
|
private native long jni_YGNodeNew();
|
||||||
@@ -374,7 +382,7 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
|||||||
@Override
|
@Override
|
||||||
public YogaValue getMargin(YogaEdge edge) {
|
public YogaValue getMargin(YogaEdge edge) {
|
||||||
if (!mHasSetMargin) {
|
if (!mHasSetMargin) {
|
||||||
return edge.intValue() < YogaEdge.START.intValue() ? YogaValue.ZERO : YogaValue.UNDEFINED;
|
return YogaValue.UNDEFINED;
|
||||||
}
|
}
|
||||||
return (YogaValue) jni_YGNodeStyleGetMargin(mNativePointer, edge.intValue());
|
return (YogaValue) jni_YGNodeStyleGetMargin(mNativePointer, edge.intValue());
|
||||||
}
|
}
|
||||||
@@ -397,7 +405,7 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
|||||||
@Override
|
@Override
|
||||||
public YogaValue getPadding(YogaEdge edge) {
|
public YogaValue getPadding(YogaEdge edge) {
|
||||||
if (!mHasSetPadding) {
|
if (!mHasSetPadding) {
|
||||||
return edge.intValue() < YogaEdge.START.intValue() ? YogaValue.ZERO : YogaValue.UNDEFINED;
|
return YogaValue.UNDEFINED;
|
||||||
}
|
}
|
||||||
return (YogaValue) jni_YGNodeStyleGetPadding(mNativePointer, edge.intValue());
|
return (YogaValue) jni_YGNodeStyleGetPadding(mNativePointer, edge.intValue());
|
||||||
}
|
}
|
||||||
@@ -420,7 +428,7 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
|||||||
@Override
|
@Override
|
||||||
public float getBorder(YogaEdge edge) {
|
public float getBorder(YogaEdge edge) {
|
||||||
if (!mHasSetBorder) {
|
if (!mHasSetBorder) {
|
||||||
return edge.intValue() < YogaEdge.START.intValue() ? 0 : YogaConstants.UNDEFINED;
|
return YogaConstants.UNDEFINED;
|
||||||
}
|
}
|
||||||
return jni_YGNodeStyleGetBorder(mNativePointer, edge.intValue());
|
return jni_YGNodeStyleGetBorder(mNativePointer, edge.intValue());
|
||||||
}
|
}
|
||||||
@@ -633,6 +641,26 @@ public class YogaNode implements YogaNodeAPI<YogaNode> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getLayoutBorder(YogaEdge edge) {
|
||||||
|
switch (edge) {
|
||||||
|
case LEFT:
|
||||||
|
return mBorderLeft;
|
||||||
|
case TOP:
|
||||||
|
return mBorderTop;
|
||||||
|
case RIGHT:
|
||||||
|
return mBorderRight;
|
||||||
|
case BOTTOM:
|
||||||
|
return mBorderBottom;
|
||||||
|
case START:
|
||||||
|
return getLayoutDirection() == YogaDirection.RTL ? mBorderRight : mBorderLeft;
|
||||||
|
case END:
|
||||||
|
return getLayoutDirection() == YogaDirection.RTL ? mBorderLeft : mBorderRight;
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException("Cannot get layout border of multi-edge shorthands");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public YogaDirection getLayoutDirection() {
|
public YogaDirection getLayoutDirection() {
|
||||||
return YogaDirection.fromInt(mLayoutDirection);
|
return YogaDirection.fromInt(mLayoutDirection);
|
||||||
|
@@ -84,6 +84,7 @@ public interface YogaNodeAPI<YogaNodeType extends YogaNodeAPI> {
|
|||||||
float getLayoutHeight();
|
float getLayoutHeight();
|
||||||
float getLayoutMargin(YogaEdge edge);
|
float getLayoutMargin(YogaEdge edge);
|
||||||
float getLayoutPadding(YogaEdge edge);
|
float getLayoutPadding(YogaEdge edge);
|
||||||
|
float getLayoutBorder(YogaEdge edge);
|
||||||
YogaDirection getLayoutDirection();
|
YogaDirection getLayoutDirection();
|
||||||
YogaOverflow getOverflow();
|
YogaOverflow getOverflow();
|
||||||
void setOverflow(YogaOverflow overflow);
|
void setOverflow(YogaOverflow overflow);
|
||||||
|
@@ -33,7 +33,9 @@ public class YogaValue {
|
|||||||
public boolean equals(Object other) {
|
public boolean equals(Object other) {
|
||||||
if (other instanceof YogaValue) {
|
if (other instanceof YogaValue) {
|
||||||
final YogaValue otherValue = (YogaValue) other;
|
final YogaValue otherValue = (YogaValue) other;
|
||||||
return value == otherValue.value && unit == otherValue.unit;
|
if (unit == otherValue.unit) {
|
||||||
|
return unit == YogaUnit.UNDEFINED || Float.compare(value, otherValue.value) == 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@@ -40,6 +40,11 @@ static void YGTransferLayoutOutputsRecursive(YGNodeRef root) {
|
|||||||
static auto paddingRightField = obj->getClass()->getField<jfloat>("mPaddingRight");
|
static auto paddingRightField = obj->getClass()->getField<jfloat>("mPaddingRight");
|
||||||
static auto paddingBottomField = obj->getClass()->getField<jfloat>("mPaddingBottom");
|
static auto paddingBottomField = obj->getClass()->getField<jfloat>("mPaddingBottom");
|
||||||
|
|
||||||
|
static auto borderLeftField = obj->getClass()->getField<jfloat>("mBorderLeft");
|
||||||
|
static auto borderTopField = obj->getClass()->getField<jfloat>("mBorderTop");
|
||||||
|
static auto borderRightField = obj->getClass()->getField<jfloat>("mBorderRight");
|
||||||
|
static auto borderBottomField = obj->getClass()->getField<jfloat>("mBorderBottom");
|
||||||
|
|
||||||
obj->setFieldValue(widthField, YGNodeLayoutGetWidth(root));
|
obj->setFieldValue(widthField, YGNodeLayoutGetWidth(root));
|
||||||
obj->setFieldValue(heightField, YGNodeLayoutGetHeight(root));
|
obj->setFieldValue(heightField, YGNodeLayoutGetHeight(root));
|
||||||
obj->setFieldValue(leftField, YGNodeLayoutGetLeft(root));
|
obj->setFieldValue(leftField, YGNodeLayoutGetLeft(root));
|
||||||
@@ -55,6 +60,11 @@ static void YGTransferLayoutOutputsRecursive(YGNodeRef root) {
|
|||||||
obj->setFieldValue(paddingRightField, YGNodeLayoutGetPadding(root, YGEdgeRight));
|
obj->setFieldValue(paddingRightField, YGNodeLayoutGetPadding(root, YGEdgeRight));
|
||||||
obj->setFieldValue(paddingBottomField, YGNodeLayoutGetPadding(root, YGEdgeBottom));
|
obj->setFieldValue(paddingBottomField, YGNodeLayoutGetPadding(root, YGEdgeBottom));
|
||||||
|
|
||||||
|
obj->setFieldValue(borderLeftField, YGNodeLayoutGetBorder(root, YGEdgeLeft));
|
||||||
|
obj->setFieldValue(borderTopField, YGNodeLayoutGetBorder(root, YGEdgeTop));
|
||||||
|
obj->setFieldValue(borderRightField, YGNodeLayoutGetBorder(root, YGEdgeRight));
|
||||||
|
obj->setFieldValue(borderBottomField, YGNodeLayoutGetBorder(root, YGEdgeBottom));
|
||||||
|
|
||||||
YGTransferLayoutDirection(root, obj);
|
YGTransferLayoutDirection(root, obj);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < YGNodeGetChildCount(root); i++) {
|
for (uint32_t i = 0; i < YGNodeGetChildCount(root); i++) {
|
||||||
|
@@ -19,8 +19,9 @@ public class YGAlignContentTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_align_content_flex_start() {
|
public void test_align_content_flex_start() {
|
||||||
final YogaNode root = new YogaNode();
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setFlexDirection(YogaFlexDirection.ROW);
|
||||||
root.setWrap(YogaWrap.WRAP);
|
root.setWrap(YogaWrap.WRAP);
|
||||||
root.setWidth(100f);
|
root.setWidth(130f);
|
||||||
root.setHeight(100f);
|
root.setHeight(100f);
|
||||||
|
|
||||||
final YogaNode root_child0 = new YogaNode();
|
final YogaNode root_child0 = new YogaNode();
|
||||||
@@ -52,7 +53,7 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
@@ -60,23 +61,23 @@ public class YGAlignContentTest {
|
|||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(20f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
@@ -85,31 +86,31 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(20f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
@@ -117,9 +118,10 @@ public class YGAlignContentTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_align_content_flex_end() {
|
public void test_align_content_flex_end() {
|
||||||
final YogaNode root = new YogaNode();
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setFlexDirection(YogaFlexDirection.ROW);
|
||||||
root.setAlignContent(YogaAlign.FLEX_END);
|
root.setAlignContent(YogaAlign.FLEX_END);
|
||||||
root.setWrap(YogaWrap.WRAP);
|
root.setWrap(YogaWrap.WRAP);
|
||||||
root.setWidth(100f);
|
root.setWidth(130f);
|
||||||
root.setHeight(100f);
|
root.setHeight(100f);
|
||||||
|
|
||||||
final YogaNode root_child0 = new YogaNode();
|
final YogaNode root_child0 = new YogaNode();
|
||||||
@@ -151,31 +153,31 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(70f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(70f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(80f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(80f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(90f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
@@ -184,31 +186,31 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(70f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(70f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(80f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(80f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(90f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
@@ -216,9 +218,10 @@ public class YGAlignContentTest {
|
|||||||
@Test
|
@Test
|
||||||
public void test_align_content_center() {
|
public void test_align_content_center() {
|
||||||
final YogaNode root = new YogaNode();
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setFlexDirection(YogaFlexDirection.ROW);
|
||||||
root.setAlignContent(YogaAlign.CENTER);
|
root.setAlignContent(YogaAlign.CENTER);
|
||||||
root.setWrap(YogaWrap.WRAP);
|
root.setWrap(YogaWrap.WRAP);
|
||||||
root.setWidth(100f);
|
root.setWidth(130f);
|
||||||
root.setHeight(100f);
|
root.setHeight(100f);
|
||||||
|
|
||||||
final YogaNode root_child0 = new YogaNode();
|
final YogaNode root_child0 = new YogaNode();
|
||||||
@@ -250,31 +253,31 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(35f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(35f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(45f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(45f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(55f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
@@ -283,31 +286,31 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(35f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(35f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(20f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(45f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(30f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(30f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(45f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(80f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(40f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(55f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
@@ -317,7 +320,7 @@ public class YGAlignContentTest {
|
|||||||
final YogaNode root = new YogaNode();
|
final YogaNode root = new YogaNode();
|
||||||
root.setAlignContent(YogaAlign.STRETCH);
|
root.setAlignContent(YogaAlign.STRETCH);
|
||||||
root.setWrap(YogaWrap.WRAP);
|
root.setWrap(YogaWrap.WRAP);
|
||||||
root.setWidth(100f);
|
root.setWidth(150f);
|
||||||
root.setHeight(100f);
|
root.setHeight(100f);
|
||||||
|
|
||||||
final YogaNode root_child0 = new YogaNode();
|
final YogaNode root_child0 = new YogaNode();
|
||||||
@@ -344,7 +347,7 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(150f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
@@ -377,33 +380,233 @@ public class YGAlignContentTest {
|
|||||||
|
|
||||||
assertEquals(0f, root.getLayoutX(), 0.0f);
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root.getLayoutY(), 0.0f);
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
assertEquals(150f, root.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child0.getLayoutX(), 0.0f);
|
assertEquals(100f, root_child0.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(0f, root_child0.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
assertEquals(100f, root_child1.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(0f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child2.getLayoutX(), 0.0f);
|
assertEquals(100f, root_child2.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child2.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child2.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(0f, root_child2.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
assertEquals(100f, root_child3.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child3.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child3.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(0f, root_child3.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
assertEquals(50f, root_child4.getLayoutX(), 0.0f);
|
assertEquals(100f, root_child4.getLayoutX(), 0.0f);
|
||||||
assertEquals(0f, root_child4.getLayoutY(), 0.0f);
|
assertEquals(0f, root_child4.getLayoutY(), 0.0f);
|
||||||
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
assertEquals(0f, root_child4.getLayoutHeight(), 0.0f);
|
assertEquals(0f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_align_content_spacebetween() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setFlexDirection(YogaFlexDirection.ROW);
|
||||||
|
root.setAlignContent(YogaAlign.SPACE_BETWEEN);
|
||||||
|
root.setWrap(YogaWrap.WRAP);
|
||||||
|
root.setWidth(130f);
|
||||||
|
root.setHeight(100f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.setWidth(50f);
|
||||||
|
root_child0.setHeight(10f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
|
||||||
|
final YogaNode root_child1 = new YogaNode();
|
||||||
|
root_child1.setWidth(50f);
|
||||||
|
root_child1.setHeight(10f);
|
||||||
|
root.addChildAt(root_child1, 1);
|
||||||
|
|
||||||
|
final YogaNode root_child2 = new YogaNode();
|
||||||
|
root_child2.setWidth(50f);
|
||||||
|
root_child2.setHeight(10f);
|
||||||
|
root.addChildAt(root_child2, 2);
|
||||||
|
|
||||||
|
final YogaNode root_child3 = new YogaNode();
|
||||||
|
root_child3.setWidth(50f);
|
||||||
|
root_child3.setHeight(10f);
|
||||||
|
root.addChildAt(root_child3, 3);
|
||||||
|
|
||||||
|
final YogaNode root_child4 = new YogaNode();
|
||||||
|
root_child4.setWidth(50f);
|
||||||
|
root_child4.setHeight(10f);
|
||||||
|
root.addChildAt(root_child4, 4);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(45f, root_child2.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(45f, root_child3.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(90f, root_child4.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(130f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(80f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(30f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(80f, root_child2.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(45f, root_child2.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(30f, root_child3.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(45f, root_child3.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(80f, root_child4.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(90f, root_child4.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_align_content_spacearound() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setFlexDirection(YogaFlexDirection.ROW);
|
||||||
|
root.setAlignContent(YogaAlign.SPACE_AROUND);
|
||||||
|
root.setWrap(YogaWrap.WRAP);
|
||||||
|
root.setWidth(140f);
|
||||||
|
root.setHeight(120f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.setWidth(50f);
|
||||||
|
root_child0.setHeight(10f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
|
||||||
|
final YogaNode root_child1 = new YogaNode();
|
||||||
|
root_child1.setWidth(50f);
|
||||||
|
root_child1.setHeight(10f);
|
||||||
|
root.addChildAt(root_child1, 1);
|
||||||
|
|
||||||
|
final YogaNode root_child2 = new YogaNode();
|
||||||
|
root_child2.setWidth(50f);
|
||||||
|
root_child2.setHeight(10f);
|
||||||
|
root.addChildAt(root_child2, 2);
|
||||||
|
|
||||||
|
final YogaNode root_child3 = new YogaNode();
|
||||||
|
root_child3.setWidth(50f);
|
||||||
|
root_child3.setHeight(10f);
|
||||||
|
root.addChildAt(root_child3, 3);
|
||||||
|
|
||||||
|
final YogaNode root_child4 = new YogaNode();
|
||||||
|
root_child4.setWidth(50f);
|
||||||
|
root_child4.setHeight(10f);
|
||||||
|
root.addChildAt(root_child4, 4);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(140f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(120f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(15f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(50f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(15f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child2.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(55f, root_child2.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(50f, root_child3.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(55f, root_child3.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child4.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(95f, root_child4.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(140f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(120f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(90f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(15f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(40f, root_child1.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(15f, root_child1.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child1.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(90f, root_child2.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(55f, root_child2.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child2.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child2.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(40f, root_child3.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(55f, root_child3.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child3.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child3.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(90f, root_child4.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(95f, root_child4.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(50f, root_child4.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child4.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -661,4 +661,132 @@ public class YGMinMaxDimensionTest {
|
|||||||
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
assertEquals(50f, root_child1.getLayoutHeight(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_min_width_overrides_width() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setWidth(50f);
|
||||||
|
root.setMinWidth(100f);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_max_width_overrides_width() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setWidth(200f);
|
||||||
|
root.setMaxWidth(100f);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_min_height_overrides_height() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setHeight(50f);
|
||||||
|
root.setMinHeight(100f);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_max_height_overrides_height() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setHeight(200f);
|
||||||
|
root.setMaxHeight(100f);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_min_max_percent_no_width_height() {
|
||||||
|
final YogaNode root = new YogaNode();
|
||||||
|
root.setAlignItems(YogaAlign.FLEX_START);
|
||||||
|
root.setWidth(100f);
|
||||||
|
root.setHeight(100f);
|
||||||
|
|
||||||
|
final YogaNode root_child0 = new YogaNode();
|
||||||
|
root_child0.setMinWidthPercent(10f);
|
||||||
|
root_child0.setMaxWidthPercent(10f);
|
||||||
|
root_child0.setMinHeightPercent(10f);
|
||||||
|
root_child0.setMaxHeightPercent(10f);
|
||||||
|
root.addChildAt(root_child0, 0);
|
||||||
|
root.setDirection(YogaDirection.LTR);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(0f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
root.setDirection(YogaDirection.RTL);
|
||||||
|
root.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(0f, root.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(100f, root.getLayoutHeight(), 0.0f);
|
||||||
|
|
||||||
|
assertEquals(90f, root_child0.getLayoutX(), 0.0f);
|
||||||
|
assertEquals(0f, root_child0.getLayoutY(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutWidth(), 0.0f);
|
||||||
|
assertEquals(10f, root_child0.getLayoutHeight(), 0.0f);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -202,6 +202,23 @@ public class YogaNodeTest {
|
|||||||
assertEquals(4, (int) node.getLayoutPadding(YogaEdge.BOTTOM));
|
assertEquals(4, (int) node.getLayoutPadding(YogaEdge.BOTTOM));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testLayoutBorder() {
|
||||||
|
final YogaNode node = new YogaNode();
|
||||||
|
node.setWidth(100);
|
||||||
|
node.setHeight(100);
|
||||||
|
node.setBorder(YogaEdge.START, 1);
|
||||||
|
node.setBorder(YogaEdge.END, 2);
|
||||||
|
node.setBorder(YogaEdge.TOP, 3);
|
||||||
|
node.setBorder(YogaEdge.BOTTOM, 4);
|
||||||
|
node.calculateLayout(YogaConstants.UNDEFINED, YogaConstants.UNDEFINED);
|
||||||
|
|
||||||
|
assertEquals(1, (int) node.getLayoutBorder(YogaEdge.LEFT));
|
||||||
|
assertEquals(2, (int) node.getLayoutBorder(YogaEdge.RIGHT));
|
||||||
|
assertEquals(3, (int) node.getLayoutBorder(YogaEdge.TOP));
|
||||||
|
assertEquals(4, (int) node.getLayoutBorder(YogaEdge.BOTTOM));
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPercentPaddingOnRoot() {
|
public void testPercentPaddingOnRoot() {
|
||||||
final YogaNode node = new YogaNode();
|
final YogaNode node = new YogaNode();
|
||||||
@@ -213,4 +230,16 @@ public class YogaNodeTest {
|
|||||||
assertEquals(5, (int) node.getLayoutPadding(YogaEdge.TOP));
|
assertEquals(5, (int) node.getLayoutPadding(YogaEdge.TOP));
|
||||||
assertEquals(5, (int) node.getLayoutPadding(YogaEdge.BOTTOM));
|
assertEquals(5, (int) node.getLayoutPadding(YogaEdge.BOTTOM));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDefaultEdgeValues() {
|
||||||
|
final YogaNode node = new YogaNode();
|
||||||
|
|
||||||
|
for (YogaEdge edge : YogaEdge.values()) {
|
||||||
|
assertEquals(YogaUnit.UNDEFINED, node.getMargin(edge).unit);
|
||||||
|
assertEquals(YogaUnit.UNDEFINED, node.getPadding(edge).unit);
|
||||||
|
assertEquals(YogaUnit.UNDEFINED, node.getPosition(edge).unit);
|
||||||
|
assertTrue(YogaConstants.isUndefined(node.getBorder(edge)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
26
java/tests/com/facebook/yoga/YogaValueTest.java
Normal file
26
java/tests/com/facebook/yoga/YogaValueTest.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/**
|
||||||
|
* 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 org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
public class YogaValueTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testEquals() {
|
||||||
|
assertEquals(new YogaValue(0, YogaUnit.UNDEFINED), new YogaValue(0, YogaUnit.UNDEFINED));
|
||||||
|
assertEquals(new YogaValue(0, YogaUnit.PIXEL), new YogaValue(0, YogaUnit.PIXEL));
|
||||||
|
assertEquals(new YogaValue(0, YogaUnit.PERCENT), new YogaValue(0, YogaUnit.PERCENT));
|
||||||
|
assertEquals(new YogaValue(0, YogaUnit.UNDEFINED), new YogaValue(1, YogaUnit.UNDEFINED));
|
||||||
|
assertEquals(new YogaValue(Float.NaN, YogaUnit.PIXEL), new YogaValue(Float.NaN, YogaUnit.PIXEL));
|
||||||
|
}
|
||||||
|
}
|
@@ -9,13 +9,15 @@
|
|||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
ALIGN_COUNT: 6,
|
ALIGN_COUNT: 8,
|
||||||
ALIGN_AUTO: 0,
|
ALIGN_AUTO: 0,
|
||||||
ALIGN_FLEX_START: 1,
|
ALIGN_FLEX_START: 1,
|
||||||
ALIGN_CENTER: 2,
|
ALIGN_CENTER: 2,
|
||||||
ALIGN_FLEX_END: 3,
|
ALIGN_FLEX_END: 3,
|
||||||
ALIGN_STRETCH: 4,
|
ALIGN_STRETCH: 4,
|
||||||
ALIGN_BASELINE: 5,
|
ALIGN_BASELINE: 5,
|
||||||
|
ALIGN_SPACE_BETWEEN: 6,
|
||||||
|
ALIGN_SPACE_AROUND: 7,
|
||||||
|
|
||||||
DIMENSION_COUNT: 2,
|
DIMENSION_COUNT: 2,
|
||||||
DIMENSION_WIDTH: 0,
|
DIMENSION_WIDTH: 0,
|
||||||
|
@@ -13,8 +13,9 @@ var Yoga = Yoga || require("../../sources/entry-" + process.env.TEST_ENTRY);
|
|||||||
|
|
||||||
it("align_content_flex_start", function () {
|
it("align_content_flex_start", function () {
|
||||||
var root = Yoga.Node.create();
|
var root = Yoga.Node.create();
|
||||||
|
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
||||||
root.setFlexWrap(Yoga.WRAP_WRAP);
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
root.setWidth(100);
|
root.setWidth(130);
|
||||||
root.setHeight(100);
|
root.setHeight(100);
|
||||||
|
|
||||||
var root_child0 = Yoga.Node.create();
|
var root_child0 = Yoga.Node.create();
|
||||||
@@ -45,7 +46,7 @@ it("align_content_flex_start", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
@@ -53,23 +54,23 @@ it("align_content_flex_start", function () {
|
|||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(10 === root_child2.getComputedTop(), "10 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(10 === root_child3.getComputedTop(), "10 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(20 === root_child4.getComputedTop(), "20 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -77,31 +78,31 @@ it("align_content_flex_start", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(10 === root_child2.getComputedTop(), "10 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(10 === root_child3.getComputedTop(), "10 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(20 === root_child4.getComputedTop(), "20 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -113,9 +114,10 @@ it("align_content_flex_start", function () {
|
|||||||
});
|
});
|
||||||
it("align_content_flex_end", function () {
|
it("align_content_flex_end", function () {
|
||||||
var root = Yoga.Node.create();
|
var root = Yoga.Node.create();
|
||||||
|
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
||||||
root.setAlignContent(Yoga.ALIGN_FLEX_END);
|
root.setAlignContent(Yoga.ALIGN_FLEX_END);
|
||||||
root.setFlexWrap(Yoga.WRAP_WRAP);
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
root.setWidth(100);
|
root.setWidth(130);
|
||||||
root.setHeight(100);
|
root.setHeight(100);
|
||||||
|
|
||||||
var root_child0 = Yoga.Node.create();
|
var root_child0 = Yoga.Node.create();
|
||||||
@@ -146,31 +148,31 @@ it("align_content_flex_end", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(70 === root_child0.getComputedTop(), "70 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(70 === root_child1.getComputedTop(), "70 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -178,31 +180,31 @@ it("align_content_flex_end", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(70 === root_child0.getComputedTop(), "70 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(70 === root_child1.getComputedTop(), "70 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(80 === root_child2.getComputedTop(), "80 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(80 === root_child3.getComputedTop(), "80 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -214,9 +216,10 @@ it("align_content_flex_end", function () {
|
|||||||
});
|
});
|
||||||
it("align_content_center", function () {
|
it("align_content_center", function () {
|
||||||
var root = Yoga.Node.create();
|
var root = Yoga.Node.create();
|
||||||
|
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
||||||
root.setAlignContent(Yoga.ALIGN_CENTER);
|
root.setAlignContent(Yoga.ALIGN_CENTER);
|
||||||
root.setFlexWrap(Yoga.WRAP_WRAP);
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
root.setWidth(100);
|
root.setWidth(130);
|
||||||
root.setHeight(100);
|
root.setHeight(100);
|
||||||
|
|
||||||
var root_child0 = Yoga.Node.create();
|
var root_child0 = Yoga.Node.create();
|
||||||
@@ -247,31 +250,31 @@ it("align_content_center", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(35 === root_child0.getComputedTop(), "35 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child1.getComputedLeft(), "0 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(35 === root_child1.getComputedTop(), "35 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child3.getComputedLeft(), "0 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(55 === root_child4.getComputedTop(), "55 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -279,31 +282,31 @@ it("align_content_center", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(35 === root_child0.getComputedTop(), "35 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(10 === root_child1.getComputedTop(), "10 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(35 === root_child1.getComputedTop(), "35 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(20 === root_child2.getComputedTop(), "20 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(30 === root_child3.getComputedTop(), "30 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(40 === root_child4.getComputedTop(), "40 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(55 === root_child4.getComputedTop(), "55 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
@@ -317,7 +320,7 @@ it("align_content_stretch", function () {
|
|||||||
var root = Yoga.Node.create();
|
var root = Yoga.Node.create();
|
||||||
root.setAlignContent(Yoga.ALIGN_STRETCH);
|
root.setAlignContent(Yoga.ALIGN_STRETCH);
|
||||||
root.setFlexWrap(Yoga.WRAP_WRAP);
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
root.setWidth(100);
|
root.setWidth(150);
|
||||||
root.setHeight(100);
|
root.setHeight(100);
|
||||||
|
|
||||||
var root_child0 = Yoga.Node.create();
|
var root_child0 = Yoga.Node.create();
|
||||||
@@ -343,7 +346,7 @@ it("align_content_stretch", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
@@ -375,30 +378,30 @@ it("align_content_stretch", function () {
|
|||||||
|
|
||||||
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
console.assert(150 === root.getComputedWidth(), "150 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child0.getComputedLeft(), "50 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
console.assert(100 === root_child0.getComputedLeft(), "100 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
console.assert(0 === root_child0.getComputedHeight(), "0 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
console.assert(0 === root_child0.getComputedHeight(), "0 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
console.assert(100 === root_child1.getComputedLeft(), "100 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
console.assert(0 === root_child1.getComputedHeight(), "0 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
console.assert(0 === root_child1.getComputedHeight(), "0 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child2.getComputedLeft(), "50 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
console.assert(100 === root_child2.getComputedLeft(), "100 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
console.assert(0 === root_child2.getComputedTop(), "0 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
console.assert(0 === root_child2.getComputedHeight(), "0 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
console.assert(100 === root_child3.getComputedLeft(), "100 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
console.assert(0 === root_child3.getComputedTop(), "0 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
console.assert(0 === root_child3.getComputedHeight(), "0 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
console.assert(0 === root_child3.getComputedHeight(), "0 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
console.assert(50 === root_child4.getComputedLeft(), "50 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
console.assert(100 === root_child4.getComputedLeft(), "100 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
console.assert(0 === root_child4.getComputedTop(), "0 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
console.assert(0 === root_child4.getComputedHeight(), "0 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
@@ -409,3 +412,207 @@ it("align_content_stretch", function () {
|
|||||||
(typeof gc !== "undefined") && gc();
|
(typeof gc !== "undefined") && gc();
|
||||||
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
});
|
});
|
||||||
|
it("align_content_spacebetween", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
||||||
|
root.setAlignContent(Yoga.ALIGN_SPACE_BETWEEN);
|
||||||
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
|
root.setWidth(130);
|
||||||
|
root.setHeight(100);
|
||||||
|
|
||||||
|
var root_child0 = Yoga.Node.create();
|
||||||
|
root_child0.setWidth(50);
|
||||||
|
root_child0.setHeight(10);
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
|
||||||
|
var root_child1 = Yoga.Node.create();
|
||||||
|
root_child1.setWidth(50);
|
||||||
|
root_child1.setHeight(10);
|
||||||
|
root.insertChild(root_child1, 1);
|
||||||
|
|
||||||
|
var root_child2 = Yoga.Node.create();
|
||||||
|
root_child2.setWidth(50);
|
||||||
|
root_child2.setHeight(10);
|
||||||
|
root.insertChild(root_child2, 2);
|
||||||
|
|
||||||
|
var root_child3 = Yoga.Node.create();
|
||||||
|
root_child3.setWidth(50);
|
||||||
|
root_child3.setHeight(10);
|
||||||
|
root.insertChild(root_child3, 3);
|
||||||
|
|
||||||
|
var root_child4 = Yoga.Node.create();
|
||||||
|
root_child4.setWidth(50);
|
||||||
|
root_child4.setHeight(10);
|
||||||
|
root.insertChild(root_child4, 4);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
|
console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
|
console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
|
console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(130 === root.getComputedWidth(), "130 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(80 === root_child0.getComputedLeft(), "80 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(30 === root_child1.getComputedLeft(), "30 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child1.getComputedTop(), "0 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(80 === root_child2.getComputedLeft(), "80 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
|
console.assert(45 === root_child2.getComputedTop(), "45 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(30 === root_child3.getComputedLeft(), "30 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
|
console.assert(45 === root_child3.getComputedTop(), "45 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(80 === root_child4.getComputedLeft(), "80 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
|
console.assert(90 === root_child4.getComputedTop(), "90 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
it("align_content_spacearound", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setFlexDirection(Yoga.FLEX_DIRECTION_ROW);
|
||||||
|
root.setAlignContent(Yoga.ALIGN_SPACE_AROUND);
|
||||||
|
root.setFlexWrap(Yoga.WRAP_WRAP);
|
||||||
|
root.setWidth(140);
|
||||||
|
root.setHeight(120);
|
||||||
|
|
||||||
|
var root_child0 = Yoga.Node.create();
|
||||||
|
root_child0.setWidth(50);
|
||||||
|
root_child0.setHeight(10);
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
|
||||||
|
var root_child1 = Yoga.Node.create();
|
||||||
|
root_child1.setWidth(50);
|
||||||
|
root_child1.setHeight(10);
|
||||||
|
root.insertChild(root_child1, 1);
|
||||||
|
|
||||||
|
var root_child2 = Yoga.Node.create();
|
||||||
|
root_child2.setWidth(50);
|
||||||
|
root_child2.setHeight(10);
|
||||||
|
root.insertChild(root_child2, 2);
|
||||||
|
|
||||||
|
var root_child3 = Yoga.Node.create();
|
||||||
|
root_child3.setWidth(50);
|
||||||
|
root_child3.setHeight(10);
|
||||||
|
root.insertChild(root_child3, 3);
|
||||||
|
|
||||||
|
var root_child4 = Yoga.Node.create();
|
||||||
|
root_child4.setWidth(50);
|
||||||
|
root_child4.setHeight(10);
|
||||||
|
root.insertChild(root_child4, 4);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(140 === root.getComputedWidth(), "140 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(120 === root.getComputedHeight(), "120 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(15 === root_child0.getComputedTop(), "15 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(50 === root_child1.getComputedLeft(), "50 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
|
console.assert(15 === root_child1.getComputedTop(), "15 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child2.getComputedLeft(), "0 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
|
console.assert(55 === root_child2.getComputedTop(), "55 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(50 === root_child3.getComputedLeft(), "50 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
|
console.assert(55 === root_child3.getComputedTop(), "55 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child4.getComputedLeft(), "0 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
|
console.assert(95 === root_child4.getComputedTop(), "95 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(140 === root.getComputedWidth(), "140 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(120 === root.getComputedHeight(), "120 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(90 === root_child0.getComputedLeft(), "90 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(15 === root_child0.getComputedTop(), "15 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child0.getComputedWidth(), "50 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(40 === root_child1.getComputedLeft(), "40 === root_child1.getComputedLeft() (" + root_child1.getComputedLeft() + ")");
|
||||||
|
console.assert(15 === root_child1.getComputedTop(), "15 === root_child1.getComputedTop() (" + root_child1.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child1.getComputedWidth(), "50 === root_child1.getComputedWidth() (" + root_child1.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child1.getComputedHeight(), "10 === root_child1.getComputedHeight() (" + root_child1.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(90 === root_child2.getComputedLeft(), "90 === root_child2.getComputedLeft() (" + root_child2.getComputedLeft() + ")");
|
||||||
|
console.assert(55 === root_child2.getComputedTop(), "55 === root_child2.getComputedTop() (" + root_child2.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child2.getComputedWidth(), "50 === root_child2.getComputedWidth() (" + root_child2.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child2.getComputedHeight(), "10 === root_child2.getComputedHeight() (" + root_child2.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(40 === root_child3.getComputedLeft(), "40 === root_child3.getComputedLeft() (" + root_child3.getComputedLeft() + ")");
|
||||||
|
console.assert(55 === root_child3.getComputedTop(), "55 === root_child3.getComputedTop() (" + root_child3.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child3.getComputedWidth(), "50 === root_child3.getComputedWidth() (" + root_child3.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child3.getComputedHeight(), "10 === root_child3.getComputedHeight() (" + root_child3.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(90 === root_child4.getComputedLeft(), "90 === root_child4.getComputedLeft() (" + root_child4.getComputedLeft() + ")");
|
||||||
|
console.assert(95 === root_child4.getComputedTop(), "95 === root_child4.getComputedTop() (" + root_child4.getComputedTop() + ")");
|
||||||
|
console.assert(50 === root_child4.getComputedWidth(), "50 === root_child4.getComputedWidth() (" + root_child4.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child4.getComputedHeight(), "10 === root_child4.getComputedHeight() (" + root_child4.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
@@ -682,3 +682,141 @@ it("flex_grow_within_constrained_max_column", function () {
|
|||||||
(typeof gc !== "undefined") && gc();
|
(typeof gc !== "undefined") && gc();
|
||||||
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
});
|
});
|
||||||
|
it("min_width_overrides_width", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setWidth(50);
|
||||||
|
root.setMinWidth(100);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(0 === root.getComputedHeight(), "0 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(0 === root.getComputedHeight(), "0 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
it("max_width_overrides_width", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setWidth(200);
|
||||||
|
root.setMaxWidth(100);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(0 === root.getComputedHeight(), "0 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(0 === root.getComputedHeight(), "0 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
it("min_height_overrides_height", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setHeight(50);
|
||||||
|
root.setMinHeight(100);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(0 === root.getComputedWidth(), "0 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(0 === root.getComputedWidth(), "0 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
it("max_height_overrides_height", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setHeight(200);
|
||||||
|
root.setMaxHeight(100);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(0 === root.getComputedWidth(), "0 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(0 === root.getComputedWidth(), "0 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
it("min_max_percent_no_width_height", function () {
|
||||||
|
var root = Yoga.Node.create();
|
||||||
|
root.setAlignItems(Yoga.ALIGN_FLEX_START);
|
||||||
|
root.setWidth(100);
|
||||||
|
root.setHeight(100);
|
||||||
|
|
||||||
|
var root_child0 = Yoga.Node.create();
|
||||||
|
root_child0.setMinWidth("10%");
|
||||||
|
root_child0.setMaxWidth("10%");
|
||||||
|
root_child0.setMinHeight("10%");
|
||||||
|
root_child0.setMaxHeight("10%");
|
||||||
|
root.insertChild(root_child0, 0);
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(0 === root_child0.getComputedLeft(), "0 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedWidth(), "10 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_RTL);
|
||||||
|
|
||||||
|
console.assert(0 === root.getComputedLeft(), "0 === root.getComputedLeft() (" + root.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root.getComputedTop(), "0 === root.getComputedTop() (" + root.getComputedTop() + ")");
|
||||||
|
console.assert(100 === root.getComputedWidth(), "100 === root.getComputedWidth() (" + root.getComputedWidth() + ")");
|
||||||
|
console.assert(100 === root.getComputedHeight(), "100 === root.getComputedHeight() (" + root.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
console.assert(90 === root_child0.getComputedLeft(), "90 === root_child0.getComputedLeft() (" + root_child0.getComputedLeft() + ")");
|
||||||
|
console.assert(0 === root_child0.getComputedTop(), "0 === root_child0.getComputedTop() (" + root_child0.getComputedTop() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedWidth(), "10 === root_child0.getComputedWidth() (" + root_child0.getComputedWidth() + ")");
|
||||||
|
console.assert(10 === root_child0.getComputedHeight(), "10 === root_child0.getComputedHeight() (" + root_child0.getComputedHeight() + ")");
|
||||||
|
|
||||||
|
if (typeof root !== "undefined")
|
||||||
|
root.freeRecursive();
|
||||||
|
|
||||||
|
(typeof gc !== "undefined") && gc();
|
||||||
|
console.assert(0 === Yoga.getInstanceCount(), "0 === Yoga.getInstanceCount() (" + Yoga.getInstanceCount() + ")");
|
||||||
|
});
|
||||||
|
@@ -14,8 +14,9 @@
|
|||||||
|
|
||||||
TEST(YogaTest, align_content_flex_start) {
|
TEST(YogaTest, align_content_flex_start) {
|
||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
|
||||||
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 130);
|
||||||
YGNodeStyleSetHeight(root, 100);
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
const YGNodeRef root_child0 = YGNodeNew();
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
@@ -46,7 +47,7 @@ TEST(YogaTest, align_content_flex_start) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
@@ -54,23 +55,23 @@ TEST(YogaTest, align_content_flex_start) {
|
|||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -78,31 +79,31 @@ TEST(YogaTest, align_content_flex_start) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -111,9 +112,10 @@ TEST(YogaTest, align_content_flex_start) {
|
|||||||
|
|
||||||
TEST(YogaTest, align_content_flex_end) {
|
TEST(YogaTest, align_content_flex_end) {
|
||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
|
||||||
YGNodeStyleSetAlignContent(root, YGAlignFlexEnd);
|
YGNodeStyleSetAlignContent(root, YGAlignFlexEnd);
|
||||||
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 130);
|
||||||
YGNodeStyleSetHeight(root, 100);
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
const YGNodeRef root_child0 = YGNodeNew();
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
@@ -144,31 +146,31 @@ TEST(YogaTest, align_content_flex_end) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -176,31 +178,31 @@ TEST(YogaTest, align_content_flex_end) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(70, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -209,9 +211,10 @@ TEST(YogaTest, align_content_flex_end) {
|
|||||||
|
|
||||||
TEST(YogaTest, align_content_center) {
|
TEST(YogaTest, align_content_center) {
|
||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
|
||||||
YGNodeStyleSetAlignContent(root, YGAlignCenter);
|
YGNodeStyleSetAlignContent(root, YGAlignCenter);
|
||||||
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 130);
|
||||||
YGNodeStyleSetHeight(root, 100);
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
const YGNodeRef root_child0 = YGNodeNew();
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
@@ -242,31 +245,31 @@ TEST(YogaTest, align_content_center) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -274,31 +277,31 @@ TEST(YogaTest, align_content_center) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(35, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(20, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
@@ -309,7 +312,7 @@ TEST(YogaTest, align_content_stretch) {
|
|||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
YGNodeStyleSetAlignContent(root, YGAlignStretch);
|
YGNodeStyleSetAlignContent(root, YGAlignStretch);
|
||||||
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 150);
|
||||||
YGNodeStyleSetHeight(root, 100);
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
const YGNodeRef root_child0 = YGNodeNew();
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
@@ -335,7 +338,7 @@ TEST(YogaTest, align_content_stretch) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
@@ -367,33 +370,231 @@ TEST(YogaTest, align_content_stretch) {
|
|||||||
|
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
ASSERT_FLOAT_EQ(150, YGNodeLayoutGetWidth(root));
|
||||||
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child0));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child0));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child1));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child1));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child2));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child2));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child2));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child3));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child3));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child3));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child4));
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetLeft(root_child4));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child4));
|
||||||
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4));
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
YGNodeFreeRecursive(root);
|
YGNodeFreeRecursive(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, align_content_spacebetween) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
|
||||||
|
YGNodeStyleSetAlignContent(root, YGAlignSpaceBetween);
|
||||||
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
|
YGNodeStyleSetWidth(root, 130);
|
||||||
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child0, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child0, 10);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
|
||||||
|
const YGNodeRef root_child1 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child1, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child1, 10);
|
||||||
|
YGNodeInsertChild(root, root_child1, 1);
|
||||||
|
|
||||||
|
const YGNodeRef root_child2 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child2, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child2, 10);
|
||||||
|
YGNodeInsertChild(root, root_child2, 2);
|
||||||
|
|
||||||
|
const YGNodeRef root_child3 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child3, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child3, 10);
|
||||||
|
YGNodeInsertChild(root, root_child3, 3);
|
||||||
|
|
||||||
|
const YGNodeRef root_child4 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child4, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child4, 10);
|
||||||
|
YGNodeInsertChild(root, root_child4, 4);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(130, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(30, YGNodeLayoutGetLeft(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(45, YGNodeLayoutGetTop(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(80, YGNodeLayoutGetLeft(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetTop(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, align_content_spacearound) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetFlexDirection(root, YGFlexDirectionRow);
|
||||||
|
YGNodeStyleSetAlignContent(root, YGAlignSpaceAround);
|
||||||
|
YGNodeStyleSetFlexWrap(root, YGWrapWrap);
|
||||||
|
YGNodeStyleSetWidth(root, 140);
|
||||||
|
YGNodeStyleSetHeight(root, 120);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child0, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child0, 10);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
|
||||||
|
const YGNodeRef root_child1 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child1, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child1, 10);
|
||||||
|
YGNodeInsertChild(root, root_child1, 1);
|
||||||
|
|
||||||
|
const YGNodeRef root_child2 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child2, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child2, 10);
|
||||||
|
YGNodeInsertChild(root, root_child2, 2);
|
||||||
|
|
||||||
|
const YGNodeRef root_child3 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child3, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child3, 10);
|
||||||
|
YGNodeInsertChild(root, root_child3, 3);
|
||||||
|
|
||||||
|
const YGNodeRef root_child4 = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root_child4, 50);
|
||||||
|
YGNodeStyleSetHeight(root_child4, 10);
|
||||||
|
YGNodeInsertChild(root, root_child4, 4);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(140, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetLeft(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(95, YGNodeLayoutGetTop(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(140, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(120, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetLeft(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(15, YGNodeLayoutGetTop(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child1));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child1));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child2));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child2));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(40, YGNodeLayoutGetLeft(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(55, YGNodeLayoutGetTop(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child3));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child3));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(95, YGNodeLayoutGetTop(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(50, YGNodeLayoutGetWidth(root_child4));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child4));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
@@ -123,7 +123,7 @@ TEST(YogaTest, dont_measure_when_min_equals_max_percentages) {
|
|||||||
YGNodeFreeRecursive(root);
|
YGNodeFreeRecursive(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(YogaTest, dont_measure_when_min_equals_max_mixed) {
|
TEST(YogaTest, dont_measure_when_min_equals_max_mixed_width_percent) {
|
||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
|
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 100);
|
||||||
@@ -151,7 +151,7 @@ TEST(YogaTest, dont_measure_when_min_equals_max_mixed) {
|
|||||||
YGNodeFreeRecursive(root);
|
YGNodeFreeRecursive(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(YogaTest, dont_measure_when_min_equals_max_mixed_2) {
|
TEST(YogaTest, dont_measure_when_min_equals_max_mixed_height_percent) {
|
||||||
const YGNodeRef root = YGNodeNew();
|
const YGNodeRef root = YGNodeNew();
|
||||||
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
|
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
|
||||||
YGNodeStyleSetWidth(root, 100);
|
YGNodeStyleSetWidth(root, 100);
|
||||||
|
@@ -643,3 +643,126 @@ TEST(YogaTest, flex_grow_within_constrained_max_column) {
|
|||||||
|
|
||||||
YGNodeFreeRecursive(root);
|
YGNodeFreeRecursive(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, min_width_overrides_width) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root, 50);
|
||||||
|
YGNodeStyleSetMinWidth(root, 100);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, max_width_overrides_width) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetWidth(root, 200);
|
||||||
|
YGNodeStyleSetMaxWidth(root, 100);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, min_height_overrides_height) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetHeight(root, 50);
|
||||||
|
YGNodeStyleSetMinHeight(root, 100);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, max_height_overrides_height) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetHeight(root, 200);
|
||||||
|
YGNodeStyleSetMaxHeight(root, 100);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, min_max_percent_no_width_height) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
YGNodeStyleSetAlignItems(root, YGAlignFlexStart);
|
||||||
|
YGNodeStyleSetWidth(root, 100);
|
||||||
|
YGNodeStyleSetHeight(root, 100);
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
|
YGNodeStyleSetMinWidthPercent(root_child0, 10);
|
||||||
|
YGNodeStyleSetMaxWidthPercent(root_child0, 10);
|
||||||
|
YGNodeStyleSetMinHeightPercent(root_child0, 10);
|
||||||
|
YGNodeStyleSetMaxHeightPercent(root_child0, 10);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionRTL);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetLeft(root));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetWidth(root));
|
||||||
|
ASSERT_FLOAT_EQ(100, YGNodeLayoutGetHeight(root));
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(90, YGNodeLayoutGetLeft(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetTop(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetWidth(root_child0));
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
@@ -29,3 +29,22 @@ TEST(YogaTest, dont_cache_computed_flex_basis_between_layouts) {
|
|||||||
|
|
||||||
YGSetExperimentalFeatureEnabled(YGExperimentalFeatureWebFlexBasis, false);
|
YGSetExperimentalFeatureEnabled(YGExperimentalFeatureWebFlexBasis, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(YogaTest, recalculate_resolvedDimonsion_onchange) {
|
||||||
|
const YGNodeRef root = YGNodeNew();
|
||||||
|
|
||||||
|
const YGNodeRef root_child0 = YGNodeNew();
|
||||||
|
YGNodeStyleSetMinHeight(root_child0, 10);
|
||||||
|
YGNodeStyleSetMaxHeight(root_child0, 10);
|
||||||
|
YGNodeInsertChild(root, root_child0, 0);
|
||||||
|
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
ASSERT_FLOAT_EQ(10, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeStyleSetMinHeight(root_child0, YGUndefined);
|
||||||
|
YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
|
||||||
|
|
||||||
|
ASSERT_FLOAT_EQ(0, YGNodeLayoutGetHeight(root_child0));
|
||||||
|
|
||||||
|
YGNodeFreeRecursive(root);
|
||||||
|
}
|
||||||
|
111
yoga/YGEnums.h
111
yoga/YGEnums.h
@@ -13,23 +13,30 @@
|
|||||||
|
|
||||||
YG_EXTERN_C_BEGIN
|
YG_EXTERN_C_BEGIN
|
||||||
|
|
||||||
#define YGAlignCount 6
|
#define YGAlignCount 8
|
||||||
typedef YG_ENUM_BEGIN(YGAlign) {
|
typedef YG_ENUM_BEGIN(YGAlign) {
|
||||||
YGAlignAuto, YGAlignFlexStart, YGAlignCenter, YGAlignFlexEnd, YGAlignStretch, YGAlignBaseline,
|
YGAlignAuto,
|
||||||
}
|
YGAlignFlexStart,
|
||||||
YG_ENUM_END(YGAlign);
|
YGAlignCenter,
|
||||||
|
YGAlignFlexEnd,
|
||||||
|
YGAlignStretch,
|
||||||
|
YGAlignBaseline,
|
||||||
|
YGAlignSpaceBetween,
|
||||||
|
YGAlignSpaceAround,
|
||||||
|
} YG_ENUM_END(YGAlign);
|
||||||
|
|
||||||
#define YGDimensionCount 2
|
#define YGDimensionCount 2
|
||||||
typedef YG_ENUM_BEGIN(YGDimension) {
|
typedef YG_ENUM_BEGIN(YGDimension) {
|
||||||
YGDimensionWidth, YGDimensionHeight,
|
YGDimensionWidth,
|
||||||
}
|
YGDimensionHeight,
|
||||||
YG_ENUM_END(YGDimension);
|
} YG_ENUM_END(YGDimension);
|
||||||
|
|
||||||
#define YGDirectionCount 3
|
#define YGDirectionCount 3
|
||||||
typedef YG_ENUM_BEGIN(YGDirection) {
|
typedef YG_ENUM_BEGIN(YGDirection) {
|
||||||
YGDirectionInherit, YGDirectionLTR, YGDirectionRTL,
|
YGDirectionInherit,
|
||||||
}
|
YGDirectionLTR,
|
||||||
YG_ENUM_END(YGDirection);
|
YGDirectionRTL,
|
||||||
|
} YG_ENUM_END(YGDirection);
|
||||||
|
|
||||||
#define YGDisplayCount 2
|
#define YGDisplayCount 2
|
||||||
typedef YG_ENUM_BEGIN(YGDisplay) {
|
typedef YG_ENUM_BEGIN(YGDisplay) {
|
||||||
@@ -39,71 +46,87 @@ typedef YG_ENUM_BEGIN(YGDisplay) {
|
|||||||
|
|
||||||
#define YGEdgeCount 9
|
#define YGEdgeCount 9
|
||||||
typedef YG_ENUM_BEGIN(YGEdge) {
|
typedef YG_ENUM_BEGIN(YGEdge) {
|
||||||
YGEdgeLeft, YGEdgeTop, YGEdgeRight, YGEdgeBottom, YGEdgeStart, YGEdgeEnd, YGEdgeHorizontal,
|
YGEdgeLeft,
|
||||||
YGEdgeVertical, YGEdgeAll,
|
YGEdgeTop,
|
||||||
}
|
YGEdgeRight,
|
||||||
YG_ENUM_END(YGEdge);
|
YGEdgeBottom,
|
||||||
|
YGEdgeStart,
|
||||||
|
YGEdgeEnd,
|
||||||
|
YGEdgeHorizontal,
|
||||||
|
YGEdgeVertical,
|
||||||
|
YGEdgeAll,
|
||||||
|
} YG_ENUM_END(YGEdge);
|
||||||
|
|
||||||
#define YGExperimentalFeatureCount 2
|
#define YGExperimentalFeatureCount 2
|
||||||
typedef YG_ENUM_BEGIN(YGExperimentalFeature) {
|
typedef YG_ENUM_BEGIN(YGExperimentalFeature) {
|
||||||
YGExperimentalFeatureRounding, YGExperimentalFeatureWebFlexBasis,
|
YGExperimentalFeatureRounding,
|
||||||
}
|
YGExperimentalFeatureWebFlexBasis,
|
||||||
YG_ENUM_END(YGExperimentalFeature);
|
} YG_ENUM_END(YGExperimentalFeature);
|
||||||
|
|
||||||
#define YGFlexDirectionCount 4
|
#define YGFlexDirectionCount 4
|
||||||
typedef YG_ENUM_BEGIN(YGFlexDirection) {
|
typedef YG_ENUM_BEGIN(YGFlexDirection) {
|
||||||
YGFlexDirectionColumn, YGFlexDirectionColumnReverse, YGFlexDirectionRow,
|
YGFlexDirectionColumn,
|
||||||
|
YGFlexDirectionColumnReverse,
|
||||||
|
YGFlexDirectionRow,
|
||||||
YGFlexDirectionRowReverse,
|
YGFlexDirectionRowReverse,
|
||||||
}
|
} YG_ENUM_END(YGFlexDirection);
|
||||||
YG_ENUM_END(YGFlexDirection);
|
|
||||||
|
|
||||||
#define YGJustifyCount 5
|
#define YGJustifyCount 5
|
||||||
typedef YG_ENUM_BEGIN(YGJustify) {
|
typedef YG_ENUM_BEGIN(YGJustify) {
|
||||||
YGJustifyFlexStart, YGJustifyCenter, YGJustifyFlexEnd, YGJustifySpaceBetween,
|
YGJustifyFlexStart,
|
||||||
|
YGJustifyCenter,
|
||||||
|
YGJustifyFlexEnd,
|
||||||
|
YGJustifySpaceBetween,
|
||||||
YGJustifySpaceAround,
|
YGJustifySpaceAround,
|
||||||
}
|
} YG_ENUM_END(YGJustify);
|
||||||
YG_ENUM_END(YGJustify);
|
|
||||||
|
|
||||||
#define YGLogLevelCount 5
|
#define YGLogLevelCount 5
|
||||||
typedef YG_ENUM_BEGIN(YGLogLevel) {
|
typedef YG_ENUM_BEGIN(YGLogLevel) {
|
||||||
YGLogLevelError, YGLogLevelWarn, YGLogLevelInfo, YGLogLevelDebug, YGLogLevelVerbose,
|
YGLogLevelError,
|
||||||
}
|
YGLogLevelWarn,
|
||||||
YG_ENUM_END(YGLogLevel);
|
YGLogLevelInfo,
|
||||||
|
YGLogLevelDebug,
|
||||||
|
YGLogLevelVerbose,
|
||||||
|
} YG_ENUM_END(YGLogLevel);
|
||||||
|
|
||||||
#define YGMeasureModeCount 3
|
#define YGMeasureModeCount 3
|
||||||
typedef YG_ENUM_BEGIN(YGMeasureMode) {
|
typedef YG_ENUM_BEGIN(YGMeasureMode) {
|
||||||
YGMeasureModeUndefined, YGMeasureModeExactly, YGMeasureModeAtMost,
|
YGMeasureModeUndefined,
|
||||||
}
|
YGMeasureModeExactly,
|
||||||
YG_ENUM_END(YGMeasureMode);
|
YGMeasureModeAtMost,
|
||||||
|
} YG_ENUM_END(YGMeasureMode);
|
||||||
|
|
||||||
#define YGOverflowCount 3
|
#define YGOverflowCount 3
|
||||||
typedef YG_ENUM_BEGIN(YGOverflow) {
|
typedef YG_ENUM_BEGIN(YGOverflow) {
|
||||||
YGOverflowVisible, YGOverflowHidden, YGOverflowScroll,
|
YGOverflowVisible,
|
||||||
}
|
YGOverflowHidden,
|
||||||
YG_ENUM_END(YGOverflow);
|
YGOverflowScroll,
|
||||||
|
} YG_ENUM_END(YGOverflow);
|
||||||
|
|
||||||
#define YGPositionTypeCount 2
|
#define YGPositionTypeCount 2
|
||||||
typedef YG_ENUM_BEGIN(YGPositionType) {
|
typedef YG_ENUM_BEGIN(YGPositionType) {
|
||||||
YGPositionTypeRelative, YGPositionTypeAbsolute,
|
YGPositionTypeRelative,
|
||||||
}
|
YGPositionTypeAbsolute,
|
||||||
YG_ENUM_END(YGPositionType);
|
} YG_ENUM_END(YGPositionType);
|
||||||
|
|
||||||
#define YGPrintOptionsCount 3
|
#define YGPrintOptionsCount 3
|
||||||
typedef YG_ENUM_BEGIN(YGPrintOptions) {
|
typedef YG_ENUM_BEGIN(YGPrintOptions) {
|
||||||
YGPrintOptionsLayout = 1, YGPrintOptionsStyle = 2, YGPrintOptionsChildren = 4,
|
YGPrintOptionsLayout = 1,
|
||||||
}
|
YGPrintOptionsStyle = 2,
|
||||||
YG_ENUM_END(YGPrintOptions);
|
YGPrintOptionsChildren = 4,
|
||||||
|
} YG_ENUM_END(YGPrintOptions);
|
||||||
|
|
||||||
#define YGUnitCount 3
|
#define YGUnitCount 3
|
||||||
typedef YG_ENUM_BEGIN(YGUnit) {
|
typedef YG_ENUM_BEGIN(YGUnit) {
|
||||||
YGUnitUndefined, YGUnitPixel, YGUnitPercent,
|
YGUnitUndefined,
|
||||||
}
|
YGUnitPixel,
|
||||||
YG_ENUM_END(YGUnit);
|
YGUnitPercent,
|
||||||
|
} YG_ENUM_END(YGUnit);
|
||||||
|
|
||||||
#define YGWrapCount 2
|
#define YGWrapCount 2
|
||||||
typedef YG_ENUM_BEGIN(YGWrap) {
|
typedef YG_ENUM_BEGIN(YGWrap) {
|
||||||
YGWrapNoWrap, YGWrapWrap,
|
YGWrapNoWrap,
|
||||||
}
|
YGWrapWrap,
|
||||||
YG_ENUM_END(YGWrap);
|
} YG_ENUM_END(YGWrap);
|
||||||
|
|
||||||
YG_EXTERN_C_END
|
YG_EXTERN_C_END
|
||||||
|
91
yoga/Yoga.c
91
yoga/Yoga.c
@@ -112,7 +112,7 @@ typedef struct YGNode {
|
|||||||
bool isDirty;
|
bool isDirty;
|
||||||
bool hasNewLayout;
|
bool hasNewLayout;
|
||||||
|
|
||||||
YGValue resolvedDimensions[2];
|
YGValue const *resolvedDimensions[2];
|
||||||
} YGNode;
|
} YGNode;
|
||||||
|
|
||||||
#define YG_UNDEFINED_VALUES \
|
#define YG_UNDEFINED_VALUES \
|
||||||
@@ -138,7 +138,8 @@ static YGNode gYGNodeDefaults = {
|
|||||||
.children = NULL,
|
.children = NULL,
|
||||||
.hasNewLayout = true,
|
.hasNewLayout = true,
|
||||||
.isDirty = false,
|
.isDirty = false,
|
||||||
.resolvedDimensions = YG_DEFAULT_DIMENSION_VALUES_UNIT,
|
.resolvedDimensions = {[YGDimensionWidth] = &YGValueUndefined,
|
||||||
|
[YGDimensionHeight] = &YGValueUndefined},
|
||||||
|
|
||||||
.style =
|
.style =
|
||||||
{
|
{
|
||||||
@@ -641,13 +642,11 @@ static inline bool YGValueEqual(const YGValue a, const YGValue b) {
|
|||||||
|
|
||||||
static inline void YGResolveDimensions(YGNodeRef node) {
|
static inline void YGResolveDimensions(YGNodeRef node) {
|
||||||
for (YGDimension dim = YGDimensionWidth; dim <= YGDimensionHeight; dim++) {
|
for (YGDimension dim = YGDimensionWidth; dim <= YGDimensionHeight; dim++) {
|
||||||
if (node->style.dimensions[dim].unit != YGUnitUndefined) {
|
|
||||||
node->resolvedDimensions[dim] = node->style.dimensions[dim];
|
|
||||||
} else {
|
|
||||||
if (node->style.maxDimensions[dim].unit != YGUnitUndefined &&
|
if (node->style.maxDimensions[dim].unit != YGUnitUndefined &&
|
||||||
YGValueEqual(node->style.maxDimensions[dim], node->style.minDimensions[dim])) {
|
YGValueEqual(node->style.maxDimensions[dim], node->style.minDimensions[dim])) {
|
||||||
node->resolvedDimensions[dim] = node->style.maxDimensions[dim];
|
node->resolvedDimensions[dim] = &node->style.maxDimensions[dim];
|
||||||
}
|
} else {
|
||||||
|
node->resolvedDimensions[dim] = &node->style.dimensions[dim];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1097,11 +1096,11 @@ static inline float YGNodeDimWithMargin(const YGNodeRef node,
|
|||||||
static inline bool YGNodeIsStyleDimDefined(const YGNodeRef node,
|
static inline bool YGNodeIsStyleDimDefined(const YGNodeRef node,
|
||||||
const YGFlexDirection axis,
|
const YGFlexDirection axis,
|
||||||
const float parentSize) {
|
const float parentSize) {
|
||||||
return !(node->resolvedDimensions[dim[axis]].unit == YGUnitUndefined ||
|
return !(node->resolvedDimensions[dim[axis]]->unit == YGUnitUndefined ||
|
||||||
(node->resolvedDimensions[dim[axis]].unit == YGUnitPixel &&
|
(node->resolvedDimensions[dim[axis]]->unit == YGUnitPixel &&
|
||||||
node->resolvedDimensions[dim[axis]].value < 0.0f) ||
|
node->resolvedDimensions[dim[axis]]->value < 0.0f) ||
|
||||||
(node->resolvedDimensions[dim[axis]].unit == YGUnitPercent &&
|
(node->resolvedDimensions[dim[axis]]->unit == YGUnitPercent &&
|
||||||
YGFloatIsUndefined(parentSize)));
|
(node->resolvedDimensions[dim[axis]]->value < 0.0f || YGFloatIsUndefined(parentSize))));
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool YGNodeIsLayoutDimDefined(const YGNodeRef node, const YGFlexDirection axis) {
|
static inline bool YGNodeIsLayoutDimDefined(const YGNodeRef node, const YGFlexDirection axis) {
|
||||||
@@ -1167,7 +1166,7 @@ static float YGNodeBoundAxisWithinMinAndMax(const YGNodeRef node,
|
|||||||
const float axisSize) {
|
const float axisSize) {
|
||||||
float min = YGUndefined;
|
float min = YGUndefined;
|
||||||
float max = YGUndefined;
|
float max = YGUndefined;
|
||||||
if (!YGNodeIsStyleDimDefined(node, axis, axisSize)) {
|
|
||||||
if (YGFlexDirectionIsColumn(axis)) {
|
if (YGFlexDirectionIsColumn(axis)) {
|
||||||
min = YGValueResolve(&node->style.minDimensions[YGDimensionHeight], axisSize);
|
min = YGValueResolve(&node->style.minDimensions[YGDimensionHeight], axisSize);
|
||||||
max = YGValueResolve(&node->style.maxDimensions[YGDimensionHeight], axisSize);
|
max = YGValueResolve(&node->style.maxDimensions[YGDimensionHeight], axisSize);
|
||||||
@@ -1175,7 +1174,6 @@ static float YGNodeBoundAxisWithinMinAndMax(const YGNodeRef node,
|
|||||||
min = YGValueResolve(&node->style.minDimensions[YGDimensionWidth], axisSize);
|
min = YGValueResolve(&node->style.minDimensions[YGDimensionWidth], axisSize);
|
||||||
max = YGValueResolve(&node->style.maxDimensions[YGDimensionWidth], axisSize);
|
max = YGValueResolve(&node->style.maxDimensions[YGDimensionWidth], axisSize);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
float boundValue = value;
|
float boundValue = value;
|
||||||
|
|
||||||
@@ -1289,12 +1287,12 @@ static void YGNodeComputeFlexBasisForChild(const YGNodeRef node,
|
|||||||
} else if (isMainAxisRow && isRowStyleDimDefined) {
|
} else if (isMainAxisRow && isRowStyleDimDefined) {
|
||||||
// The width is definite, so use that as the flex basis.
|
// The width is definite, so use that as the flex basis.
|
||||||
child->layout.computedFlexBasis =
|
child->layout.computedFlexBasis =
|
||||||
fmaxf(YGValueResolve(&child->resolvedDimensions[YGDimensionWidth], parentWidth),
|
fmaxf(YGValueResolve(child->resolvedDimensions[YGDimensionWidth], parentWidth),
|
||||||
YGNodePaddingAndBorderForAxis(child, YGFlexDirectionRow, parentWidth));
|
YGNodePaddingAndBorderForAxis(child, YGFlexDirectionRow, parentWidth));
|
||||||
} else if (!isMainAxisRow && isColumnStyleDimDefined) {
|
} else if (!isMainAxisRow && isColumnStyleDimDefined) {
|
||||||
// The height is definite, so use that as the flex basis.
|
// The height is definite, so use that as the flex basis.
|
||||||
child->layout.computedFlexBasis =
|
child->layout.computedFlexBasis =
|
||||||
fmaxf(YGValueResolve(&child->resolvedDimensions[YGDimensionHeight], parentHeight),
|
fmaxf(YGValueResolve(child->resolvedDimensions[YGDimensionHeight], parentHeight),
|
||||||
YGNodePaddingAndBorderForAxis(child, YGFlexDirectionColumn, parentWidth));
|
YGNodePaddingAndBorderForAxis(child, YGFlexDirectionColumn, parentWidth));
|
||||||
} else {
|
} else {
|
||||||
// Compute the flex basis and hypothetical main size (i.e. the clamped
|
// Compute the flex basis and hypothetical main size (i.e. the clamped
|
||||||
@@ -1309,12 +1307,12 @@ static void YGNodeComputeFlexBasisForChild(const YGNodeRef node,
|
|||||||
|
|
||||||
if (isRowStyleDimDefined) {
|
if (isRowStyleDimDefined) {
|
||||||
childWidth =
|
childWidth =
|
||||||
YGValueResolve(&child->resolvedDimensions[YGDimensionWidth], parentWidth) + marginRow;
|
YGValueResolve(child->resolvedDimensions[YGDimensionWidth], parentWidth) + marginRow;
|
||||||
childWidthMeasureMode = YGMeasureModeExactly;
|
childWidthMeasureMode = YGMeasureModeExactly;
|
||||||
}
|
}
|
||||||
if (isColumnStyleDimDefined) {
|
if (isColumnStyleDimDefined) {
|
||||||
childHeight = YGValueResolve(&child->resolvedDimensions[YGDimensionHeight], parentHeight) +
|
childHeight =
|
||||||
marginColumn;
|
YGValueResolve(child->resolvedDimensions[YGDimensionHeight], parentHeight) + marginColumn;
|
||||||
childHeightMeasureMode = YGMeasureModeExactly;
|
childHeightMeasureMode = YGMeasureModeExactly;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1413,7 +1411,7 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node,
|
|||||||
const float marginColumn = YGNodeMarginForAxis(child, YGFlexDirectionColumn, width);
|
const float marginColumn = YGNodeMarginForAxis(child, YGFlexDirectionColumn, width);
|
||||||
|
|
||||||
if (YGNodeIsStyleDimDefined(child, YGFlexDirectionRow, width)) {
|
if (YGNodeIsStyleDimDefined(child, YGFlexDirectionRow, width)) {
|
||||||
childWidth = YGValueResolve(&child->resolvedDimensions[YGDimensionWidth], width) + marginRow;
|
childWidth = YGValueResolve(child->resolvedDimensions[YGDimensionWidth], width) + marginRow;
|
||||||
} else {
|
} else {
|
||||||
// If the child doesn't have a specified width, compute the width based
|
// If the child doesn't have a specified width, compute the width based
|
||||||
// on the left/right
|
// on the left/right
|
||||||
@@ -1431,7 +1429,7 @@ static void YGNodeAbsoluteLayoutChild(const YGNodeRef node,
|
|||||||
|
|
||||||
if (YGNodeIsStyleDimDefined(child, YGFlexDirectionColumn, height)) {
|
if (YGNodeIsStyleDimDefined(child, YGFlexDirectionColumn, height)) {
|
||||||
childHeight =
|
childHeight =
|
||||||
YGValueResolve(&child->resolvedDimensions[YGDimensionHeight], height) + marginColumn;
|
YGValueResolve(child->resolvedDimensions[YGDimensionHeight], height) + marginColumn;
|
||||||
} else {
|
} else {
|
||||||
// If the child doesn't have a specified height, compute the height
|
// If the child doesn't have a specified height, compute the height
|
||||||
// based on the top/bottom
|
// based on the top/bottom
|
||||||
@@ -1545,7 +1543,9 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions(const YGNodeRef node,
|
|||||||
const float availableWidth,
|
const float availableWidth,
|
||||||
const float availableHeight,
|
const float availableHeight,
|
||||||
const YGMeasureMode widthMeasureMode,
|
const YGMeasureMode widthMeasureMode,
|
||||||
const YGMeasureMode heightMeasureMode) {
|
const YGMeasureMode heightMeasureMode,
|
||||||
|
const float parentWidth,
|
||||||
|
const float parentHeight) {
|
||||||
YG_ASSERT(node->measure, "Expected node to have custom measure function");
|
YG_ASSERT(node->measure, "Expected node to have custom measure function");
|
||||||
|
|
||||||
const float paddingAndBorderAxisRow =
|
const float paddingAndBorderAxisRow =
|
||||||
@@ -1561,13 +1561,9 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions(const YGNodeRef node,
|
|||||||
if (widthMeasureMode == YGMeasureModeExactly && heightMeasureMode == YGMeasureModeExactly) {
|
if (widthMeasureMode == YGMeasureModeExactly && heightMeasureMode == YGMeasureModeExactly) {
|
||||||
// Don't bother sizing the text if both dimensions are already defined.
|
// Don't bother sizing the text if both dimensions are already defined.
|
||||||
node->layout.measuredDimensions[YGDimensionWidth] = YGNodeBoundAxis(
|
node->layout.measuredDimensions[YGDimensionWidth] = YGNodeBoundAxis(
|
||||||
node, YGFlexDirectionRow, availableWidth - marginAxisRow, availableWidth, availableWidth);
|
node, YGFlexDirectionRow, availableWidth - marginAxisRow, parentWidth, parentWidth);
|
||||||
node->layout.measuredDimensions[YGDimensionHeight] =
|
node->layout.measuredDimensions[YGDimensionHeight] = YGNodeBoundAxis(
|
||||||
YGNodeBoundAxis(node,
|
node, YGFlexDirectionColumn, availableHeight - marginAxisColumn, parentHeight, parentWidth);
|
||||||
YGFlexDirectionColumn,
|
|
||||||
availableHeight - marginAxisColumn,
|
|
||||||
availableHeight,
|
|
||||||
availableWidth);
|
|
||||||
} else if (innerWidth <= 0.0f || innerHeight <= 0.0f) {
|
} else if (innerWidth <= 0.0f || innerHeight <= 0.0f) {
|
||||||
// Don't bother sizing the text if there's no horizontal or vertical
|
// Don't bother sizing the text if there's no horizontal or vertical
|
||||||
// space.
|
// space.
|
||||||
@@ -1841,8 +1837,13 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
YGNodeTrailingPadding(node, flexColumnDirection, parentWidth);
|
YGNodeTrailingPadding(node, flexColumnDirection, parentWidth);
|
||||||
|
|
||||||
if (node->measure) {
|
if (node->measure) {
|
||||||
YGNodeWithMeasureFuncSetMeasuredDimensions(
|
YGNodeWithMeasureFuncSetMeasuredDimensions(node,
|
||||||
node, availableWidth, availableHeight, widthMeasureMode, heightMeasureMode);
|
availableWidth,
|
||||||
|
availableHeight,
|
||||||
|
widthMeasureMode,
|
||||||
|
heightMeasureMode,
|
||||||
|
parentWidth,
|
||||||
|
parentHeight);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2297,7 +2298,7 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
YGFloatIsUndefined(childHeight) ? YGMeasureModeUndefined : YGMeasureModeAtMost;
|
YGFloatIsUndefined(childHeight) ? YGMeasureModeUndefined : YGMeasureModeAtMost;
|
||||||
} else {
|
} else {
|
||||||
childHeight =
|
childHeight =
|
||||||
YGValueResolve(¤tRelativeChild->resolvedDimensions[YGDimensionHeight],
|
YGValueResolve(currentRelativeChild->resolvedDimensions[YGDimensionHeight],
|
||||||
availableInnerHeight) +
|
availableInnerHeight) +
|
||||||
marginColumn;
|
marginColumn;
|
||||||
childHeightMeasureMode =
|
childHeightMeasureMode =
|
||||||
@@ -2322,7 +2323,7 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
childWidthMeasureMode =
|
childWidthMeasureMode =
|
||||||
YGFloatIsUndefined(childWidth) ? YGMeasureModeUndefined : YGMeasureModeAtMost;
|
YGFloatIsUndefined(childWidth) ? YGMeasureModeUndefined : YGMeasureModeAtMost;
|
||||||
} else {
|
} else {
|
||||||
childWidth = YGValueResolve(¤tRelativeChild->resolvedDimensions[YGDimensionWidth],
|
childWidth = YGValueResolve(currentRelativeChild->resolvedDimensions[YGDimensionWidth],
|
||||||
availableInnerWidth) +
|
availableInnerWidth) +
|
||||||
marginRow;
|
marginRow;
|
||||||
childWidthMeasureMode =
|
childWidthMeasureMode =
|
||||||
@@ -2667,7 +2668,22 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
break;
|
break;
|
||||||
case YGAlignStretch:
|
case YGAlignStretch:
|
||||||
if (availableInnerCrossDim > totalLineCrossDim) {
|
if (availableInnerCrossDim > totalLineCrossDim) {
|
||||||
crossDimLead = (remainingAlignContentDim / lineCount);
|
crossDimLead = remainingAlignContentDim / lineCount;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case YGAlignSpaceAround:
|
||||||
|
if (availableInnerCrossDim > totalLineCrossDim) {
|
||||||
|
currentLead += remainingAlignContentDim / (2 * lineCount);
|
||||||
|
if (lineCount > 1) {
|
||||||
|
crossDimLead = remainingAlignContentDim / lineCount;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
currentLead += remainingAlignContentDim / 2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case YGAlignSpaceBetween:
|
||||||
|
if (availableInnerCrossDim > totalLineCrossDim && lineCount > 1) {
|
||||||
|
crossDimLead = remainingAlignContentDim / (lineCount - 1);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case YGAlignAuto:
|
case YGAlignAuto:
|
||||||
@@ -2755,6 +2771,8 @@ static void YGNodelayoutImpl(const YGNodeRef node,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case YGAlignAuto:
|
case YGAlignAuto:
|
||||||
|
case YGAlignSpaceBetween:
|
||||||
|
case YGAlignSpaceAround:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3184,7 +3202,7 @@ void YGNodeCalculateLayout(const YGNodeRef node,
|
|||||||
if (!YGFloatIsUndefined(width)) {
|
if (!YGFloatIsUndefined(width)) {
|
||||||
widthMeasureMode = YGMeasureModeExactly;
|
widthMeasureMode = YGMeasureModeExactly;
|
||||||
} else if (YGNodeIsStyleDimDefined(node, YGFlexDirectionRow, availableWidth)) {
|
} else if (YGNodeIsStyleDimDefined(node, YGFlexDirectionRow, availableWidth)) {
|
||||||
width = YGValueResolve(&node->resolvedDimensions[dim[YGFlexDirectionRow]], availableWidth) +
|
width = YGValueResolve(node->resolvedDimensions[dim[YGFlexDirectionRow]], availableWidth) +
|
||||||
YGNodeMarginForAxis(node, YGFlexDirectionRow, availableWidth);
|
YGNodeMarginForAxis(node, YGFlexDirectionRow, availableWidth);
|
||||||
widthMeasureMode = YGMeasureModeExactly;
|
widthMeasureMode = YGMeasureModeExactly;
|
||||||
} else if (YGValueResolve(&node->style.maxDimensions[YGDimensionWidth], availableWidth) >= 0.0f) {
|
} else if (YGValueResolve(&node->style.maxDimensions[YGDimensionWidth], availableWidth) >= 0.0f) {
|
||||||
@@ -3195,8 +3213,7 @@ void YGNodeCalculateLayout(const YGNodeRef node,
|
|||||||
if (!YGFloatIsUndefined(height)) {
|
if (!YGFloatIsUndefined(height)) {
|
||||||
heightMeasureMode = YGMeasureModeExactly;
|
heightMeasureMode = YGMeasureModeExactly;
|
||||||
} else if (YGNodeIsStyleDimDefined(node, YGFlexDirectionColumn, availableHeight)) {
|
} else if (YGNodeIsStyleDimDefined(node, YGFlexDirectionColumn, availableHeight)) {
|
||||||
height =
|
height = YGValueResolve(node->resolvedDimensions[dim[YGFlexDirectionColumn]], availableHeight) +
|
||||||
YGValueResolve(&node->resolvedDimensions[dim[YGFlexDirectionColumn]], availableHeight) +
|
|
||||||
YGNodeMarginForAxis(node, YGFlexDirectionColumn, availableWidth);
|
YGNodeMarginForAxis(node, YGFlexDirectionColumn, availableWidth);
|
||||||
heightMeasureMode = YGMeasureModeExactly;
|
heightMeasureMode = YGMeasureModeExactly;
|
||||||
} else if (YGValueResolve(&node->style.maxDimensions[YGDimensionHeight], availableHeight) >=
|
} else if (YGValueResolve(&node->style.maxDimensions[YGDimensionHeight], availableHeight) >=
|
||||||
|
Reference in New Issue
Block a user