Files
MicrosoftIris/UIX/Microsoft/Iris/Layouts/DefaultLayout.cs
T

54 lines
1.7 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Layouts.DefaultLayout
// Assembly: UIX, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: A56C6C9D-B7F6-46A9-8BDE-B3D9B8D60B11
// Assembly location: C:\Program Files\Zune\UIX.dll
using Microsoft.Iris.Layout;
using Microsoft.Iris.Render;
namespace Microsoft.Iris.Layouts
{
internal class DefaultLayout : ILayout
{
private static DefaultLayout s_sharedLayout = new DefaultLayout();
private DefaultLayout()
{
}
public static DefaultLayout Instance => s_sharedLayout;
public ItemAlignment DefaultChildAlignment => ItemAlignment.Default;
Size ILayout.Measure(ILayoutNode layoutNode, Size constraint) => Measure(layoutNode, constraint);
public static Size Measure(ILayoutNode layoutNode, Size constraint)
{
Size sz1 = Size.Zero;
foreach (ILayoutNode layoutChild in layoutNode.LayoutChildren)
{
Size sz2 = layoutChild.Measure(constraint);
sz1 = Size.Max(sz1, sz2);
}
layoutNode.RequestMoreChildren(int.MaxValue);
return sz1;
}
void ILayout.Arrange(ILayoutNode layoutNode, LayoutSlot slot) => Arrange(layoutNode, slot);
public static void Arrange(ILayoutNode layoutNode, LayoutSlot slot)
{
foreach (ILayoutNode layoutChild in layoutNode.LayoutChildren)
layoutChild.Arrange(slot);
}
public bool Equals(ILayout other)
{
if (other is not DefaultLayout o) return false;
return DefaultChildAlignment == o.DefaultChildAlignment;
}
}
}