From be8f7fadc637a60bfc94d0df2f46877f03eec169 Mon Sep 17 00:00:00 2001 From: Tig Date: Fri, 3 May 2024 13:13:12 -0600 Subject: [PATCH] Progress on removing AutoSize. --- UICatalog/Scenarios/BasicColors.cs | 2 - UICatalog/Scenarios/Buttons.cs | 5 -- UICatalog/Scenarios/CharacterMap.cs | 4 -- .../Scenarios/CollectionNavigatorTester.cs | 2 - UICatalog/Scenarios/ComboBoxIteration.cs | 3 +- UICatalog/Scenarios/ComputedLayout.cs | 12 ---- UICatalog/Scenarios/ContentScrolling.cs | 2 +- UICatalog/Scenarios/SendKeys.cs | 4 +- UnitTests/UICatalog/ScenarioTests.cs | 58 ++++++++++--------- 9 files changed, 35 insertions(+), 57 deletions(-) diff --git a/UICatalog/Scenarios/BasicColors.cs b/UICatalog/Scenarios/BasicColors.cs index e12e51284..1780d7cbb 100644 --- a/UICatalog/Scenarios/BasicColors.cs +++ b/UICatalog/Scenarios/BasicColors.cs @@ -28,7 +28,6 @@ public class BasicColors : Scenario var vl = new Label { - AutoSize = false, X = vx, Y = 0, Width = 1, @@ -42,7 +41,6 @@ public class BasicColors : Scenario var hl = new Label { - AutoSize = false, X = 15, Y = y, Width = 13, diff --git a/UICatalog/Scenarios/Buttons.cs b/UICatalog/Scenarios/Buttons.cs index 55320f4c4..fb6706366 100644 --- a/UICatalog/Scenarios/Buttons.cs +++ b/UICatalog/Scenarios/Buttons.cs @@ -260,7 +260,6 @@ public class Buttons : Scenario { X = 2, Y = Pos.Bottom (radioGroup) + 1, - AutoSize = false, Height = 1, Width = Dim.Width (computedFrame) - 2, ColorScheme = Colors.ColorSchemes ["TopLevel"], @@ -275,7 +274,6 @@ public class Buttons : Scenario { X = Pos.Left (absoluteFrame) + 1, Y = Pos.Bottom (radioGroup) + 1, - AutoSize = false, Height = 1, Width = Dim.Width (absoluteFrame) - 2, // BUGBUG: Not always the width isn't calculated correctly. ColorScheme = Colors.ColorSchemes ["TopLevel"], @@ -426,7 +424,6 @@ public class Buttons : Scenario _down = new () { - AutoSize = false, Height = 1, Width = 1, NoPadding = true, @@ -439,7 +436,6 @@ public class Buttons : Scenario _number = new () { Text = Value.ToString (), - AutoSize = false, X = Pos.Right (_down), Y = Pos.Top (_down), Width = Dim.Function (() => Digits), @@ -450,7 +446,6 @@ public class Buttons : Scenario _up = new () { - AutoSize = false, X = Pos.AnchorEnd (), Y = Pos.Top (_number), Height = 1, diff --git a/UICatalog/Scenarios/CharacterMap.cs b/UICatalog/Scenarios/CharacterMap.cs index 96287152e..cb9685fa6 100644 --- a/UICatalog/Scenarios/CharacterMap.cs +++ b/UICatalog/Scenarios/CharacterMap.cs @@ -472,7 +472,6 @@ internal class CharMap : View var up = new Button { - AutoSize = false, X = Pos.AnchorEnd (1), Y = 0, Height = 1, @@ -487,7 +486,6 @@ internal class CharMap : View var down = new Button { - AutoSize = false, X = Pos.AnchorEnd (1), Y = Pos.AnchorEnd (2), Height = 1, @@ -502,7 +500,6 @@ internal class CharMap : View var left = new Button { - AutoSize = false, X = 0, Y = Pos.AnchorEnd (1), Height = 1, @@ -517,7 +514,6 @@ internal class CharMap : View var right = new Button { - AutoSize = false, X = Pos.AnchorEnd (2), Y = Pos.AnchorEnd (1), Height = 1, diff --git a/UICatalog/Scenarios/CollectionNavigatorTester.cs b/UICatalog/Scenarios/CollectionNavigatorTester.cs index 9a0ed7687..ef31ac6a7 100644 --- a/UICatalog/Scenarios/CollectionNavigatorTester.cs +++ b/UICatalog/Scenarios/CollectionNavigatorTester.cs @@ -145,7 +145,6 @@ public class CollectionNavigatorTester : Scenario TextAlignment = TextAlignment.Centered, X = 0, Y = 1, // for menu - AutoSize = false, Width = Dim.Percent (50), Height = 1 }; @@ -175,7 +174,6 @@ public class CollectionNavigatorTester : Scenario TextAlignment = TextAlignment.Centered, X = Pos.Right (_listView) + 2, Y = 1, // for menu - AutoSize = false, Width = Dim.Percent (50), Height = 1 }; diff --git a/UICatalog/Scenarios/ComboBoxIteration.cs b/UICatalog/Scenarios/ComboBoxIteration.cs index b7c387ae4..a62fba18c 100644 --- a/UICatalog/Scenarios/ComboBoxIteration.cs +++ b/UICatalog/Scenarios/ComboBoxIteration.cs @@ -12,7 +12,7 @@ public class ComboBoxIteration : Scenario { List items = new () { "one", "two", "three" }; - var lbListView = new Label { AutoSize = false, Width = 10, Height = 1 }; + var lbListView = new Label { Width = 10, Height = 1 }; Win.Add (lbListView); var listview = new ListView @@ -25,7 +25,6 @@ public class ComboBoxIteration : Scenario { ColorScheme = Colors.ColorSchemes ["TopLevel"], X = Pos.Right (lbListView) + 1, - AutoSize = false, Width = Dim.Percent (40) }; diff --git a/UICatalog/Scenarios/ComputedLayout.cs b/UICatalog/Scenarios/ComputedLayout.cs index c8013c46a..6cfcb378c 100644 --- a/UICatalog/Scenarios/ComputedLayout.cs +++ b/UICatalog/Scenarios/ComputedLayout.cs @@ -27,7 +27,6 @@ public class ComputedLayout : Scenario var horizontalRuler = new Label { - AutoSize = false, X = 0, Y = 0, Width = Dim.Fill (), @@ -43,7 +42,6 @@ public class ComputedLayout : Scenario var verticalRuler = new Label { - AutoSize = false, X = 0, Y = 0, Width = 1, @@ -93,7 +91,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Left, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -106,7 +103,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Right, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -119,7 +115,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Centered, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -132,7 +127,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Justified, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -159,7 +153,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Left, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -172,7 +165,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Right, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -185,7 +177,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Centered, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -198,7 +189,6 @@ public class ComputedLayout : Scenario new Label { TextAlignment = TextAlignment.Justified, - AutoSize = false, Width = Dim.Fill (), X = 0, Y = Pos.Bottom (labelList.LastOrDefault ()), @@ -335,7 +325,6 @@ public class ComputedLayout : Scenario Text = "This Label should be the 2nd to last line (AnchorEnd (2)).", TextAlignment = TextAlignment.Centered, ColorScheme = Colors.ColorSchemes ["Menu"], - AutoSize = false, Width = Dim.Fill (5), X = 5, Y = Pos.AnchorEnd (2) @@ -350,7 +339,6 @@ public class ComputedLayout : Scenario "This TextField should be the 3rd to last line (AnchorEnd (2) - 1).", TextAlignment = TextAlignment.Left, ColorScheme = Colors.ColorSchemes ["Menu"], - AutoSize = false, Width = Dim.Fill (5), X = 5, Y = Pos.AnchorEnd (2) - 1 // Pos.Combine diff --git a/UICatalog/Scenarios/ContentScrolling.cs b/UICatalog/Scenarios/ContentScrolling.cs index cbbde81b7..8b7e9d9d8 100644 --- a/UICatalog/Scenarios/ContentScrolling.cs +++ b/UICatalog/Scenarios/ContentScrolling.cs @@ -46,7 +46,7 @@ public class ContentScrolling : Scenario // Add a status label to the border that shows Viewport and ContentSize values. Bit of a hack. // TODO: Move to Padding with controls - Border.Add (new Label { AutoSize = false, X = 20 }); + Border.Add (new Label { X = 20 }); LayoutComplete += VirtualDemoView_LayoutComplete; MouseEvent += VirtualDemoView_MouseEvent; diff --git a/UICatalog/Scenarios/SendKeys.cs b/UICatalog/Scenarios/SendKeys.cs index e38079a43..0ab50106f 100644 --- a/UICatalog/Scenarios/SendKeys.cs +++ b/UICatalog/Scenarios/SendKeys.cs @@ -59,10 +59,10 @@ public class SendKeys : Scenario } }; - var lblShippedKeys = new Label { X = Pos.Center (), Y = Pos.Center () + 3, AutoSize = true }; + var lblShippedKeys = new Label { X = Pos.Center (), Y = Pos.Center () + 3 }; Win.Add (lblShippedKeys); - var lblShippedControlKeys = new Label { X = Pos.Center (), Y = Pos.Center () + 5, AutoSize = true }; + var lblShippedControlKeys = new Label { X = Pos.Center (), Y = Pos.Center () + 5 }; Win.Add (lblShippedControlKeys); var button = new Button { X = Pos.Center (), Y = Pos.Center () + 7, IsDefault = true, Text = "Process keys" }; diff --git a/UnitTests/UICatalog/ScenarioTests.cs b/UnitTests/UICatalog/ScenarioTests.cs index c61841528..bace9fd89 100644 --- a/UnitTests/UICatalog/ScenarioTests.cs +++ b/UnitTests/UICatalog/ScenarioTests.cs @@ -14,7 +14,7 @@ public class ScenarioTests : TestsAllViews #endif _output = output; } - + public static IEnumerable AllScenarioTypes => typeof (Scenario).Assembly .GetTypes () @@ -129,9 +129,9 @@ public class ScenarioTests : TestsAllViews var top = new Toplevel (); - _viewClasses = TestHelpers.GetAllViewClasses ().ToDictionary(t => t.Name); + _viewClasses = TestHelpers.GetAllViewClasses ().ToDictionary (t => t.Name); - _leftPane = new() + _leftPane = new () { Title = "Classes", X = 0, @@ -142,7 +142,7 @@ public class ScenarioTests : TestsAllViews ColorScheme = Colors.ColorSchemes ["TopLevel"] }; - _classListView = new() + _classListView = new () { X = 0, Y = 0, @@ -154,7 +154,7 @@ public class ScenarioTests : TestsAllViews }; _leftPane.Add (_classListView); - _settingsPane = new() + _settingsPane = new () { X = Pos.Right (_leftPane), Y = 0, // for menu @@ -164,12 +164,12 @@ public class ScenarioTests : TestsAllViews ColorScheme = Colors.ColorSchemes ["TopLevel"], Title = "Settings" }; - _computedCheckBox = new() { X = 0, Y = 0, Text = "Computed Layout", Checked = true }; + _computedCheckBox = new () { X = 0, Y = 0, Text = "Computed Layout", Checked = true }; _settingsPane.Add (_computedCheckBox); var radioItems = new [] { "Percent(x)", "AnchorEnd(x)", "Center", "At(x)" }; - _locationFrame = new() + _locationFrame = new () { X = Pos.Left (_computedCheckBox), Y = Pos.Bottom (_computedCheckBox), @@ -181,21 +181,21 @@ public class ScenarioTests : TestsAllViews var label = new Label { X = 0, Y = 0, Text = "x:" }; _locationFrame.Add (label); - _xRadioGroup = new() { X = 0, Y = Pos.Bottom (label), RadioLabels = radioItems }; - _xText = new() { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_xVal}" }; + _xRadioGroup = new () { X = 0, Y = Pos.Bottom (label), RadioLabels = radioItems }; + _xText = new () { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_xVal}" }; _locationFrame.Add (_xText); _locationFrame.Add (_xRadioGroup); radioItems = new [] { "Percent(y)", "AnchorEnd(y)", "Center", "At(y)" }; - label = new() { X = Pos.Right (_xRadioGroup) + 1, Y = 0, Text = "y:" }; + label = new () { X = Pos.Right (_xRadioGroup) + 1, Y = 0, Text = "y:" }; _locationFrame.Add (label); - _yText = new() { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_yVal}" }; + _yText = new () { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_yVal}" }; _locationFrame.Add (_yText); - _yRadioGroup = new() { X = Pos.X (label), Y = Pos.Bottom (label), RadioLabels = radioItems }; + _yRadioGroup = new () { X = Pos.X (label), Y = Pos.Bottom (label), RadioLabels = radioItems }; _locationFrame.Add (_yRadioGroup); - _sizeFrame = new() + _sizeFrame = new () { X = Pos.Right (_locationFrame), Y = Pos.Y (_locationFrame), @@ -205,25 +205,25 @@ public class ScenarioTests : TestsAllViews }; radioItems = new [] { "Auto()", "Percent(width)", "Fill(width)", "Sized(width)" }; - label = new() { X = 0, Y = 0, Text = "width:" }; + label = new () { X = 0, Y = 0, Text = "width:" }; _sizeFrame.Add (label); - _wRadioGroup = new() { X = 0, Y = Pos.Bottom (label), RadioLabels = radioItems }; - _wText = new() { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_wVal}" }; + _wRadioGroup = new () { X = 0, Y = Pos.Bottom (label), RadioLabels = radioItems }; + _wText = new () { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_wVal}" }; _sizeFrame.Add (_wText); _sizeFrame.Add (_wRadioGroup); radioItems = new [] { "Auto()", "Percent(height)", "Fill(height)", "Sized(height)" }; - label = new() { X = Pos.Right (_wRadioGroup) + 1, Y = 0, Text = "height:" }; + label = new () { X = Pos.Right (_wRadioGroup) + 1, Y = 0, Text = "height:" }; _sizeFrame.Add (label); - _hText = new() { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_hVal}" }; + _hText = new () { X = Pos.Right (label) + 1, Y = 0, Width = 4, Text = $"{_hVal}" }; _sizeFrame.Add (_hText); - _hRadioGroup = new() { X = Pos.X (label), Y = Pos.Bottom (label), RadioLabels = radioItems }; + _hRadioGroup = new () { X = Pos.X (label), Y = Pos.Bottom (label), RadioLabels = radioItems }; _sizeFrame.Add (_hRadioGroup); _settingsPane.Add (_sizeFrame); - _hostPane = new() + _hostPane = new () { X = Pos.Right (_leftPane), Y = Pos.Bottom (_settingsPane), @@ -477,19 +477,23 @@ public class ScenarioTests : TestsAllViews // Instantiate view var view = (View)Activator.CreateInstance (type); - //_curView.X = Pos.Center (); - //_curView.Y = Pos.Center (); - if (!view.AutoSize) + if (view is null) + { + return null; + } + + if (view.Width is not Dim.DimAuto) { view.Width = Dim.Percent (75); + } + + if (view.Height is not Dim.DimAuto) + { view.Height = Dim.Percent (75); } // Set the colorscheme to make it stand out if is null by default - if (view.ColorScheme == null) - { - view.ColorScheme = Colors.ColorSchemes ["Base"]; - } + view.ColorScheme ??= Colors.ColorSchemes ["Base"]; // If the view supports a Text property, set it so we have something to look at if (view.GetType ().GetProperty ("Text") != null)