WIP - prototyping...

This commit is contained in:
Tig
2024-10-15 17:17:00 -06:00
parent d6a652b159
commit d104a56e42
33 changed files with 289 additions and 260 deletions

View File

@@ -314,6 +314,7 @@ public partial class DimAutoTests (ITestOutputHelper output)
view.SetRelativeLayout (Application.Screen.Size);
lastSize = view.Frame.Size;
view.Text = "*ABCD";
view.SetRelativeLayout (Application.Screen.Size);
Assert.NotEqual (lastSize, view.Frame.Size);
}

View File

@@ -185,7 +185,7 @@ public class DimTests
testValview.Dispose ();
testVal = new (1, 2, 3, 4);
testValview = new() { Frame = testVal };
testValview = new () { Frame = testVal };
dim = Height (testValview);
Assert.Equal ($"View(Height,View(){testVal})", dim.ToString ());
testValview.Dispose ();
@@ -369,7 +369,7 @@ public class DimTests
Assert.Equal (18, v6.Frame.Height); // 89*20%=18
w.Width = 200;
Assert.True (t.LayoutNeeded);
Assert.True (t.IsLayoutNeeded ());
w.Height = 200;
t.LayoutSubviews ();
@@ -582,7 +582,7 @@ public class DimTests
Assert.NotEqual (dim1, dim2);
testRect1 = new (0, 1, 2, 3);
view1 = new() { Frame = testRect1 };
view1 = new () { Frame = testRect1 };
testRect2 = new (0, 1, 2, 3);
dim1 = Width (view1);
dim2 = Width (view1);
@@ -591,7 +591,7 @@ public class DimTests
Assert.Equal (dim1, dim2);
testRect1 = new (0, -1, 2, 3);
view1 = new() { Frame = testRect1 };
view1 = new () { Frame = testRect1 };
testRect2 = new (0, -1, 2, 3);
dim1 = Width (view1);
dim2 = Width (view1);
@@ -600,9 +600,9 @@ public class DimTests
Assert.Equal (dim1, dim2);
testRect1 = new (0, -1, 2, 3);
view1 = new() { Frame = testRect1 };
view1 = new () { Frame = testRect1 };
testRect2 = Rectangle.Empty;
view2 = new() { Frame = testRect2 };
view2 = new () { Frame = testRect2 };
dim1 = Width (view1);
dim2 = Width (view2);
Assert.NotEqual (dim1, dim2);
@@ -632,7 +632,7 @@ public class DimTests
testValView.Dispose ();
testVal = new (1, 2, 3, 4);
testValView = new() { Frame = testVal };
testValView = new () { Frame = testVal };
dim = Width (testValView);
Assert.Equal ($"View(Width,View(){testVal})", dim.ToString ());
testValView.Dispose ();

View File

@@ -40,9 +40,11 @@ public class FrameTests (ITestOutputHelper output)
var newFrame = new Rectangle (1, 2, 30, 40);
var v = new View ();
Assert.Equal (Rectangle.Empty, v.Frame);
v.Dispose ();
v = new View { Frame = frame };
Assert.Equal (frame, v.Frame);
v.Frame = newFrame;
Assert.Equal (newFrame, v.Frame);

View File

@@ -34,6 +34,67 @@ public class LayoutTests (ITestOutputHelper output)
second.Dispose ();
}
[Fact]
public void Add_Does_Not_Call_LayoutSubviews ()
{
var superView = new View { Id = "superView" };
var view = new View { Id = "view" };
bool layoutStartedRaised = false;
bool layoutCompleteRaised = false;
superView.LayoutStarted += (sender, e) => layoutStartedRaised = true;
superView.LayoutComplete += (sender, e) => layoutCompleteRaised = true;
superView.Add (view);
Assert.False (layoutStartedRaised);
Assert.False (layoutCompleteRaised);
superView.Remove(view);
superView.BeginInit();
superView.EndInit ();
superView.Add (view);
Assert.False (layoutStartedRaised);
Assert.False (layoutCompleteRaised);
}
[Fact]
public void BeginEndInit_Do_Not_Call_LayoutSubviews ()
{
var superView = new View { Id = "superView" };
bool layoutStartedRaised = false;
bool layoutCompleteRaised = false;
superView.LayoutStarted += (sender, e) => layoutStartedRaised = true;
superView.LayoutComplete += (sender, e) => layoutCompleteRaised = true;
superView.BeginInit ();
superView.EndInit ();
Assert.False (layoutStartedRaised);
Assert.False (layoutCompleteRaised);
}
[Fact]
public void LayoutSubViews_Raises_LayoutStarted_LayoutComplete ()
{
var superView = new View { Id = "superView" };
int layoutStartedRaised = 0;
int layoutCompleteRaised = 0;
superView.LayoutStarted += (sender, e) => layoutStartedRaised++;
superView.LayoutComplete += (sender, e) => layoutCompleteRaised++;
superView.LayoutSubviews ();
Assert.Equal (1, layoutStartedRaised);
Assert.Equal (1, layoutCompleteRaised);
superView.BeginInit ();
superView.EndInit ();
superView.LayoutSubviews ();
Assert.Equal (2, layoutStartedRaised);
Assert.Equal (2, layoutCompleteRaised);
}
[Fact]
public void LayoutSubviews_RootHas_SuperView ()
{

View File

@@ -61,8 +61,7 @@ public class PosCenterTests (ITestOutputHelper output)
var superView = new View { Width = 10, Height = 10 };
var view = new View { X = Center (), Y = Center (), Width = 20, Height = 20 };
superView.Add (view);
superView.BeginInit();
superView.EndInit();
superView.LayoutSubviews ();
Assert.Equal (-5, view.Frame.Left);
Assert.Equal (-5, view.Frame.Top);

View File

@@ -715,7 +715,7 @@ w ";
Assert.Equal (new (0, 0, 2, 1), lbl.Frame);
Assert.Equal (new (0, 0, 3, 1), lbl._needsDisplayRect);
Assert.Equal (new (0, 0, 0, 0), lbl.SuperView._needsDisplayRect);
Assert.True (lbl.SuperView.LayoutNeeded);
Assert.True (lbl.SuperView.IsLayoutNeeded ());
Application.Refresh();
Assert.Equal ("12 ", GetContents ());

View File

@@ -1128,7 +1128,6 @@ At 0,0
}
}
ClearLayoutNeeded ();
ClearNeedsDisplay ();
}