public void SRL_UpdateLayoutWithMarginAndPadding() { var renderContext = new Mock <IWidgetRenderContext>(MockBehavior.Strict); for (int i = 0; i < 10; i += 2) { layout[i].Display.Region.Style.Margin = new LayoutBox(1, 2, 3, 4); layout[i].Display.Region.Style.Padding = new LayoutBox(2, 4, 6, 8); } WidgetRegion region = new WidgetRegion(new WidgetStyle()); region.Size.IdealContentSize = layout.ComputeIdealSize( region.Size.ParentMaxSize, renderContext.Object); layout.ApplyLayout(region.Size.IdealContentSize, renderContext.Object); var dest = new Point(); for (int i = 0; i < 10; i++) { var widgetRegion = layout[i].Display.Region; var thisDest = dest; thisDest.X += widgetRegion.MarginToContentOffset.Left; thisDest.Y += widgetRegion.MarginToContentOffset.Top; widgetRegion.ContentRect.Location.Should().Be(thisDest); dest.X += 100 + widgetRegion.MarginToContentOffset.Width; } }
public void SRL_UpdateLayoutWithHiddenItems() { var renderContext = new Mock <IWidgetRenderContext>(MockBehavior.Strict); for (int i = 0; i < 10; i += 2) { layout[i].Display.IsVisible = false; } WidgetRegion region = new WidgetRegion(new WidgetStyle()); region.Size.IdealContentSize = layout.ComputeIdealSize( region.Size.ParentMaxSize, renderContext.Object); layout.ApplyLayout(region.Size.IdealContentSize, renderContext.Object); var dest = new Point(); for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; } var widgetRegion = layout[i].Display.Region; var thisDest = dest; thisDest.X += widgetRegion.MarginToContentOffset.Left; thisDest.Y += widgetRegion.MarginToContentOffset.Top; widgetRegion.ContentRect.Location.Should().Be(thisDest, $"location test failed for item {i}"); dest.X += 100 + widgetRegion.MarginToContentOffset.Width; } }