[Test] public void dirty_node_only_if_children_are_actually_removed()
        {
            YGNode root = YGNodeNew();

            YGNodeStyleSetAlignItems(root, YGAlign.FlexStart);
            YGNodeStyleSetWidth(root, 50);
            YGNodeStyleSetHeight(root, 50);

            YGNode child0 = YGNodeNew();

            YGNodeStyleSetWidth(child0, 50);
            YGNodeStyleSetHeight(child0, 25);
            YGNodeInsertChild(root, child0, 0);

            YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR);

            YGNode child1 = YGNodeNew();

            YGNodeRemoveChild(root, child1);
            Assert.IsFalse(root.isDirty());


            YGNodeRemoveChild(root, child0);
            Assert.IsTrue(root.isDirty());
        }
        [Test] public void dirty_propagation()
        {
            YGNode root = YGNodeNew();

            YGNodeStyleSetAlignItems(root, YGAlign.FlexStart);
            YGNodeStyleSetWidth(root, 100);
            YGNodeStyleSetHeight(root, 100);

            YGNode root_child0 = YGNodeNew();

            YGNodeStyleSetWidth(root_child0, 50);
            YGNodeStyleSetHeight(root_child0, 20);
            YGNodeInsertChild(root, root_child0, 0);

            YGNode root_child1 = YGNodeNew();

            YGNodeStyleSetWidth(root_child1, 50);
            YGNodeStyleSetHeight(root_child1, 20);
            YGNodeInsertChild(root, root_child1, 1);

            YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR);

            YGNodeStyleSetWidth(root_child0, 20);

            Assert.IsTrue(root_child0.isDirty());
            Assert.IsFalse(root_child1.isDirty());
            Assert.IsTrue(root.isDirty());

            YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR);

            Assert.IsFalse(root_child0.isDirty());
            Assert.IsFalse(root_child1.isDirty());
            Assert.IsFalse(root.isDirty());
        }
Exemplo n.º 3
0
        [Test] public void copy_style_same()
        {
            YGNode node0 = YGNodeNew();
            YGNode node1 = YGNodeNew();

            Assert.IsFalse(node0.isDirty());

            YGNodeCopyStyle(node0, node1);
            Assert.IsFalse(node0.isDirty());
        }
        [Test] public void dirty_node_only_if_undefined_values_gets_set_to_undefined()
        {
            YGNode root = YGNodeNew();

            YGNodeStyleSetWidth(root, 50);
            YGNodeStyleSetHeight(root, 50);
            YGNodeStyleSetMinWidth(root, YGValue.YGUndefined);

            YGNodeCalculateLayout(root, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR);

            Assert.IsFalse(root.isDirty());

            YGNodeStyleSetMinWidth(root, YGValue.YGUndefined);

            Assert.IsFalse(root.isDirty());
        }
Exemplo n.º 5
0
        [Test] public void copy_style_modified_same()
        {
            YGNode node0 = YGNodeNew();

            YGNodeStyleSetFlexDirection(node0, YGFlexDirection.Row);
            YGNodeStyleSetMaxHeight(node0, 10);
            YGNodeCalculateLayout(node0, YGValue.YGUndefined, YGValue.YGUndefined, YGDirection.LTR);
            Assert.IsFalse(node0.isDirty());

            YGNode node1 = YGNodeNew();

            YGNodeStyleSetFlexDirection(node1, YGFlexDirection.Row);
            YGNodeStyleSetMaxHeight(node1, 10);

            YGNodeCopyStyle(node0, node1);
            Assert.IsFalse(node0.isDirty());
        }
Exemplo n.º 6
0
        [Test] public void copy_style_modified()
        {
            YGNode node0 = YGNodeNew();

            Assert.IsFalse(node0.isDirty());
            Assert.AreEqual(YGFlexDirection.Column, YGNodeStyleGetFlexDirection(node0));
            Assert.IsFalse(YGNodeStyleGetMaxHeight(node0).unit != YGUnit.Undefined);

            YGNode node1 = YGNodeNew();

            YGNodeStyleSetFlexDirection(node1, YGFlexDirection.Row);
            YGNodeStyleSetMaxHeight(node1, 10);

            YGNodeCopyStyle(node0, node1);
            Assert.IsTrue(node0.isDirty());
            Assert.AreEqual(YGFlexDirection.Row, YGNodeStyleGetFlexDirection(node0));
            Assert.AreEqual(10, YGNodeStyleGetMaxHeight(node0).value);
        }