|
@@ -35,6 +35,53 @@ namespace Terminal.Gui.CoreTests {
|
|
|
Assert.Throws<InvalidOperationException> (() => root.LayoutSubviews ());
|
|
|
}
|
|
|
|
|
|
+ [Fact]
|
|
|
+ public void TopologicalSort_Does_Never_Throws_If_Root_Is_Not_Null ()
|
|
|
+ {
|
|
|
+ var root = new View () { Id = "root", Width = 20, Height = 20 };
|
|
|
+ var sub1 = new View () {
|
|
|
+ Id = "sub1",
|
|
|
+ X = Pos.Left (root) + 1,
|
|
|
+ Y = Pos.Top (root) + 1,
|
|
|
+ Width = Dim.Width (root) - 2,
|
|
|
+ Height = Dim.Height (root) - 2
|
|
|
+ };
|
|
|
+ var sub2 = new View () {
|
|
|
+ Id = "sub2",
|
|
|
+ X = Pos.Left (root) + 1,
|
|
|
+ Y = Pos.Top (root) + 1,
|
|
|
+ Width = Dim.Width (root) - 2,
|
|
|
+ Height = Dim.Height (root) - 2
|
|
|
+ };
|
|
|
+ var sub3 = new View () {
|
|
|
+ Id = "sub3",
|
|
|
+ X = Pos.Left (root) + 1,
|
|
|
+ Y = Pos.Top (root) + 1,
|
|
|
+ Width = Dim.Width (root) - 2,
|
|
|
+ Height = Dim.Height (root) - 2
|
|
|
+ };
|
|
|
+ sub2.Add (sub3);
|
|
|
+ sub1.Add (sub2);
|
|
|
+ root.Add (sub1);
|
|
|
+
|
|
|
+ var exception = Record.Exception (root.LayoutSubviews);
|
|
|
+ Assert.Null (exception);
|
|
|
+ Assert.Equal (new Rect (0, 0, 20, 20), root.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 18, 18), sub1.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 18, 18), sub2.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 18, 18), sub3.Frame);
|
|
|
+
|
|
|
+ sub2.Width = Dim.Width (root);
|
|
|
+ exception = Record.Exception (root.LayoutSubviews);
|
|
|
+ Assert.Null (exception);
|
|
|
+ Assert.Equal (new Rect (1, 1, 20, 18), sub2.Frame);
|
|
|
+
|
|
|
+ sub3.Width = Dim.Width (root);
|
|
|
+ exception = Record.Exception (root.LayoutSubviews);
|
|
|
+ Assert.Null (exception);
|
|
|
+ Assert.Equal (new Rect (1, 1, 20, 18), sub3.Frame);
|
|
|
+ }
|
|
|
+
|
|
|
[Fact]
|
|
|
public void TopologicalSort_Recursive_Ref ()
|
|
|
{
|
|
@@ -598,10 +645,10 @@ Y
|
|
|
Assert.False (view.AutoSize);
|
|
|
Assert.Equal (TextDirection.LeftRight_TopBottom, view.TextDirection);
|
|
|
Assert.Equal (Rect.Empty, view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view.Height.ToString ());
|
|
|
var expected = @"
|
|
|
┌────────────────────┐
|
|
|
│ │
|
|
@@ -635,10 +682,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│Hello World │
|
|
@@ -672,10 +719,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 12, 1), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│Hello Worlds │
|
|
@@ -708,10 +755,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 11, 12), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│H │
|
|
@@ -745,10 +792,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│HelloWorlds │
|
|
@@ -781,10 +828,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 11, 1), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│Hello World │
|
|
@@ -821,10 +868,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 1, 11), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│H │
|
|
@@ -857,10 +904,10 @@ Y
|
|
|
Application.Refresh ();
|
|
|
|
|
|
Assert.Equal (new Rect (0, 0, 1, 12), view.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(11)", view.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(11)", view.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│H │
|
|
@@ -921,15 +968,15 @@ Y
|
|
|
Assert.Equal (new Size (10, 1), horizontalView.TextFormatter.Size);
|
|
|
Assert.Equal (new Size (2, 9), verticalView.TextFormatter.Size);
|
|
|
Assert.Equal (new Rect (0, 0, 9, 1), horizontalView.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", horizontalView.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", horizontalView.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(9)", horizontalView.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", horizontalView.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", horizontalView.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", horizontalView.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(9)", horizontalView.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", horizontalView.Height.ToString ());
|
|
|
Assert.Equal (new Rect (0, 3, 2, 8), verticalView.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", verticalView.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(3)", verticalView.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(2)", verticalView.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(8)", verticalView.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", verticalView.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(3)", verticalView.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(2)", verticalView.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(8)", verticalView.Height.ToString ());
|
|
|
var expected = @"
|
|
|
┌────────────────────┐
|
|
|
│Finish 終 │
|
|
@@ -964,10 +1011,10 @@ Y
|
|
|
Assert.True (verticalView.AutoSize);
|
|
|
// height was initialized with 8 and is kept as minimum
|
|
|
Assert.Equal (new Rect (0, 3, 2, 8), verticalView.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", verticalView.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(3)", verticalView.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(2)", verticalView.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(8)", verticalView.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", verticalView.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(3)", verticalView.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(2)", verticalView.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(8)", verticalView.Height.ToString ());
|
|
|
expected = @"
|
|
|
┌────────────────────┐
|
|
|
│Finish 終 │
|
|
@@ -1079,28 +1126,28 @@ Y
|
|
|
Assert.False (view5.IsInitialized);
|
|
|
Assert.False (view1.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view1.Height.ToString ());
|
|
|
Assert.False (view2.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view2.Height.ToString ());
|
|
|
Assert.False (view3.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view3.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view3.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view3.Height.ToString ());
|
|
|
Assert.False (view4.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view4.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view4.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view4.Height.ToString ());
|
|
|
Assert.False (view5.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view5.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view5.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view5.Height.ToString ());
|
|
|
Assert.False (view6.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view6.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view6.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view6.Height.ToString ());
|
|
|
|
|
|
Application.Begin (Application.Top);
|
|
|
|
|
@@ -1111,28 +1158,28 @@ Y
|
|
|
Assert.True (view5.IsInitialized);
|
|
|
Assert.False (view1.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view1.Height.ToString ());
|
|
|
Assert.False (view2.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view2.Height.ToString ());
|
|
|
Assert.False (view3.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view3.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view3.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view3.Height.ToString ());
|
|
|
Assert.False (view4.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view4.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view4.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view4.Height.ToString ());
|
|
|
Assert.False (view5.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view5.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view5.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view5.Height.ToString ());
|
|
|
Assert.False (view6.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 5), view6.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view6.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view6.Height.ToString ());
|
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1171,28 +1218,28 @@ Y
|
|
|
Assert.False (view5.IsInitialized);
|
|
|
Assert.True (view1.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view1.Height.ToString ());
|
|
|
Assert.True (view2.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view2.Height.ToString ());
|
|
|
Assert.True (view3.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view3.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view3.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view3.Height.ToString ());
|
|
|
Assert.True (view4.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view4.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view4.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view4.Height.ToString ());
|
|
|
Assert.True (view5.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view5.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view5.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view5.Height.ToString ());
|
|
|
Assert.True (view6.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view6.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view6.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view6.Height.ToString ());
|
|
|
|
|
|
Application.Begin (Application.Top);
|
|
|
|
|
@@ -1203,28 +1250,28 @@ Y
|
|
|
Assert.True (view5.IsInitialized);
|
|
|
Assert.True (view1.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view1.Height.ToString ());
|
|
|
Assert.True (view2.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view2.Height.ToString ());
|
|
|
Assert.True (view3.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 5), view3.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view3.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view3.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view3.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view3.Height.ToString ());
|
|
|
Assert.True (view4.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view4.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view4.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view4.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view4.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view4.Height.ToString ());
|
|
|
Assert.True (view5.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view5.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view5.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view5.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view5.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view5.Height.ToString ());
|
|
|
Assert.True (view6.AutoSize);
|
|
|
Assert.Equal (new Rect (0, 0, 10, 17), view6.Frame);
|
|
|
- Assert.Equal ("Absolute(10)", view6.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(5)", view6.Height.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(10)", view6.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(5)", view6.Height.ToString ());
|
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1243,17 +1290,17 @@ Y
|
|
|
Assert.True (view1.AutoSize);
|
|
|
Assert.Equal (LayoutStyle.Absolute, view1.LayoutStyle);
|
|
|
Assert.Equal (new Rect (0, 0, 18, 1), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(18)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(18)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view1.Height.ToString ());
|
|
|
Assert.True (view2.AutoSize);
|
|
|
Assert.Equal (LayoutStyle.Absolute, view2.LayoutStyle);
|
|
|
Assert.Equal (new Rect (0, 0, 2, 17), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view2.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view2.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(2)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(17)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view2.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view2.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(2)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(17)", view2.Height.ToString ());
|
|
|
|
|
|
view1.Frame = new Rect (0, 0, 25, 4);
|
|
|
bool firstIteration = false;
|
|
@@ -1262,10 +1309,10 @@ Y
|
|
|
Assert.True (view1.AutoSize);
|
|
|
Assert.Equal (LayoutStyle.Absolute, view1.LayoutStyle);
|
|
|
Assert.Equal (new Rect (0, 0, 25, 4), view1.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(18)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(1)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(18)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(1)", view1.Height.ToString ());
|
|
|
|
|
|
view2.Frame = new Rect (0, 0, 1, 25);
|
|
|
Application.RunMainLoopIteration (ref rs, true, ref firstIteration);
|
|
@@ -1273,10 +1320,10 @@ Y
|
|
|
Assert.True (view2.AutoSize);
|
|
|
Assert.Equal (LayoutStyle.Absolute, view2.LayoutStyle);
|
|
|
Assert.Equal (new Rect (0, 0, 1, 25), view2.Frame);
|
|
|
- Assert.Equal ("Absolute(0)", view2.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view2.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(2)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(17)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view2.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view2.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(2)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(17)", view2.Height.ToString ());
|
|
|
}
|
|
|
|
|
|
[Fact, AutoInitShutdown]
|
|
@@ -1291,10 +1338,10 @@ Y
|
|
|
Assert.Null (view1.Height);
|
|
|
top.Add (view1);
|
|
|
Assert.True (view1.IsAdded);
|
|
|
- Assert.Equal ("Absolute(0)", view1.X.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view1.Y.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view1.Width.ToString ());
|
|
|
- Assert.Equal ("Absolute(0)", view1.Height.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.X.ToString ());
|
|
|
+ Assert.Equal ("PosAbsolute(0)", view1.Y.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view1.Width.ToString ());
|
|
|
+ Assert.Equal ("DimAbsolute(0)", view1.Height.ToString ());
|
|
|
|
|
|
var view2 = new View () {
|
|
|
X = Pos.Center (),
|
|
@@ -1303,16 +1350,16 @@ Y
|
|
|
Height = Dim.Fill ()
|
|
|
};
|
|
|
Assert.False (view2.IsAdded);
|
|
|
- Assert.Equal ("Center", view2.X.ToString ());
|
|
|
- Assert.Equal ("Center", view2.Y.ToString ());
|
|
|
- Assert.Equal ("Fill(0)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Fill(0)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("PosCenter", view2.X.ToString ());
|
|
|
+ Assert.Equal ("PosCenter", view2.Y.ToString ());
|
|
|
+ Assert.Equal ("DimFill(0)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimFill(0)", view2.Height.ToString ());
|
|
|
top.Add (view2);
|
|
|
Assert.True (view2.IsAdded);
|
|
|
- Assert.Equal ("Center", view2.X.ToString ());
|
|
|
- Assert.Equal ("Center", view2.Y.ToString ());
|
|
|
- Assert.Equal ("Fill(0)", view2.Width.ToString ());
|
|
|
- Assert.Equal ("Fill(0)", view2.Height.ToString ());
|
|
|
+ Assert.Equal ("PosCenter", view2.X.ToString ());
|
|
|
+ Assert.Equal ("PosCenter", view2.Y.ToString ());
|
|
|
+ Assert.Equal ("DimFill(0)", view2.Width.ToString ());
|
|
|
+ Assert.Equal ("DimFill(0)", view2.Height.ToString ());
|
|
|
}
|
|
|
|
|
|
[Fact]
|
|
@@ -1398,7 +1445,7 @@ Y
|
|
|
|
|
|
testView = new View () {
|
|
|
AutoSize = false,
|
|
|
- X = Pos.Left(testView),
|
|
|
+ X = Pos.Left (testView),
|
|
|
Y = Pos.Left (testView),
|
|
|
Width = 1,
|
|
|
Height = 1
|
|
@@ -1420,5 +1467,158 @@ Y
|
|
|
Assert.Equal (6, testView.Frame.X);
|
|
|
Assert.Equal (6, testView.Frame.Y);
|
|
|
}
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ [AutoInitShutdown]
|
|
|
+ public void Y_Center_Minus_Absolute_Inside_Window_Height_Ten ()
|
|
|
+ {
|
|
|
+ var win = new Window ();
|
|
|
+
|
|
|
+ var label = new Label ("This should be the first line.") {
|
|
|
+ TextAlignment = Terminal.Gui.TextAlignment.Centered,
|
|
|
+ ColorScheme = Colors.Menu,
|
|
|
+ Width = Dim.Fill (),
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center () - 3 // center minus 3 minus two lines top and bottom borders equal to zero (5-3-2=0)
|
|
|
+ };
|
|
|
+
|
|
|
+ var button = new Button ("Press me!") {
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center ()
|
|
|
+ };
|
|
|
+
|
|
|
+ win.Add (label, button);
|
|
|
+
|
|
|
+ var top = Application.Top;
|
|
|
+ top.Add (win);
|
|
|
+ Application.Begin (top);
|
|
|
+ ((FakeDriver)Application.Driver).SetBufferSize (40, 10);
|
|
|
+
|
|
|
+ Assert.True (label.AutoSize);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 10), top.Frame);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 10), win.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 38, 8), win.Subviews [0].Frame);
|
|
|
+ Assert.Equal ("ContentView()({X=1,Y=1,Width=38,Height=8})", win.Subviews [0].ToString ());
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 10), new Rect (
|
|
|
+ win.Frame.Left, win.Frame.Top,
|
|
|
+ win.Frame.Right, win.Frame.Bottom));
|
|
|
+ Assert.Equal (new Rect (0, 0, 38, 1), label.Frame);
|
|
|
+ Assert.Equal (new Rect (12, 3, 13, 1), button.Frame);
|
|
|
+ var expected = @"
|
|
|
+┌──────────────────────────────────────┐
|
|
|
+│ This should be the first line. │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ [ Press me! ] │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+└──────────────────────────────────────┘
|
|
|
+";
|
|
|
+
|
|
|
+ TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ [AutoInitShutdown]
|
|
|
+ public void Y_Center_Minus_Absolute_Inside_Window_Height_Nine ()
|
|
|
+ {
|
|
|
+ var win = new Window ();
|
|
|
+
|
|
|
+ var label = new Label ("This should be the first line.") {
|
|
|
+ TextAlignment = Terminal.Gui.TextAlignment.Centered,
|
|
|
+ ColorScheme = Colors.Menu,
|
|
|
+ Width = Dim.Fill (),
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center () - 3 // center minus 2 minus two lines top and bottom borders equal to zero (5-3-2=0)
|
|
|
+ };
|
|
|
+
|
|
|
+ var button = new Button ("Press me!") {
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center ()
|
|
|
+ };
|
|
|
+
|
|
|
+ win.Add (label, button);
|
|
|
+
|
|
|
+ var top = Application.Top;
|
|
|
+ top.Add (win);
|
|
|
+ Application.Begin (top);
|
|
|
+ ((FakeDriver)Application.Driver).SetBufferSize (40, 9);
|
|
|
+
|
|
|
+ Assert.True (label.AutoSize);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 9), top.Frame);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 9), win.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 38, 7), win.Subviews [0].Frame);
|
|
|
+ Assert.Equal ("ContentView()({X=1,Y=1,Width=38,Height=7})", win.Subviews [0].ToString ());
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 9), new Rect (
|
|
|
+ win.Frame.Left, win.Frame.Top,
|
|
|
+ win.Frame.Right, win.Frame.Bottom));
|
|
|
+ Assert.Equal (new Rect (0, 0, 38, 1), label.Frame);
|
|
|
+ Assert.Equal (new Rect (12, 3, 13, 1), button.Frame);
|
|
|
+ var expected = @"
|
|
|
+┌──────────────────────────────────────┐
|
|
|
+│ This should be the first line. │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ [ Press me! ] │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+└──────────────────────────────────────┘
|
|
|
+";
|
|
|
+
|
|
|
+ TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
|
|
|
+ }
|
|
|
+
|
|
|
+ [Fact]
|
|
|
+ [AutoInitShutdown]
|
|
|
+ public void Y_Center_Minus_Absolute_Inside_Window_Height_Eight ()
|
|
|
+ {
|
|
|
+ var win = new Window ();
|
|
|
+
|
|
|
+ var label = new Label ("This should be the first line.") {
|
|
|
+ TextAlignment = Terminal.Gui.TextAlignment.Centered,
|
|
|
+ ColorScheme = Colors.Menu,
|
|
|
+ Width = Dim.Fill (),
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center () - 2 // center minus 2 minus two lines top and bottom borders equal to zero (4-2-2=0)
|
|
|
+ };
|
|
|
+
|
|
|
+ var button = new Button ("Press me!") {
|
|
|
+ X = Pos.Center (),
|
|
|
+ Y = Pos.Center ()
|
|
|
+ };
|
|
|
+
|
|
|
+ win.Add (label, button);
|
|
|
+
|
|
|
+ var top = Application.Top;
|
|
|
+ top.Add (win);
|
|
|
+ Application.Begin (top);
|
|
|
+ ((FakeDriver)Application.Driver).SetBufferSize (40, 8);
|
|
|
+
|
|
|
+ Assert.True (label.AutoSize);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 8), top.Frame);
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 8), win.Frame);
|
|
|
+ Assert.Equal (new Rect (1, 1, 38, 6), win.Subviews [0].Frame);
|
|
|
+ Assert.Equal ("ContentView()({X=1,Y=1,Width=38,Height=6})", win.Subviews [0].ToString ());
|
|
|
+ Assert.Equal (new Rect (0, 0, 40, 8), new Rect (
|
|
|
+ win.Frame.Left, win.Frame.Top,
|
|
|
+ win.Frame.Right, win.Frame.Bottom));
|
|
|
+ Assert.Equal (new Rect (0, 0, 38, 1), label.Frame);
|
|
|
+ Assert.Equal (new Rect (12, 2, 13, 1), button.Frame);
|
|
|
+ var expected = @"
|
|
|
+┌──────────────────────────────────────┐
|
|
|
+│ This should be the first line. │
|
|
|
+│ │
|
|
|
+│ [ Press me! ] │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+│ │
|
|
|
+└──────────────────────────────────────┘
|
|
|
+";
|
|
|
+
|
|
|
+ TestHelpers.AssertDriverContentsWithFrameAre (expected, output);
|
|
|
+ }
|
|
|
}
|
|
|
}
|