diff --git a/Terminal.Gui/Views/SplitView.cs b/Terminal.Gui/Views/TileView.cs similarity index 89% rename from Terminal.Gui/Views/SplitView.cs rename to Terminal.Gui/Views/TileView.cs index 72e74fdad..48cce02bb 100644 --- a/Terminal.Gui/Views/SplitView.cs +++ b/Terminal.Gui/Views/TileView.cs @@ -7,11 +7,11 @@ namespace Terminal.Gui { /// /// A consisting of a moveable bar that divides - /// the display area into resizeable views. + /// the display area into resizeable . /// - public class SplitView : View { + public class TileView : View { - SplitView parentSplitView; + TileView parentTileView; /// TODO: Might be able to make Border virtual and override here /// To make this more API friendly @@ -38,7 +38,7 @@ namespace Terminal.Gui { List tiles; private List splitterDistances; - private List splitterLines; + private List splitterLines; /// /// The sub sections hosted by the view @@ -54,13 +54,13 @@ namespace Terminal.Gui { private Orientation orientation = Orientation.Vertical; /// - /// Creates a new instance of the SplitContainer class. + /// Creates a new instance of the TileView class. /// - public SplitView () : this (2) + public TileView () : this (2) { } - public SplitView (int tiles) + public TileView (int tiles) { CanFocus = true; RebuildForTileCount (tiles); @@ -89,7 +89,7 @@ namespace Terminal.Gui { tiles = new List (); // TODO: keep these if growing splitterDistances = new List (); - splitterLines = new List (); + splitterLines = new List (); RemoveAll (); tiles.Clear (); @@ -105,7 +105,7 @@ namespace Terminal.Gui { if (i > 0) { var currentPos = Pos.Percent ((100 / count) * i); splitterDistances.Add (currentPos); - var line = new SplitContainerLineView (this, i - 1); + var line = new TileViewLineView (this, i - 1); Add (line); splitterLines.Add (line); } @@ -212,7 +212,7 @@ namespace Terminal.Gui { contentArea.Y + 1, Math.Max (0, contentArea.Width - 2), Math.Max (0, contentArea.Height - 2)); - } else if (HasAnyTitles () && IsRootSplitContainer ()) { + } else if (HasAnyTitles () && IsRootTileView ()) { // TODO: Bound with Max/Min contentArea = new Rect ( contentArea.X, @@ -241,7 +241,7 @@ namespace Terminal.Gui { } splitterDistances [idx] = value; - GetRootSplitContainer ().LayoutSubviews (); + GetRootTileView ().LayoutSubviews (); OnSplitterMoved (idx); } @@ -264,9 +264,9 @@ namespace Terminal.Gui { var lc = new LineCanvas (); - var allLines = GetAllChildSplitContainerLineViewRecursively (this); + var allLines = GetAllChildTileViewLineViewRecursively (this); - if (IsRootSplitContainer ()) { + if (IsRootTileView ()) { if (HasBorder ()) { lc.AddLine (new Point (0, 0), bounds.Width - 1, Orientation.Horizontal, IntegratedBorder); @@ -336,19 +336,19 @@ namespace Terminal.Gui { /// /// Converts from a regular - /// container to a new nested . If - /// is already a then returns false. + /// container to a new nested . If + /// is already a then returns false. /// /// After successful splitting, the returned container's /// will contain the original content and (if any) while /// will be empty and available for adding to. /// for adding to. - /// The new now showing in + /// The new now showing in /// or the existing one if it was already been converted before. /// if a was converted to a new nested - /// . if it was already a nested - /// - public bool TrySplitView(int idx, int panels, out SplitView result) + /// . if it was already a nested + /// + public bool TryTileView(int idx, int panels, out TileView result) { // when splitting a view into 2 sub views we will need to migrate // the title too @@ -356,22 +356,22 @@ namespace Terminal.Gui { var title = tile.Title; View toMove = tile.View; - if (toMove is SplitView existing) { + if (toMove is TileView existing) { result = existing; return false; } - var newContainer = new SplitView(panels) { + var newContainer = new TileView(panels) { Width = Dim.Fill (), Height = Dim.Fill (), - parentSplitView = this, + parentTileView = this, }; // Take everything out of the View we are moving var childViews = toMove.Subviews.ToArray(); toMove.RemoveAll (); - // Remove the view itself and replace it with the new SplitContainer + // Remove the view itself and replace it with the new TileView Remove (toMove); Add (newContainer); @@ -388,34 +388,34 @@ namespace Terminal.Gui { } - private List GetAllChildSplitContainerLineViewRecursively (View v) + private List GetAllChildTileViewLineViewRecursively (View v) { - var lines = new List (); + var lines = new List (); foreach (var sub in v.Subviews) { - if (sub is SplitContainerLineView s) { - if (s.Parent.GetRootSplitContainer () == this) { + if (sub is TileViewLineView s) { + if (s.Parent.GetRootTileView () == this) { lines.Add (s); } } else { - lines.AddRange (GetAllChildSplitContainerLineViewRecursively (sub)); + lines.AddRange (GetAllChildTileViewLineViewRecursively (sub)); } } return lines; } - private bool IsRootSplitContainer () + private bool IsRootTileView () { // TODO: don't want to layout subviews since the parent recursively lays them all out - return parentSplitView == null; + return parentTileView == null; } - private SplitView GetRootSplitContainer () + private TileView GetRootTileView () { - SplitView root = this; + TileView root = this; - while (root.parentSplitView != null) { - root = root.parentSplitView; + while (root.parentTileView != null) { + root = root.parentTileView; } return root; @@ -551,15 +551,15 @@ namespace Terminal.Gui { } } - private class SplitContainerLineView : LineView { - public SplitView Parent { get; private set; } + private class TileViewLineView : LineView { + public TileView Parent { get; private set; } public int Idx { get; } Point? dragPosition; Pos dragOrignalPos; public Point? moveRuneRenderLocation; - public SplitContainerLineView (SplitView parent, int idx) + public TileViewLineView (TileView parent, int idx) { CanFocus = true; TabStop = true; @@ -731,7 +731,7 @@ namespace Terminal.Gui { /// /// - /// Moves to + /// Moves to /// preserving format /// (absolute / relative) that had. /// @@ -785,8 +785,8 @@ namespace Terminal.Gui { private class ChildSplitterLine { - readonly SplitContainerLineView currentLine; - internal ChildSplitterLine (SplitContainerLineView currentLine) + readonly TileViewLineView currentLine; + internal ChildSplitterLine (TileViewLineView currentLine) { this.currentLine = currentLine; } @@ -805,34 +805,34 @@ namespace Terminal.Gui { } /// - /// Provides data for events. + /// Provides data for events. /// public class SplitterEventArgs : EventArgs { /// /// Creates a new instance of the class. /// - /// + /// /// - public SplitterEventArgs (SplitView splitContainer, int idx, Pos splitterDistance) + public SplitterEventArgs (TileView tileView, int idx, Pos splitterDistance) { SplitterDistance = splitterDistance; - SplitContainer = splitContainer; + TileView = tileView; Idx = idx; } /// - /// New position of the + /// New position of the /// public Pos SplitterDistance { get; } /// /// Container (sender) of the event. /// - public SplitView SplitContainer { get; } + public TileView TileView { get; } /// - /// The splitter that is being moved (use when + /// The splitter that is being moved (use when /// has more than 2 panels). /// public int Idx { get; } diff --git a/UICatalog/Scenarios/Notepad.cs b/UICatalog/Scenarios/Notepad.cs index 6f31c65d9..15834c48c 100644 --- a/UICatalog/Scenarios/Notepad.cs +++ b/UICatalog/Scenarios/Notepad.cs @@ -40,7 +40,7 @@ namespace UICatalog.Scenarios { tabView.ApplyStyleChanges (); // Start with only a single view but support splitting to show side by side - var split = new SplitView(1) { + var split = new TileView(1) { X = 0, Y = 1, Width = Dim.Fill (), @@ -130,7 +130,7 @@ namespace UICatalog.Scenarios { private void Split (int offset, Orientation orientation,TabView sender, OpenedFile tab) { - var split = (SplitView)sender.SuperView.SuperView; + var split = (TileView)sender.SuperView.SuperView; var tileIndex = split.IndexOf(sender); if(tileIndex == -1) @@ -140,7 +140,7 @@ namespace UICatalog.Scenarios { if(orientation != split.Orientation) { - split.TrySplitView(tileIndex,1,out split); + split.TryTileView(tileIndex,1,out split); split.Orientation = orientation; tileIndex = 0; } @@ -207,7 +207,7 @@ namespace UICatalog.Scenarios { if(tv.Tabs.Count == 0) { - var split = (SplitView)tv.SuperView.SuperView; + var split = (TileView)tv.SuperView.SuperView; var tileIndex = split.IndexOf (tv); split.RemoveTile (tileIndex); } diff --git a/UICatalog/Scenarios/SplitViewNesting.cs b/UICatalog/Scenarios/SplitViewNesting.cs index efafe4ade..64e77fd8c 100644 --- a/UICatalog/Scenarios/SplitViewNesting.cs +++ b/UICatalog/Scenarios/SplitViewNesting.cs @@ -4,10 +4,10 @@ using Terminal.Gui.Graphs; using System.Linq; namespace UICatalog.Scenarios { - [ScenarioMetadata (Name: "Split View Nesting", Description: "Nest SplitViews")] + [ScenarioMetadata (Name: "Split View Nesting", Description: "Nest TileViews")] [ScenarioCategory ("Controls")] [ScenarioCategory ("LineView")] - public class SplitViewNesting : Scenario { + public class TileViewNesting : Scenario { private View workArea; private TextField textField; @@ -36,28 +36,28 @@ namespace UICatalog.Scenarios { Text = "2", }; - textField.TextChanged += (s) => SetupSplitView (); + textField.TextChanged += (s) => SetupTileView (); cbHorizontal = new CheckBox ("Horizontal") { X = Pos.Right (textField) + 1 }; - cbHorizontal.Toggled += (s) => SetupSplitView (); + cbHorizontal.Toggled += (s) => SetupTileView (); cbBorder = new CheckBox ("Border") { X = Pos.Right (cbHorizontal) + 1 }; - cbBorder.Toggled += (s) => SetupSplitView (); + cbBorder.Toggled += (s) => SetupTileView (); cbTitles = new CheckBox ("Titles") { X = Pos.Right (cbBorder) + 1 }; - cbTitles.Toggled += (s) => SetupSplitView (); + cbTitles.Toggled += (s) => SetupTileView (); cbUseLabels = new CheckBox ("Use Labels") { X = Pos.Right (cbTitles) + 1 }; - cbUseLabels.Toggled += (s) => SetupSplitView (); + cbUseLabels.Toggled += (s) => SetupTileView (); workArea = new View { X = 0, @@ -79,14 +79,14 @@ namespace UICatalog.Scenarios { Win.Add (cbUseLabels); Win.Add (workArea); - SetupSplitView (); + SetupTileView (); Application.Top.Add (menu); Win.Loaded += () => loaded = true; } - private void SetupSplitView () + private void SetupTileView () { int numberOfViews = GetNumberOfViews (); @@ -100,7 +100,7 @@ namespace UICatalog.Scenarios { return; } - var root = CreateSplitView (1,startHorizontal ? + var root = CreateTileView (1,startHorizontal ? Terminal.Gui.Graphs.Orientation.Horizontal : Terminal.Gui.Graphs.Orientation.Vertical); @@ -157,41 +157,41 @@ namespace UICatalog.Scenarios { }; } - private void AddMoreViews (SplitView to) + private void AddMoreViews (TileView to) { if (viewsCreated == viewsToCreate) { return; } - if (!(to.Tiles.ElementAt(0).View is SplitView)) { + if (!(to.Tiles.ElementAt(0).View is TileView)) { Split(to,true); } - if (!(to.Tiles.ElementAt (1).View is SplitView)) { + if (!(to.Tiles.ElementAt (1).View is TileView)) { Split(to,false); } - if (to.Tiles.ElementAt (0).View is SplitView && to.Tiles.ElementAt (1).View is SplitView) { + if (to.Tiles.ElementAt (0).View is TileView && to.Tiles.ElementAt (1).View is TileView) { - AddMoreViews ((SplitView)to.Tiles.ElementAt (0).View); - AddMoreViews ((SplitView)to.Tiles.ElementAt (1).View); + AddMoreViews ((TileView)to.Tiles.ElementAt (0).View); + AddMoreViews ((TileView)to.Tiles.ElementAt (1).View); } } - private void Split(SplitView to, bool left) + private void Split(TileView to, bool left) { if (viewsCreated == viewsToCreate) { return; } - SplitView newView; + TileView newView; if (left) { - to.TrySplitView(0,2,out newView); + to.TryTileView(0,2,out newView); } else { - to.TrySplitView (1,2,out newView); + to.TryTileView (1,2,out newView); } viewsCreated++; @@ -208,9 +208,9 @@ namespace UICatalog.Scenarios { newView.Tiles.ElementAt (1).View.Add (CreateContentControl(viewsCreated)); } - private SplitView CreateSplitView (int titleNumber, Orientation orientation) + private TileView CreateTileView (int titleNumber, Orientation orientation) { - var toReturn = new SplitView { + var toReturn = new TileView { Width = Dim.Fill (), Height = Dim.Fill (), // flip the orientation diff --git a/UICatalog/UICatalog.cs b/UICatalog/UICatalog.cs index 8f22de2cd..d7b14f7dc 100644 --- a/UICatalog/UICatalog.cs +++ b/UICatalog/UICatalog.cs @@ -151,7 +151,7 @@ namespace UICatalog { public MenuItem miIsMouseDisabled; public MenuItem miHeightAsBuffer; - public SplitView ContentPane; + public TileView ContentPane; public ListView CategoryListView; public ListView ScenarioListView; @@ -207,7 +207,7 @@ namespace UICatalog { OS }; - ContentPane = new SplitView () { + ContentPane = new TileView () { X = 0, Y = 1, // for menu Width = Dim.Fill (), diff --git a/UnitTests/SplitViewTests.cs b/UnitTests/TileViewTests.cs similarity index 62% rename from UnitTests/SplitViewTests.cs rename to UnitTests/TileViewTests.cs index 624f378d0..02ead874a 100644 --- a/UnitTests/SplitViewTests.cs +++ b/UnitTests/TileViewTests.cs @@ -5,21 +5,21 @@ using Xunit; using Xunit.Abstractions; namespace UnitTests { - public class SplitViewTests { + public class TileViewTests { readonly ITestOutputHelper output; - public SplitViewTests (ITestOutputHelper output) + public TileViewTests (ITestOutputHelper output) { this.output = output; } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical () + public void TestTileView_Vertical () { - var splitContainer = Get11By3SplitView (out var line); - splitContainer.Redraw (splitContainer.Bounds); + var tileView = Get11By3TileView (out var line); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -30,16 +30,16 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect if it is not focused line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_WithBorder () + public void TestTileView_Vertical_WithBorder () { - var splitContainer = Get11By3SplitView (out var line, true); - splitContainer.Redraw (splitContainer.Bounds); + var tileView = Get11By3TileView (out var line, true); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -50,18 +50,18 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect if it is not focused line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_Focused () + public void TestTileView_Vertical_Focused () { - var splitContainer = Get11By3SplitView (out var line); - SetInputFocusLine (splitContainer); + var tileView = Get11By3TileView (out var line); + SetInputFocusLine (tileView); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -72,7 +72,7 @@ namespace UnitTests { // Now while focused move the splitter 1 unit right line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -85,7 +85,7 @@ namespace UnitTests { // and 2 to the left line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -96,12 +96,12 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_Focused_WithBorder () + public void TestTileView_Vertical_Focused_WithBorder () { - var splitContainer = Get11By3SplitView (out var line, true); - SetInputFocusLine (splitContainer); + var tileView = Get11By3TileView (out var line, true); + SetInputFocusLine (tileView); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -112,7 +112,7 @@ namespace UnitTests { // Now while focused move the splitter 1 unit right line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -125,7 +125,7 @@ namespace UnitTests { // and 2 to the left line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -137,13 +137,13 @@ namespace UnitTests { [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_Focused_50PercentSplit () + public void TestTileView_Vertical_Focused_50PercentSplit () { - var splitContainer = Get11By3SplitView (out var line); - SetInputFocusLine (splitContainer); - splitContainer.SetSplitterPos(0,Pos.Percent (50)); - Assert.IsType (splitContainer.SplitterDistances.ElementAt(0)); - splitContainer.Redraw (splitContainer.Bounds); + var tileView = Get11By3TileView (out var line); + SetInputFocusLine (tileView); + tileView.SetSplitterPos(0,Pos.Percent (50)); + Assert.IsType (tileView.SplitterDistances.ElementAt(0)); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -154,7 +154,7 @@ namespace UnitTests { // Now while focused move the splitter 1 unit right line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -164,13 +164,13 @@ namespace UnitTests { TestHelpers.AssertDriverContentsAre (looksLike, output); // Even when moving the splitter location it should stay a Percentage based one - Assert.IsType (splitContainer.SplitterDistances.ElementAt(0)); + Assert.IsType (tileView.SplitterDistances.ElementAt(0)); // and 2 to the left line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -179,15 +179,15 @@ namespace UnitTests { │ "; TestHelpers.AssertDriverContentsAre (looksLike, output); // Even when moving the splitter location it should stay a Percentage based one - Assert.IsType (splitContainer.SplitterDistances.ElementAt (0)); + Assert.IsType (tileView.SplitterDistances.ElementAt (0)); } [Fact, AutoInitShutdown] - public void TestSplitView_Horizontal () + public void TestTileView_Horizontal () { - var splitContainer = Get11By3SplitView (out var line); - splitContainer.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; - splitContainer.Redraw (splitContainer.Bounds); + var tileView = Get11By3TileView (out var line); + tileView.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -198,26 +198,26 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect if it is not focused line.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_View1MinSize_Absolute () + public void TestTileView_Vertical_View1MinSize_Absolute () { - var splitContainer = Get11By3SplitView (out var line); - SetInputFocusLine (splitContainer); - splitContainer.Tiles.ElementAt(0).MinSize = 6; + var tileView = Get11By3TileView (out var line); + SetInputFocusLine (tileView); + tileView.Tiles.ElementAt(0).MinSize = 6; // distance is too small (below 6) - splitContainer.SetSplitterPos(0, 2); + tileView.SetSplitterPos(0, 2); // Should bound the value to the minimum distance - Assert.Equal (6, splitContainer.SplitterDistances.ElementAt (0)); + Assert.Equal (6, tileView.SplitterDistances.ElementAt (0)); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -230,14 +230,14 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect because it // would take us below the minimum splitter size line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); // but we can continue to move the splitter right if we want line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -250,19 +250,19 @@ namespace UnitTests { [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_View1MinSize_Absolute_WithBorder () + public void TestTileView_Vertical_View1MinSize_Absolute_WithBorder () { - var splitContainer = Get11By3SplitView (out var line,true); - SetInputFocusLine (splitContainer); - splitContainer.Tiles.ElementAt(0).MinSize = 5; + var tileView = Get11By3TileView (out var line,true); + SetInputFocusLine (tileView); + tileView.Tiles.ElementAt(0).MinSize = 5; // distance is too small (below 5) - splitContainer.SetSplitterPos(0,2); + tileView.SetSplitterPos(0,2); // Should bound the value to the minimum distance - Assert.Equal (6, splitContainer.SplitterDistances.ElementAt(0)); + Assert.Equal (6, tileView.SplitterDistances.ElementAt(0)); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 5 string looksLike = @@ -275,14 +275,14 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect because it // would take us below the minimum splitter size line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); // but we can continue to move the splitter right if we want line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -294,19 +294,19 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_View2MinSize_Absolute () + public void TestTileView_Vertical_View2MinSize_Absolute () { - var splitContainer = Get11By3SplitView (out var line); - SetInputFocusLine (splitContainer); - splitContainer.Tiles.ElementAt(1).MinSize = 6; + var tileView = Get11By3TileView (out var line); + SetInputFocusLine (tileView); + tileView.Tiles.ElementAt(1).MinSize = 6; // distance leaves too little space for view2 (less than 6 would remain) - splitContainer.SetSplitterPos(0,8); + tileView.SetSplitterPos(0,8); // Should bound the value to the minimum distance - Assert.Equal (4, splitContainer.SplitterDistances.ElementAt(0)); + Assert.Equal (4, tileView.SplitterDistances.ElementAt(0)); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -319,14 +319,14 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect because it // would take us below the minimum splitter size line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); // but we can continue to move the splitter left if we want line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -338,19 +338,19 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_Vertical_View2MinSize_Absolute_WithBorder () + public void TestTileView_Vertical_View2MinSize_Absolute_WithBorder () { - var splitContainer = Get11By3SplitView (out var line, true); - SetInputFocusLine (splitContainer); - splitContainer.Tiles.ElementAt(1).MinSize = 5; + var tileView = Get11By3TileView (out var line, true); + SetInputFocusLine (tileView); + tileView.Tiles.ElementAt(1).MinSize = 5; // distance leaves too little space for view2 (less than 5 would remain) - splitContainer.SetSplitterPos(0,8); + tileView.SetSplitterPos(0,8); // Should bound the value to the minimum distance - Assert.Equal (4, splitContainer.SplitterDistances.ElementAt(0)); + Assert.Equal (4, tileView.SplitterDistances.ElementAt(0)); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -363,14 +363,14 @@ namespace UnitTests { // Keyboard movement on splitter should have no effect because it // would take us below the minimum splitter size line.ProcessKey (new KeyEvent (Key.CursorRight, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); TestHelpers.AssertDriverContentsAre (looksLike, output); // but we can continue to move the splitter left if we want line.ProcessKey (new KeyEvent (Key.CursorLeft, new KeyModifiers ())); - splitContainer.SetNeedsDisplay (); - splitContainer.Redraw (splitContainer.Bounds); + tileView.SetNeedsDisplay (); + tileView.Redraw (tileView.Bounds); looksLike = @" @@ -382,14 +382,14 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_InsertPanelAtStart () + public void TestTileView_InsertPanelAtStart () { - var splitContainer = Get11By3SplitView (out var line, true); - SetInputFocusLine (splitContainer); + var tileView = Get11By3TileView (out var line, true); + SetInputFocusLine (tileView); - splitContainer.InsertTile (0); + tileView.InsertTile (0); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -401,14 +401,14 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_InsertPanelMiddle() + public void TestTileView_InsertPanelMiddle() { - var splitContainer = Get11By3SplitView (out var line, true); - SetInputFocusLine (splitContainer); + var tileView = Get11By3TileView (out var line, true); + SetInputFocusLine (tileView); - splitContainer.InsertTile (1); + tileView.InsertTile (1); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -420,14 +420,14 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_InsertPanelAtEnd () + public void TestTileView_InsertPanelAtEnd () { - var splitContainer = Get11By3SplitView (out var line, true); - SetInputFocusLine (splitContainer); + var tileView = Get11By3TileView (out var line, true); + SetInputFocusLine (tileView); - splitContainer.InsertTile (2); + tileView.InsertTile (2); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); // so should ignore the 2 distance and stick to 6 string looksLike = @@ -439,14 +439,14 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_Horizontal_Focused () + public void TestTileView_Horizontal_Focused () { - var splitContainer = Get11By3SplitView (out var line); + var tileView = Get11By3TileView (out var line); - splitContainer.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; - SetInputFocusLine (splitContainer); + tileView.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; + SetInputFocusLine (tileView); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -458,7 +458,7 @@ namespace UnitTests { // Now move splitter line down line.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" 11111111111 @@ -469,7 +469,7 @@ namespace UnitTests { // And 2 up line.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())); line.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" ─────◊───── @@ -480,19 +480,19 @@ namespace UnitTests { [Fact, AutoInitShutdown] - public void TestSplitView_Horizontal_View1MinSize_Absolute () + public void TestTileView_Horizontal_View1MinSize_Absolute () { - var splitContainer = Get11By3SplitView (out var line); + var tileView = Get11By3TileView (out var line); - splitContainer.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; - SetInputFocusLine (splitContainer); - splitContainer.Tiles.ElementAt(0).MinSize = 1; + tileView.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; + SetInputFocusLine (tileView); + tileView.Tiles.ElementAt(0).MinSize = 1; // 0 should not be allowed because it brings us below minimum size of View1 - splitContainer.SetSplitterPos(0,0); - Assert.Equal ((Pos)1, splitContainer.SplitterDistances.ElementAt(0)); + tileView.SetSplitterPos(0,0); + Assert.Equal ((Pos)1, tileView.SplitterDistances.ElementAt(0)); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -503,7 +503,7 @@ namespace UnitTests { // Now move splitter line down (allowed line.ProcessKey (new KeyEvent (Key.CursorDown, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" 11111111111 @@ -514,7 +514,7 @@ namespace UnitTests { // And up 2 (only 1 is allowed because of minimum size of 1 on view1) line.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())); line.ProcessKey (new KeyEvent (Key.CursorUp, new KeyModifiers ())); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); looksLike = @" 11111111111 @@ -524,34 +524,34 @@ namespace UnitTests { } [Fact, AutoInitShutdown] - public void TestSplitView_CannotSetSplitterPosToFuncEtc () + public void TestTileView_CannotSetSplitterPosToFuncEtc () { - var splitContainer = Get11By3SplitView (); + var tileView = Get11By3TileView (); - var ex = Assert.Throws (() => splitContainer.SetSplitterPos(0,Pos.Right (splitContainer))); + var ex = Assert.Throws (() => tileView.SetSplitterPos(0,Pos.Right (tileView))); Assert.Equal ("Only Percent and Absolute values are supported. Passed value was PosCombine", ex.Message); - ex = Assert.Throws (() => splitContainer.SetSplitterPos(0,Pos.Function (() => 1))); + ex = Assert.Throws (() => tileView.SetSplitterPos(0,Pos.Function (() => 1))); Assert.Equal ("Only Percent and Absolute values are supported. Passed value was PosFunc", ex.Message); // Also not allowed because this results in a PosCombine - ex = Assert.Throws (() => splitContainer.SetSplitterPos(0, Pos.Percent (50) - 1)); + ex = Assert.Throws (() => tileView.SetSplitterPos(0, Pos.Percent (50) - 1)); Assert.Equal ("Only Percent and Absolute values are supported. Passed value was PosCombine", ex.Message); } [Fact,AutoInitShutdown] public void TestNestedContainer2LeftAnd1Right_RendersNicely() { - var splitContainer = GetNestedContainer2Left1Right (false); + var tileView = GetNestedContainer2Left1Right (false); - Assert.Equal (20,splitContainer.Frame.Width); - Assert.Equal (10, splitContainer.Tiles.ElementAt(0).View.Frame.Width); - Assert.Equal (9, splitContainer.Tiles.ElementAt (1).View.Frame.Width); + Assert.Equal (20,tileView.Frame.Width); + Assert.Equal (10, tileView.Tiles.ElementAt(0).View.Frame.Width); + Assert.Equal (9, tileView.Tiles.ElementAt (1).View.Frame.Width); - Assert.IsType (splitContainer.Tiles.ElementAt (0).View); - var left = (SplitView)splitContainer.Tiles.ElementAt (0).View; - Assert.Same (left.SuperView, splitContainer); + Assert.IsType (tileView.Tiles.ElementAt (0).View); + var left = (TileView)tileView.Tiles.ElementAt (0).View; + Assert.Same (left.SuperView, tileView); Assert.Equal(2, left.Tiles.ElementAt (0).View.Subviews.Count); @@ -566,7 +566,7 @@ namespace UnitTests { Assert.Equal (10, onesTop.Frame.Width); Assert.Equal (10, onesBottom.Frame.Width); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -589,9 +589,9 @@ namespace UnitTests { [Fact,AutoInitShutdown] public void TestNestedContainer3RightAnd1Down_RendersNicely() { - var splitContainer = GetNestedContainer3Right1Down (false); + var tileView = GetNestedContainer3Right1Down (false); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -612,32 +612,32 @@ namespace UnitTests { // anything is sticking out but drawn over // 3 panels + 2 splitters - Assert.Equal(5,splitContainer.Subviews.Count); + Assert.Equal(5,tileView.Subviews.Count); // Check X and Widths of Tiles - Assert.Equal(0,splitContainer.Tiles.ElementAt(0).View.Frame.X); - Assert.Equal(6,splitContainer.Tiles.ElementAt(0).View.Frame.Width); + Assert.Equal(0,tileView.Tiles.ElementAt(0).View.Frame.X); + Assert.Equal(6,tileView.Tiles.ElementAt(0).View.Frame.Width); - Assert.Equal(7,splitContainer.Tiles.ElementAt(1).View.Frame.X); - Assert.Equal(6,splitContainer.Tiles.ElementAt(1).View.Frame.Width); + Assert.Equal(7,tileView.Tiles.ElementAt(1).View.Frame.X); + Assert.Equal(6,tileView.Tiles.ElementAt(1).View.Frame.Width); - Assert.Equal(14,splitContainer.Tiles.ElementAt(2).View.Frame.X); - Assert.Equal(6,splitContainer.Tiles.ElementAt(2).View.Frame.Width); + Assert.Equal(14,tileView.Tiles.ElementAt(2).View.Frame.X); + Assert.Equal(6,tileView.Tiles.ElementAt(2).View.Frame.Width); // Check Y and Heights of Tiles - Assert.Equal(0,splitContainer.Tiles.ElementAt(0).View.Frame.Y); - Assert.Equal(10,splitContainer.Tiles.ElementAt(0).View.Frame.Height); + Assert.Equal(0,tileView.Tiles.ElementAt(0).View.Frame.Y); + Assert.Equal(10,tileView.Tiles.ElementAt(0).View.Frame.Height); - Assert.Equal(0,splitContainer.Tiles.ElementAt(1).View.Frame.Y); - Assert.Equal(10,splitContainer.Tiles.ElementAt(1).View.Frame.Height); + Assert.Equal(0,tileView.Tiles.ElementAt(1).View.Frame.Y); + Assert.Equal(10,tileView.Tiles.ElementAt(1).View.Frame.Height); - Assert.Equal(0,splitContainer.Tiles.ElementAt(2).View.Frame.Y); - Assert.Equal(10,splitContainer.Tiles.ElementAt(2).View.Frame.Height); + Assert.Equal(0,tileView.Tiles.ElementAt(2).View.Frame.Y); + Assert.Equal(10,tileView.Tiles.ElementAt(2).View.Frame.Height); // Check Sub containers in last panel - var subSplit = (SplitView)splitContainer.Tiles.ElementAt(2).View; + var subSplit = (TileView)tileView.Tiles.ElementAt(2).View; Assert.Equal(0,subSplit.Tiles.ElementAt(0).View.Frame.X); Assert.Equal(6,subSplit.Tiles.ElementAt(0).View.Frame.Width); Assert.Equal(0,subSplit.Tiles.ElementAt(0).View.Frame.Y); @@ -654,9 +654,9 @@ namespace UnitTests { [Fact,AutoInitShutdown] public void TestNestedContainer3RightAnd1Down_WithBorder_RendersNicely() { - var splitContainer = GetNestedContainer3Right1Down (true); + var tileView = GetNestedContainer3Right1Down (true); - splitContainer.Redraw (splitContainer.Bounds); + tileView.Redraw (tileView.Bounds); string looksLike = @" @@ -676,31 +676,31 @@ namespace UnitTests { // anything is sticking out but drawn over // 3 panels + 2 splitters - Assert.Equal(5,splitContainer.Subviews.Count); + Assert.Equal(5,tileView.Subviews.Count); // Check X and Widths of Tiles - Assert.Equal(1,splitContainer.Tiles.ElementAt(0).View.Frame.X); - Assert.Equal(5,splitContainer.Tiles.ElementAt(0).View.Frame.Width); + Assert.Equal(1,tileView.Tiles.ElementAt(0).View.Frame.X); + Assert.Equal(5,tileView.Tiles.ElementAt(0).View.Frame.Width); - Assert.Equal(7,splitContainer.Tiles.ElementAt(1).View.Frame.X); - Assert.Equal(6,splitContainer.Tiles.ElementAt(1).View.Frame.Width); + Assert.Equal(7,tileView.Tiles.ElementAt(1).View.Frame.X); + Assert.Equal(6,tileView.Tiles.ElementAt(1).View.Frame.Width); - Assert.Equal(14,splitContainer.Tiles.ElementAt(2).View.Frame.X); - Assert.Equal(5,splitContainer.Tiles.ElementAt(2).View.Frame.Width); + Assert.Equal(14,tileView.Tiles.ElementAt(2).View.Frame.X); + Assert.Equal(5,tileView.Tiles.ElementAt(2).View.Frame.Width); // Check Y and Heights of Tiles - Assert.Equal(1,splitContainer.Tiles.ElementAt(0).View.Frame.Y); - Assert.Equal(8,splitContainer.Tiles.ElementAt(0).View.Frame.Height); + Assert.Equal(1,tileView.Tiles.ElementAt(0).View.Frame.Y); + Assert.Equal(8,tileView.Tiles.ElementAt(0).View.Frame.Height); - Assert.Equal(1,splitContainer.Tiles.ElementAt(1).View.Frame.Y); - Assert.Equal(8,splitContainer.Tiles.ElementAt(1).View.Frame.Height); + Assert.Equal(1,tileView.Tiles.ElementAt(1).View.Frame.Y); + Assert.Equal(8,tileView.Tiles.ElementAt(1).View.Frame.Height); - Assert.Equal(1,splitContainer.Tiles.ElementAt(2).View.Frame.Y); - Assert.Equal(8,splitContainer.Tiles.ElementAt(2).View.Frame.Height); + Assert.Equal(1,tileView.Tiles.ElementAt(2).View.Frame.Y); + Assert.Equal(8,tileView.Tiles.ElementAt(2).View.Frame.Height); // Check Sub containers in last panel - var subSplit = (SplitView)splitContainer.Tiles.ElementAt(2).View; + var subSplit = (TileView)tileView.Tiles.ElementAt(2).View; Assert.Equal(0,subSplit.Tiles.ElementAt(0).View.Frame.X); Assert.Equal(5,subSplit.Tiles.ElementAt(0).View.Frame.Width); Assert.Equal(0,subSplit.Tiles.ElementAt(0).View.Frame.Y); @@ -721,10 +721,10 @@ namespace UnitTests { /// /// /// - private SplitView GetNestedContainer2Left1Right(bool withBorder) + private TileView GetNestedContainer2Left1Right(bool withBorder) { - var container = GetSplitView (20, 10,withBorder); - Assert.True (container.TrySplitView (0,2, out var newContainer)); + var container = GetTileView (20, 10,withBorder); + Assert.True (container.TryTileView (0,2, out var newContainer)); newContainer.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; newContainer.ColorScheme = new ColorScheme (); @@ -740,17 +740,17 @@ namespace UnitTests { /// /// /// - private SplitView GetNestedContainer3Right1Down(bool withBorder) + private TileView GetNestedContainer3Right1Down(bool withBorder) { var container = - new SplitView (3) + new TileView (3) { Width = 20, Height = 10, IntegratedBorder = withBorder ? BorderStyle.Single : BorderStyle.None }; - Assert.True (container.TrySplitView (2,2, out var newContainer)); + Assert.True (container.TryTileView (2,2, out var newContainer)); newContainer.Orientation = Terminal.Gui.Graphs.Orientation.Horizontal; @@ -777,32 +777,32 @@ namespace UnitTests { return container; } - private LineView GetLine (SplitView splitContainer) + private LineView GetLine (TileView tileView) { - return splitContainer.Subviews.OfType ().Single (); + return tileView.Subviews.OfType ().Single (); } - private void SetInputFocusLine (SplitView splitContainer) + private void SetInputFocusLine (TileView tileView) { - var line = GetLine (splitContainer); + var line = GetLine (tileView); line.SetFocus (); Assert.True (line.HasFocus); } - private SplitView Get11By3SplitView(out LineView line, bool withBorder = false) + private TileView Get11By3TileView(out LineView line, bool withBorder = false) { - var split = Get11By3SplitView (withBorder); + var split = Get11By3TileView (withBorder); line = GetLine (split); return split; } - private SplitView Get11By3SplitView (bool withBorder = false) + private TileView Get11By3TileView (bool withBorder = false) { - return GetSplitView (11, 3, withBorder); + return GetTileView (11, 3, withBorder); } - private SplitView GetSplitView (int width, int height, bool withBorder = false) + private TileView GetTileView (int width, int height, bool withBorder = false) { - var container = new SplitView () { + var container = new TileView () { Width = width, Height = height, };