5 changed files with 307 additions and 32 deletions
@ -0,0 +1,29 @@ |
|||
using System; |
|||
using Avalonia.Controls; |
|||
|
|||
namespace Avalonia.Layout.UnitTests |
|||
{ |
|||
internal class LayoutTestControl : Decorator |
|||
{ |
|||
public bool Measured { get; set; } |
|||
public bool Arranged { get; set; } |
|||
public Func<ILayoutable, Size, Size> DoMeasureOverride { get; set; } |
|||
public Func<ILayoutable, Size, Size> DoArrangeOverride { get; set; } |
|||
|
|||
protected override Size MeasureOverride(Size availableSize) |
|||
{ |
|||
Measured = true; |
|||
return DoMeasureOverride != null ? |
|||
DoMeasureOverride(this, availableSize) : |
|||
base.MeasureOverride(availableSize); |
|||
} |
|||
|
|||
protected override Size ArrangeOverride(Size finalSize) |
|||
{ |
|||
Arranged = true; |
|||
return DoArrangeOverride != null ? |
|||
DoArrangeOverride(this, finalSize) : |
|||
base.ArrangeOverride(finalSize); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,43 @@ |
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using System; |
|||
using Avalonia.UnitTests; |
|||
|
|||
namespace Avalonia.Layout.UnitTests |
|||
{ |
|||
internal class LayoutTestRoot : TestRoot, ILayoutable |
|||
{ |
|||
public bool Measured { get; set; } |
|||
public bool Arranged { get; set; } |
|||
public Func<ILayoutable, Size, Size> DoMeasureOverride { get; set; } |
|||
public Func<ILayoutable, Size, Size> DoArrangeOverride { get; set; } |
|||
|
|||
void ILayoutable.Measure(Size availableSize) |
|||
{ |
|||
Measured = true; |
|||
Measure(availableSize); |
|||
} |
|||
|
|||
void ILayoutable.Arrange(Rect rect) |
|||
{ |
|||
Arranged = true; |
|||
Arrange(rect); |
|||
} |
|||
|
|||
protected override Size MeasureOverride(Size availableSize) |
|||
{ |
|||
return DoMeasureOverride != null ? |
|||
DoMeasureOverride(this, availableSize) : |
|||
base.MeasureOverride(availableSize); |
|||
} |
|||
|
|||
protected override Size ArrangeOverride(Size finalSize) |
|||
{ |
|||
Arranged = true; |
|||
return DoArrangeOverride != null ? |
|||
DoArrangeOverride(this, finalSize) : |
|||
base.ArrangeOverride(finalSize); |
|||
} |
|||
} |
|||
} |
|||
@ -1,24 +0,0 @@ |
|||
// Copyright (c) The Avalonia Project. All rights reserved.
|
|||
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|||
|
|||
using Avalonia.Controls; |
|||
|
|||
namespace Avalonia.Layout.UnitTests |
|||
{ |
|||
internal class TestLayoutRoot : Decorator, ILayoutRoot |
|||
{ |
|||
public TestLayoutRoot() |
|||
{ |
|||
ClientSize = new Size(500, 500); |
|||
} |
|||
|
|||
public Size ClientSize |
|||
{ |
|||
get; |
|||
set; |
|||
} |
|||
|
|||
public Size MaxClientSize => Size.Infinity; |
|||
public double LayoutScaling => 1; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue