|
|
@ -4,6 +4,7 @@ using Avalonia.Controls.Presenters; |
|
|
using Avalonia.Controls.Primitives; |
|
|
using Avalonia.Controls.Primitives; |
|
|
using Avalonia.Controls.Templates; |
|
|
using Avalonia.Controls.Templates; |
|
|
using Avalonia.Layout; |
|
|
using Avalonia.Layout; |
|
|
|
|
|
using Avalonia.UnitTests; |
|
|
using Moq; |
|
|
using Moq; |
|
|
using Xunit; |
|
|
using Xunit; |
|
|
|
|
|
|
|
|
@ -150,12 +151,15 @@ namespace Avalonia.Controls.UnitTests |
|
|
public void Changing_Extent_Should_Raise_ScrollChanged() |
|
|
public void Changing_Extent_Should_Raise_ScrollChanged() |
|
|
{ |
|
|
{ |
|
|
var target = new ScrollViewer(); |
|
|
var target = new ScrollViewer(); |
|
|
|
|
|
var root = new TestRoot(target); |
|
|
var raised = 0; |
|
|
var raised = 0; |
|
|
|
|
|
|
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.Offset = new Vector(10, 10); |
|
|
target.Offset = new Vector(10, 10); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteInitialLayoutPass(root); |
|
|
|
|
|
|
|
|
target.ScrollChanged += (s, e) => |
|
|
target.ScrollChanged += (s, e) => |
|
|
{ |
|
|
{ |
|
|
Assert.Equal(new Vector(11, 12), e.ExtentDelta); |
|
|
Assert.Equal(new Vector(11, 12), e.ExtentDelta); |
|
|
@ -166,20 +170,26 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
|
|
|
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(111, 112)); |
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(111, 112)); |
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
Assert.Equal(0, raised); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteLayoutPass(); |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
[Fact] |
|
|
[Fact] |
|
|
public void Changing_Offset_Should_Raise_ScrollChanged() |
|
|
public void Changing_Offset_Should_Raise_ScrollChanged() |
|
|
{ |
|
|
{ |
|
|
var target = new ScrollViewer(); |
|
|
var target = new ScrollViewer(); |
|
|
|
|
|
var root = new TestRoot(target); |
|
|
var raised = 0; |
|
|
var raised = 0; |
|
|
|
|
|
|
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.Offset = new Vector(10, 10); |
|
|
target.Offset = new Vector(10, 10); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteInitialLayoutPass(root); |
|
|
|
|
|
|
|
|
target.ScrollChanged += (s, e) => |
|
|
target.ScrollChanged += (s, e) => |
|
|
{ |
|
|
{ |
|
|
Assert.Equal(default, e.ExtentDelta); |
|
|
Assert.Equal(default, e.ExtentDelta); |
|
|
@ -190,20 +200,26 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
|
|
|
|
|
target.Offset = new Vector(22, 24); |
|
|
target.Offset = new Vector(22, 24); |
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
Assert.Equal(0, raised); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteLayoutPass(); |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
[Fact] |
|
|
[Fact] |
|
|
public void Changing_Viewport_Should_Raise_ScrollChanged() |
|
|
public void Changing_Viewport_Should_Raise_ScrollChanged() |
|
|
{ |
|
|
{ |
|
|
var target = new ScrollViewer(); |
|
|
var target = new ScrollViewer(); |
|
|
|
|
|
var root = new TestRoot(target); |
|
|
var raised = 0; |
|
|
var raised = 0; |
|
|
|
|
|
|
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ExtentProperty, new Size(100, 100)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(50, 50)); |
|
|
target.Offset = new Vector(10, 10); |
|
|
target.Offset = new Vector(10, 10); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteInitialLayoutPass(root); |
|
|
|
|
|
|
|
|
target.ScrollChanged += (s, e) => |
|
|
target.ScrollChanged += (s, e) => |
|
|
{ |
|
|
{ |
|
|
Assert.Equal(default, e.ExtentDelta); |
|
|
Assert.Equal(default, e.ExtentDelta); |
|
|
@ -214,8 +230,11 @@ namespace Avalonia.Controls.UnitTests |
|
|
|
|
|
|
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(56, 58)); |
|
|
target.SetValue(ScrollViewer.ViewportProperty, new Size(56, 58)); |
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
Assert.Equal(0, raised); |
|
|
|
|
|
|
|
|
|
|
|
root.LayoutManager.ExecuteLayoutPass(); |
|
|
|
|
|
|
|
|
|
|
|
Assert.Equal(1, raised); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private Control CreateTemplate(ScrollViewer control, INameScope scope) |
|
|
private Control CreateTemplate(ScrollViewer control, INameScope scope) |
|
|
|