public void TestUnevenLimitSize() { // when uneven sizes are used and limiting by size, they should all be treated as equal size cells based on the // max minwidth / minheight among them. // Note that when limiting by count, the behavior is different - rows and columns are individually // expanded based on the max size of their elements var grid = new GridContainer { MaxGridWidth = 125 }; var child1 = new Control { MinSize = (12, 24) }; var child2 = new Control { MinSize = (30, 50) }; var child3 = new Control { MinSize = (40, 20) }; var child4 = new Control { MinSize = (20, 12) }; var child5 = new Control { MinSize = (50, 10) }; grid.AddChild(child1); grid.AddChild(child2); grid.AddChild(child3); grid.AddChild(child4); grid.AddChild(child5); grid.Arrange(new UIBox2(0, 0, 250, 250)); Assert.That(grid.DesiredSize, Is.EqualTo(new Vector2(104, 158))); Assert.That(child1.Position, Is.EqualTo(Vector2.Zero)); Assert.That(child2.Position, Is.EqualTo(new Vector2(54, 0))); Assert.That(child3.Position, Is.EqualTo(new Vector2(0, 54))); Assert.That(child4.Position, Is.EqualTo(new Vector2(54, 54))); Assert.That(child5.Position, Is.EqualTo(new Vector2(0, 108))); }
public void TestUnevenLimitSizeRows() { var grid = new GridContainer { MaxGridHeight = 125 }; var child1 = new Control { MinSize = (12, 2) }; var child2 = new Control { MinSize = (5, 23) }; var child3 = new Control { MinSize = (42, 4) }; var child4 = new Control { MinSize = (2, 50) }; var child5 = new Control { MinSize = (50, 34) }; grid.AddChild(child1); grid.AddChild(child2); grid.AddChild(child3); grid.AddChild(child4); grid.AddChild(child5); grid.Arrange(new UIBox2(0, 0, 250, 250)); Assert.That(grid.DesiredSize, Is.EqualTo(new Vector2(158, 104))); Assert.That(child1.Position, Is.EqualTo(Vector2.Zero)); Assert.That(child2.Position, Is.EqualTo(new Vector2(0, 54))); Assert.That(child3.Position, Is.EqualTo(new Vector2(54, 0))); Assert.That(child4.Position, Is.EqualTo(new Vector2(54, 54))); Assert.That(child5.Position, Is.EqualTo(new Vector2(108, 0))); }