Browse Source

Merge remote-tracking branch 'upstream/master' into tree-view

tznind 4 years ago
parent
commit
6ef5f1cd1d
100 changed files with 8818 additions and 436 deletions
  1. 1 1
      README.md
  2. 67 0
      Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs
  3. 4 0
      Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs
  4. 21 0
      Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs
  5. 20 0
      Terminal.Gui/ConsoleDrivers/NetDriver.cs
  6. 115 0
      Terminal.Gui/ConsoleDrivers/WindowsDriver.cs
  7. 4 0
      Terminal.Gui/Core/Application.cs
  8. 78 0
      Terminal.Gui/Core/ConsoleDriver.cs
  9. 30 11
      Terminal.Gui/Core/TextFormatter.cs
  10. 3 3
      Terminal.Gui/Directory.Build.props
  11. 26 0
      Terminal.Gui/Terminal.Gui.csproj
  12. 8 0
      Terminal.Gui/Views/Button.cs
  13. 8 0
      Terminal.Gui/Views/Checkbox.cs
  14. 11 0
      Terminal.Gui/Views/FrameView.cs
  15. 17 0
      Terminal.Gui/Views/HexView.cs
  16. 8 0
      Terminal.Gui/Views/Label.cs
  17. 2 0
      Terminal.Gui/Views/ListView.cs
  18. 16 1
      Terminal.Gui/Views/Menu.cs
  19. 8 0
      Terminal.Gui/Views/ProgressBar.cs
  20. 8 0
      Terminal.Gui/Views/RadioGroup.cs
  21. 8 0
      Terminal.Gui/Views/ScrollBarView.cs
  22. 11 0
      Terminal.Gui/Views/ScrollView.cs
  23. 8 0
      Terminal.Gui/Views/StatusBar.cs
  24. 1341 0
      Terminal.Gui/Views/TableView.cs
  25. 25 0
      Terminal.Gui/Views/TextField.cs
  26. 26 0
      Terminal.Gui/Views/TextView.cs
  27. 8 0
      Terminal.Gui/Windows/FileDialog.cs
  28. 526 0
      UICatalog/Scenarios/CsvEditor.cs
  29. 19 1
      UICatalog/Scenarios/Editor.cs
  30. 394 0
      UICatalog/Scenarios/TableEditor.cs
  31. 3 2
      UICatalog/UICatalog.cs
  32. 447 0
      UnitTests/TableViewTests.cs
  33. 56 0
      docfx/articles/tableview.md
  34. 0 2
      docfx/index.md
  35. 5 4
      docs/README.html
  36. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Application.ResizedEventArgs.html
  37. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Application.RunState.html
  38. 94 24
      docs/api/Terminal.Gui/Terminal.Gui.Application.html
  39. 115 4
      docs/api/Terminal.Gui/Terminal.Gui.Attribute.html
  40. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.Button.html
  41. 289 0
      docs/api/Terminal.Gui/Terminal.Gui.CellActivatedEventArgs.html
  42. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.CheckBox.html
  43. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Clipboard.html
  44. 6 5
      docs/api/Terminal.Gui/Terminal.Gui.Color.html
  45. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.ColorScheme.html
  46. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Colors.html
  47. 415 0
      docs/api/Terminal.Gui/Terminal.Gui.ColumnStyle.html
  48. 15 5
      docs/api/Terminal.Gui/Terminal.Gui.ComboBox.html
  49. 6 5
      docs/api/Terminal.Gui/Terminal.Gui.ConsoleDriver.DiagnosticFlags.html
  50. 204 6
      docs/api/Terminal.Gui/Terminal.Gui.ConsoleDriver.html
  51. 192 0
      docs/api/Terminal.Gui/Terminal.Gui.CursorVisibility.html
  52. 21 8
      docs/api/Terminal.Gui/Terminal.Gui.DateField.html
  53. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.DateTimeEventArgs-1.html
  54. 16 6
      docs/api/Terminal.Gui/Terminal.Gui.Dialog.html
  55. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Dim.html
  56. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.DisplayModeLayout.html
  57. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.FakeConsole.html
  58. 228 67
      docs/api/Terminal.Gui/Terminal.Gui.FakeDriver.html
  59. 28 27
      docs/api/Terminal.Gui/Terminal.Gui.FakeMainLoop.html
  60. 16 6
      docs/api/Terminal.Gui/Terminal.Gui.FileDialog.html
  61. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.FrameView.html
  62. 42 5
      docs/api/Terminal.Gui/Terminal.Gui.HexView.html
  63. 40 7
      docs/api/Terminal.Gui/Terminal.Gui.IListDataSource.html
  64. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.IMainLoopDriver.html
  65. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Key.html
  66. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.KeyEvent.html
  67. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.KeyModifiers.html
  68. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.Label.html
  69. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.LayoutStyle.html
  70. 186 6
      docs/api/Terminal.Gui/Terminal.Gui.ListView.html
  71. 7 6
      docs/api/Terminal.Gui/Terminal.Gui.ListViewItemEventArgs.html
  72. 39 6
      docs/api/Terminal.Gui/Terminal.Gui.ListWrapper.html
  73. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MainLoop.html
  74. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.MenuBar.html
  75. 44 4
      docs/api/Terminal.Gui/Terminal.Gui.MenuBarItem.html
  76. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MenuItem.html
  77. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MenuItemCheckStyle.html
  78. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MessageBox.html
  79. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MouseEvent.html
  80. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.MouseFlags.html
  81. 16 6
      docs/api/Terminal.Gui/Terminal.Gui.OpenDialog.html
  82. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Point.html
  83. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Pos.html
  84. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.ProgressBar.html
  85. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.SelectedItemChangedArgs.html
  86. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.html
  87. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Rect.html
  88. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Responder.html
  89. 16 6
      docs/api/Terminal.Gui/Terminal.Gui.SaveDialog.html
  90. 237 13
      docs/api/Terminal.Gui/Terminal.Gui.ScrollBarView.html
  91. 62 9
      docs/api/Terminal.Gui/Terminal.Gui.ScrollView.html
  92. 353 0
      docs/api/Terminal.Gui/Terminal.Gui.SelectedCellChangedEventArgs.html
  93. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.ShortcutHelper.html
  94. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.Size.html
  95. 61 8
      docs/api/Terminal.Gui/Terminal.Gui.StatusBar.html
  96. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.StatusItem.html
  97. 253 0
      docs/api/Terminal.Gui/Terminal.Gui.TableSelection.html
  98. 415 0
      docs/api/Terminal.Gui/Terminal.Gui.TableStyle.html
  99. 1498 0
      docs/api/Terminal.Gui/Terminal.Gui.TableView.html
  100. 5 4
      docs/api/Terminal.Gui/Terminal.Gui.TextAlignment.html

+ 1 - 1
README.md

@@ -190,7 +190,7 @@ Use NuGet to install the `Terminal.Gui` NuGet package: https://www.nuget.org/pac
 To install Terminal.Gui into a .NET Core project, use the `dotnet` CLI tool with following command.
 
 ```
-dotnet package add Terminal.Gui
+dotnet add package Terminal.Gui
 ```
 
 ## Running and Building

+ 67 - 0
Terminal.Gui/ConsoleDrivers/CursesDriver/CursesDriver.cs

@@ -22,6 +22,9 @@ namespace Terminal.Gui {
 		public override int Top => 0;
 		public override bool HeightAsBuffer { get; set; }
 
+		CursorVisibility? initialCursorVisibility = null;
+		CursorVisibility? currentCursorVisibility = null;
+
 		// Current row, and current col, tracked by Move/AddRune only
 		int ccol, crow;
 		bool needMove;
@@ -82,6 +85,9 @@ namespace Terminal.Gui {
 			if (reportableMouseEvents.HasFlag (Curses.Event.ReportMousePosition)) {
 				StopReportingMouseMoves ();
 			}
+
+			SetCursorVisibility (CursorVisibility.Default);
+			
 			Curses.endwin ();
 			// Clear and reset entire screen.
 			Console.Out.Write ("\x1b[2J");
@@ -689,6 +695,30 @@ namespace Terminal.Gui {
 			} catch (Exception e) {
 				Console.WriteLine ("Curses failed to initialize, the exception is: " + e);
 			}
+
+			// 
+			// We are setting Invisible as default so we could ignore XTerm DECSUSR setting
+			//
+			switch (Curses.curs_set (0)) {
+				case 0:		
+					currentCursorVisibility = initialCursorVisibility = CursorVisibility.Invisible;	
+					break;
+
+				case 1:		
+					currentCursorVisibility = initialCursorVisibility = CursorVisibility.Underline;	
+					Curses.curs_set (1); 
+					break;
+
+				case 2:		
+					currentCursorVisibility = initialCursorVisibility = CursorVisibility.Box;		
+					Curses.curs_set (2); 
+					break;
+
+				default:	
+					currentCursorVisibility = initialCursorVisibility = null;						
+					break;
+			}
+
 			Curses.raw ();
 			Curses.noecho ();
 
@@ -868,6 +898,43 @@ namespace Terminal.Gui {
 		{
 			return currentAttribute;
 		}
+
+		/// <inheritdoc/>
+		public override bool GetCursorVisibility (out CursorVisibility visibility)
+		{
+			visibility = CursorVisibility.Invisible;
+
+			if (!currentCursorVisibility.HasValue)
+				return false;
+
+			visibility = currentCursorVisibility.Value;
+
+			return true;
+		}
+
+		/// <inheritdoc/>
+		public override bool SetCursorVisibility (CursorVisibility visibility)
+		{
+			if (initialCursorVisibility.HasValue == false) 
+				return false;
+
+			Curses.curs_set (((int) visibility >> 16) & 0x000000FF);
+
+			if (visibility != CursorVisibility.Invisible) {
+				Console.Out.Write ("\x1b[{0} q", ((int) visibility >> 24) & 0xFF);
+				Console.Out.Flush ();
+			}
+
+			currentCursorVisibility = visibility;
+
+			return true;
+		}
+
+		/// <inheritdoc/>
+		public override bool EnsureCursorVisibility ()
+		{
+			return false;
+		}
 	}
 
 	internal static class Platform {

+ 4 - 0
Terminal.Gui/ConsoleDrivers/CursesDriver/binding.cs

@@ -250,6 +250,7 @@ namespace Unix.Terminal {
 		//static public int wredrawwin (IntPtr win, int beg_line, int num_lines) => methods.wredrawwin (win, beg_line, num_lines);
 		static public int wnoutrefresh (IntPtr win) => methods.wnoutrefresh (win);
 		static public int move (int line, int col) => methods.move (line, col);
+		static public int curs_set (int visibility) => methods.curs_set (visibility);
 		//static public int addch (int ch) => methods.addch (ch);
 		static public int addwstr (string s) => methods.addwstr (s);
 		static public int wmove (IntPtr win, int line, int col) => methods.wmove (win, line, col);
@@ -310,6 +311,7 @@ namespace Unix.Terminal {
 		//public delegate int wredrawwin (IntPtr win, int beg_line, int num_lines);
 		public delegate int wnoutrefresh (IntPtr win);
 		public delegate int move (int line, int col);
+		public delegate int curs_set (int visibility);
 		public delegate int addch (int ch);
 		public delegate int addwstr([MarshalAs(UnmanagedType.LPWStr)]string s);
 		public delegate int wmove (IntPtr win, int line, int col);
@@ -369,6 +371,7 @@ namespace Unix.Terminal {
 		//public readonly Delegates.wredrawwin wredrawwin;
 		public readonly Delegates.wnoutrefresh wnoutrefresh;
 		public readonly Delegates.move move;
+		public readonly Delegates.curs_set curs_set;
 		public readonly Delegates.addch addch;
 		public readonly Delegates.addwstr addwstr;
 		public readonly Delegates.wmove wmove;
@@ -430,6 +433,7 @@ namespace Unix.Terminal {
 			//wredrawwin = lib.GetNativeMethodDelegate<Delegates.wredrawwin> ("wredrawwin");
 			wnoutrefresh = lib.GetNativeMethodDelegate<Delegates.wnoutrefresh> ("wnoutrefresh");
 			move = lib.GetNativeMethodDelegate<Delegates.move> ("move");
+			curs_set = lib.GetNativeMethodDelegate<Delegates.curs_set> ("curs_set");
 			addch = lib.GetNativeMethodDelegate<Delegates.addch>("addch");
 			addwstr = lib.GetNativeMethodDelegate<Delegates.addwstr> ("addwstr");
 			wmove = lib.GetNativeMethodDelegate<Delegates.wmove> ("wmove");

+ 21 - 0
Terminal.Gui/ConsoleDrivers/FakeDriver/FakeDriver.cs

@@ -417,6 +417,27 @@ namespace Terminal.Gui {
 		public override void UncookMouse ()
 		{
 		}
+
+		/// <inheritdoc/>
+		public override bool GetCursorVisibility (out CursorVisibility visibility)
+		{
+			visibility = CursorVisibility.Default;
+
+			return false;
+		}
+
+		/// <inheritdoc/>
+		public override bool SetCursorVisibility (CursorVisibility visibility)
+		{
+			return false;
+		}
+
+		/// <inheritdoc/>
+		public override bool EnsureCursorVisibility ()
+		{
+			return false;
+		}
+
 		#endregion
 #pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
 	}

+ 20 - 0
Terminal.Gui/ConsoleDrivers/NetDriver.cs

@@ -1712,6 +1712,26 @@ namespace Terminal.Gui {
 		public override void UncookMouse ()
 		{
 		}
+
+		/// <inheritdoc/>
+		public override bool GetCursorVisibility (out CursorVisibility visibility)
+		{
+			visibility = CursorVisibility.Default;
+
+			return false;
+		}
+
+		/// <inheritdoc/>
+		public override bool SetCursorVisibility (CursorVisibility visibility)
+		{
+			return false;
+		}
+
+		/// <inheritdoc/>
+		public override bool EnsureCursorVisibility ()
+		{
+			return false;
+		}
 		#endregion
 
 		//

+ 115 - 0
Terminal.Gui/ConsoleDrivers/WindowsDriver.cs

@@ -41,6 +41,9 @@ namespace Terminal.Gui {
 		internal IntPtr InputHandle, OutputHandle;
 		IntPtr ScreenBuffer;
 		uint originalConsoleMode;
+		CursorVisibility? initialCursorVisibility = null;
+		CursorVisibility? currentCursorVisibility = null;
+		CursorVisibility? pendingCursorVisibility = null;
 
 		public WindowsConsole ()
 		{
@@ -82,6 +85,10 @@ namespace Terminal.Gui {
 				}
 			}
 
+			if (!initialCursorVisibility.HasValue && GetCursorVisibility (out CursorVisibility visibility)) {
+				initialCursorVisibility = visibility;
+			}
+
 			if (!SetConsoleActiveScreenBuffer (ScreenBuffer)) {
 				var err = Marshal.GetLastWin32Error ();
 				if (HeightAsBuffer) {
@@ -100,8 +107,83 @@ namespace Terminal.Gui {
 			return SetConsoleCursorPosition (ScreenBuffer, position);
 		}
 
+		public void SetInitialCursorVisibility ()
+		{
+			if (initialCursorVisibility.HasValue == false && GetCursorVisibility (out CursorVisibility visibility)) {
+				initialCursorVisibility = visibility;
+			}
+		}
+
+		public bool GetCursorVisibility (out CursorVisibility visibility)
+		{
+			if (!GetConsoleCursorInfo (ScreenBuffer, out ConsoleCursorInfo info)) {
+				var err = Marshal.GetLastWin32Error ();
+				if (err != 0) {
+					throw new System.ComponentModel.Win32Exception (err);
+				}				
+				visibility = Gui.CursorVisibility.Default;
+
+				return false;
+			}
+
+			if (!info.bVisible)        
+				visibility = CursorVisibility.Invisible;
+			else if (info.dwSize > 50) 
+				visibility = CursorVisibility.Box;
+			else                       
+				visibility = CursorVisibility.Underline;
+
+			return true;
+		}
+
+		public bool EnsureCursorVisibility () 
+		{
+			if (initialCursorVisibility.HasValue && pendingCursorVisibility.HasValue && SetCursorVisibility (pendingCursorVisibility.Value)) {
+				pendingCursorVisibility = null;
+
+				return true;
+			}
+
+			return false;
+		}
+
+		public void ForceRefreshCursorVisibility ()
+		{
+			if (currentCursorVisibility.HasValue) {
+				pendingCursorVisibility = currentCursorVisibility;
+				currentCursorVisibility = null;
+			}
+		}
+
+		public bool SetCursorVisibility (CursorVisibility visibility)
+		{
+			if (initialCursorVisibility.HasValue == false) {
+				pendingCursorVisibility = visibility;
+
+				return false;
+			}
+
+			if (currentCursorVisibility.HasValue == false || currentCursorVisibility.Value != visibility) {
+				ConsoleCursorInfo info = new ConsoleCursorInfo {
+					dwSize   =  (uint) visibility & 0x00FF,
+					bVisible = ((uint) visibility & 0xFF00) != 0
+				};
+
+				if (!SetConsoleCursorInfo (ScreenBuffer, ref info)) 
+					return false;
+
+				currentCursorVisibility = visibility;
+			}
+
+			return true;
+		}
+
 		public void Cleanup ()
 		{
+			if (initialCursorVisibility.HasValue) {
+				SetCursorVisibility (initialCursorVisibility.Value);
+			}
+
 			ConsoleMode = originalConsoleMode;
 			//ContinueListeningForConsoleEvents = false;
 			if (!SetConsoleActiveScreenBuffer (OutputHandle)) {
@@ -414,6 +496,18 @@ namespace Terminal.Gui {
 		[DllImport ("kernel32.dll")]
 		static extern bool SetConsoleCursorPosition (IntPtr hConsoleOutput, Coord dwCursorPosition);
 
+		[StructLayout (LayoutKind.Sequential)]
+		public struct ConsoleCursorInfo {
+			public uint dwSize;
+			public bool bVisible;
+		}
+
+		[DllImport ("kernel32.dll", SetLastError = true)]
+		static extern bool SetConsoleCursorInfo (IntPtr hConsoleOutput, [In] ref ConsoleCursorInfo lpConsoleCursorInfo);
+
+		[DllImport ("kernel32.dll", SetLastError = true)]
+		static extern bool GetConsoleCursorInfo (IntPtr hConsoleOutput, out ConsoleCursorInfo lpConsoleCursorInfo);
+
 		[DllImport ("kernel32.dll")]
 		static extern bool GetConsoleMode (IntPtr hConsoleHandle, out uint lpMode);
 
@@ -1219,6 +1313,7 @@ namespace Terminal.Gui {
 				Bottom = (short)Rows,
 				Right = (short)Cols
 			};
+			winConsole.ForceRefreshCursorVisibility ();
 		}
 
 		void UpdateOffScreen ()
@@ -1299,6 +1394,8 @@ namespace Terminal.Gui {
 		public override void Refresh ()
 		{
 			UpdateScreen ();
+
+			winConsole.SetInitialCursorVisibility ();
 #if false
 			var bufferCoords = new WindowsConsole.Coord (){
 				X = (short)Clip.Width,
@@ -1359,6 +1456,24 @@ namespace Terminal.Gui {
 			return currentAttribute;
 		}
 
+		/// <inheritdoc/>
+		public override bool GetCursorVisibility (out CursorVisibility visibility)
+		{
+			return winConsole.GetCursorVisibility (out visibility);
+		}
+
+		/// <inheritdoc/>
+		public override bool SetCursorVisibility (CursorVisibility visibility)
+		{
+			return winConsole.SetCursorVisibility (visibility);
+		}
+
+		/// <inheritdoc/>
+		public override bool EnsureCursorVisibility ()
+		{
+			return winConsole.EnsureCursorVisibility ();
+		}
+
 		#region Unused
 		public override void SetColors (ConsoleColor foreground, ConsoleColor background)
 		{

+ 4 - 0
Terminal.Gui/Core/Application.cs

@@ -617,6 +617,10 @@ namespace Terminal.Gui {
 
 					MainLoop.MainIteration ();
 					Iteration?.Invoke ();
+					
+					if (Driver.EnsureCursorVisibility ()) {
+						state.Toplevel.SetNeedsDisplay ();
+					}
 				} else if (!wait) {
 					return;
 				}

+ 78 - 0
Terminal.Gui/Core/ConsoleDriver.cs

@@ -476,6 +476,64 @@ namespace Terminal.Gui {
 		public static Dictionary<string, ColorScheme> ColorSchemes { get; }
 	}
 
+	/// <summary>
+	/// Cursors Visibility that are displayed
+	/// </summary>
+	// 
+	// Hexa value are set as 0xAABBCCDD where :
+	//
+	//     AA stand for the TERMINFO DECSUSR parameter value to be used under Linux & MacOS
+	//     BB stand for the NCurses curs_set parameter value to be used under Linux & MacOS
+	//     CC stand for the CONSOLE_CURSOR_INFO.bVisible parameter value to be used under Windows
+	//     DD stand for the CONSOLE_CURSOR_INFO.dwSize parameter value to be used under Windows
+	//
+	public enum CursorVisibility {
+		/// <summary>
+		///	Cursor caret has default
+		/// </summary>
+		/// <remarks>Works under Xterm-like terminal otherwise this is equivalent to <see ref="Underscore"/>. This default directly depends of the XTerm user configuration settings so it could be Block, I-Beam, Underline with possible blinking.</remarks>
+		Default = 0x00010119,
+
+		/// <summary>
+		///	Cursor caret is hidden
+		/// </summary>
+		Invisible = 0x03000019,
+
+		/// <summary>
+		///	Cursor caret is normally shown as a blinking underline bar _
+		/// </summary>
+		Underline = 0x03010119,
+
+		/// <summary>
+		///	Cursor caret is normally shown as a underline bar _
+		/// </summary>
+		/// <remarks>Under Windows, this is equivalent to <see ref="UnderscoreBlinking"/></remarks>
+		UnderlineFix = 0x04010119,
+
+		/// <summary>
+		///	Cursor caret is displayed a blinking vertical bar |
+		/// </summary>
+		/// <remarks>Works under Xterm-like terminal otherwise this is equivalent to <see ref="Underscore"/></remarks>
+		Vertical = 0x05010119,
+
+		/// <summary>
+		///	Cursor caret is displayed a blinking vertical bar |
+		/// </summary>
+		/// <remarks>Works under Xterm-like terminal otherwise this is equivalent to <see ref="Underscore"/></remarks>
+		VerticalFix = 0x06010119,
+
+		/// <summary>
+		///	Cursor caret is displayed as a blinking block ▉
+		/// </summary>
+		Box = 0x01020164,
+
+		/// <summary>
+		///	Cursor caret is displayed a block ▉
+		/// </summary>
+		/// <remarks>Works under Xterm-like terminal otherwise this is equivalent to <see ref="Block"/></remarks>
+		BoxFix = 0x02020164,
+	}
+
 	///// <summary>
 	///// Special characters that can be drawn with 
 	///// </summary>
@@ -628,6 +686,26 @@ namespace Terminal.Gui {
 		/// </summary>
 		public abstract void UpdateCursor ();
 
+		/// <summary>
+		/// Retreive the cursor caret visibility
+		/// </summary>
+		/// <param name="visibility">The current <see cref="CursorVisibility"/></param>
+		/// <returns>true upon success</returns>
+		public abstract bool GetCursorVisibility (out CursorVisibility visibility);
+
+		/// <summary>
+		/// Change the cursor caret visibility
+		/// </summary>
+		/// <param name="visibility">The wished <see cref="CursorVisibility"/></param>
+		/// <returns>true upon success</returns>
+		public abstract bool SetCursorVisibility (CursorVisibility visibility);
+
+		/// <summary>
+		/// Ensure the cursor visibility
+		/// </summary>
+		/// <returns>true upon success</returns>
+		public abstract bool EnsureCursorVisibility ();
+
 		/// <summary>
 		/// Ends the execution of the console driver.
 		/// </summary>

+ 30 - 11
Terminal.Gui/Core/TextFormatter.cs

@@ -195,7 +195,7 @@ namespace Terminal.Gui {
 					break;
 				}
 			}
-			return ustring.Make (runes); ;
+			return ustring.Make (runes);
 		}
 
 		/// <summary>
@@ -396,10 +396,17 @@ namespace Terminal.Gui {
 		public static int MaxWidth (ustring text, int width)
 		{
 			var result = TextFormatter.Format (text, width, TextAlignment.Left, true);
-			return result.Max (s => s.RuneCount);
+			var max = 0;
+			result.ForEach (s => {
+				var m = 0;
+				s.ToRuneList ().ForEach (r => m += Rune.ColumnWidth (r));
+				if (m > max) {
+					max = m;
+				}
+			});
+			return max;
 		}
 
-
 		/// <summary>
 		///  Calculates the rectangle required to hold text, assuming no word wrapping.
 		/// </summary>
@@ -409,8 +416,9 @@ namespace Terminal.Gui {
 		/// <returns></returns>
 		public static Rect CalcRect (int x, int y, ustring text)
 		{
-			if (ustring.IsNullOrEmpty (text))
+			if (ustring.IsNullOrEmpty (text)) {
 				return new Rect (new Point (x, y), Size.Empty);
+			}
 
 			int mw = 0;
 			int ml = 1;
@@ -419,17 +427,24 @@ namespace Terminal.Gui {
 			foreach (var rune in text) {
 				if (rune == '\n') {
 					ml++;
-					if (cols > mw)
+					if (cols > mw) {
 						mw = cols;
+					}
 					cols = 0;
 				} else {
 					if (rune != '\r') {
 						cols++;
+						var rw = Rune.ColumnWidth (rune);
+						if (rw > 0) {
+							rw--;
+						}
+						cols += rw;
 					}
 				}
 			}
-			if (cols > mw)
+			if (cols > mw) {
 				mw = cols;
+			}
 
 			return new Rect (x, y, mw, ml);
 		}
@@ -587,15 +602,16 @@ namespace Terminal.Gui {
 				default:
 					throw new ArgumentOutOfRangeException ();
 				}
-				for (var col = bounds.Left; col < bounds.Left + bounds.Width; col++) {
+				var col = bounds.Left;
+				for (var idx = bounds.Left; idx < bounds.Left + bounds.Width; idx++) {
 					Application.Driver?.Move (col, bounds.Top + line);
 					var rune = (Rune)' ';
-					if (col >= x && col < (x + runes.Length)) {
-						rune = runes [col - x];
+					if (idx >= x && idx < (x + runes.Length)) {
+						rune = runes [idx - x];
 					}
 					if ((rune & HotKeyTagMask) == HotKeyTagMask) {
 						if (textAlignment == TextAlignment.Justified) {
-							CursorPosition = col - bounds.Left;
+							CursorPosition = idx - bounds.Left;
 						}
 						Application.Driver?.SetAttribute (hotColor);
 						Application.Driver?.AddRune ((Rune)((uint)rune & ~HotKeyTagMask));
@@ -603,9 +619,12 @@ namespace Terminal.Gui {
 					} else {
 						Application.Driver?.AddRune (rune);
 					}
+					col += Rune.ColumnWidth (rune);
+					if (idx + 1 < runes.Length && col + Rune.ColumnWidth (runes [idx + 1]) > bounds.Width) {
+						break;
+					}
 				}
 			}
 		}
-
 	}
 }

+ 3 - 3
Terminal.Gui/Directory.Build.props

@@ -14,9 +14,9 @@
           
        e.g. If AssemblyVersion is 1.2.3.4, Version could be EITHER 1.2.3.4 or 1.2.3-pre.4 depending on whether it's a pre-release or not.
     -->
-    <Version>1.0.0-pre.6</Version>
-    <AssemblyVersion>1.0.0.6</AssemblyVersion>
-    <FileVersion>1.0.0.6</FileVersion>    
+    <Version>1.0.0-pre.8</Version>
+    <AssemblyVersion>1.0.0.8</AssemblyVersion>
+    <FileVersion>1.0.0.8</FileVersion>    
     <Authors>Miguel de Icaza, Charlie Kindel (@tig), @BDisp</Authors>
   </PropertyGroup>
 

+ 26 - 0
Terminal.Gui/Terminal.Gui.csproj

@@ -22,6 +22,32 @@
     <Summary>Application framework for creating modern console applications using .NET</Summary>
     <Title>Terminal.Gui is a framework for creating console user interfaces</Title>
     <PackageReleaseNotes>
+      v1.0.0-pre.8
+      * NOTE: Windows Terminal is broken - see #1099
+      * NEW CONTROL: TableView - Thanks @tznind!
+      * NetDriver is signficantly imporved - thanks @bdisp!
+      * Fixes #1016. Window is drawing its frame over the menu.
+      * Fixes #1018. Since childNeedsDisplay is used outside the View class it must to be a property.
+      * Fixes #1024. TextView is printing theFixes #1030. Getting colors from the Attributes of a ColorScheme. new line character "\n" with a symbol
+      * Fixes #1030. Getting colors from the Attributes of a ColorScheme.
+      * Fixes #1034. The NuGet packages need to be updated.
+      * Fixes #1043. The menu separator is being printed in the wrong place.
+      * Fixes #93. Audit TextView just like we did TextField to ensure proper treatment of Unicode.
+      * Fixes #1050. ScrollView takes too long to scroll enormous content size.
+      * BREAKING CHANGE - Fixes #1052. Application.CurrentView looks unused.
+      * Fixes #1053. ProcessMouseEvent seems to initialize MouseEvent incorrectly.
+      * Fixes #1056. Window doesn't redraw his SuperView properly.
+      * Fixes #1061. ComputerLayout scenario does not drawn correctly.
+      * Added unhandled exception handling in Application.Run (#1063)
+      * Fixes #1068. The ResizeView doesn't handle the AutoSize properly.
+      * Fixes #1071. Toplevel.GetTopLevelSubviews (). Changed from HashSet to IList.
+      * Fixes #1073, #1058, #480 #1049. Provides more automation to the ScrollBarView, allowing easily implement on any view.
+      * Application.Shutdown() does not reset SynchronizationContext (#1085).
+      * Fixes #1088. On WindowsDriver moving the mouse with a button pressed, when it is released, the button clicked event is fired, causing an unintentional event.
+      * Fixes #1091. Continuous button pressed not working properly on Linux.
+      * Fixes #1100. TextFormatter doesn't handle ColumnWidth greater than 1.
+      * Cursor shape and visibility #1102
+
       v1.0.0-pre.6
       * If StatusBar.Visible is set to false, TopLevel resizes correctly enabling hiding/showing of a StatusBar. UICatalog demonstrates.
       * New sample/demo app - ReactiveExample - Shows how to use reactive extensions and ReactiveUI with gui.cs. (Thanks @worldbeater)

+ 8 - 0
Terminal.Gui/Views/Button.cs

@@ -248,5 +248,13 @@ namespace Terminal.Gui {
 			}
 			base.PositionCursor ();
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 8 - 0
Terminal.Gui/Views/Checkbox.cs

@@ -159,5 +159,13 @@ namespace Terminal.Gui {
 
 			return true;
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 11 - 0
Terminal.Gui/Views/FrameView.cs

@@ -9,6 +9,7 @@
 //  - Does not support IEnumerable
 // Any udpates done here should probably be done in Window as well; TODO: Merge these classes
 
+using System.Linq;
 using NStack;
 
 namespace Terminal.Gui {
@@ -191,5 +192,15 @@ namespace Terminal.Gui {
 				base.TextAlignment = contentView.TextAlignment = value;
 			}
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			if (Subviews.Count == 0 || !Subviews.Any (subview => subview.CanFocus)) {
+				Application.Driver?.SetCursorVisibility (CursorVisibility.Invisible);
+			}
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 17 - 0
Terminal.Gui/Views/HexView.cs

@@ -395,5 +395,22 @@ namespace Terminal.Gui {
 			}
 			edits = new SortedDictionary<long, byte> ();
 		}
+
+		private CursorVisibility desiredCursorVisibility = CursorVisibility.Default;
+
+		/// <summary>
+		/// Get / Set the wished cursor when the field is focused
+		/// </summary>
+		public CursorVisibility DesiredCursorVisibility 
+		{ 
+			get => desiredCursorVisibility; 
+			set {
+				if (desiredCursorVisibility != value && HasFocus) {
+					Application.Driver.SetCursorVisibility (value);		
+				}
+
+				desiredCursorVisibility = value;
+			}
+		}
 	}
 }

+ 8 - 0
Terminal.Gui/Views/Label.cs

@@ -96,5 +96,13 @@ namespace Terminal.Gui {
 			}
 			return false;
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 2 - 0
Terminal.Gui/Views/ListView.cs

@@ -657,6 +657,8 @@ namespace Terminal.Gui {
 		///<inheritdoc/>
 		public override bool OnEnter (View view)
 		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
 			if (lastSelectedItem == -1) {
 				EnsuresVisibilitySelectedItem ();
 				OnSelectedChanged ();

+ 16 - 1
Terminal.Gui/Views/Menu.cs

@@ -749,6 +749,14 @@ namespace Terminal.Gui {
 
 			return pos;
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 
 
@@ -1621,6 +1629,13 @@ namespace Terminal.Gui {
 
 			return true;
 		}
-	}
 
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
+	}
 }

+ 8 - 0
Terminal.Gui/Views/ProgressBar.cs

@@ -102,5 +102,13 @@ namespace Terminal.Gui {
 					Driver.AddRune (' ');
 			}
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 8 - 0
Terminal.Gui/Views/RadioGroup.cs

@@ -355,6 +355,14 @@ namespace Terminal.Gui {
 			}
 			return true;
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 
 	/// <summary>

+ 8 - 0
Terminal.Gui/Views/ScrollBarView.cs

@@ -658,5 +658,13 @@ namespace Terminal.Gui {
 				(KeepContentAlwaysInViewport ? Host.Bounds.Height + (showBothScrollIndicator ? -2 : -1) : 0) :
 				(KeepContentAlwaysInViewport ? Host.Bounds.Width + (showBothScrollIndicator ? -2 : -1) : 0);
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 11 - 0
Terminal.Gui/Views/ScrollView.cs

@@ -12,6 +12,7 @@
 // - Perhaps allow an option to not display the scrollbar arrow indicators?
 
 using System;
+using System.Linq;
 using System.Reflection;
 
 namespace Terminal.Gui {
@@ -522,5 +523,15 @@ namespace Terminal.Gui {
 			}
 			base.Dispose (disposing);
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			if (Subviews.Count == 0 || !Subviews.Any (subview => subview.CanFocus)) {
+				Application.Driver?.SetCursorVisibility (CursorVisibility.Invisible);
+			}
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 8 - 0
Terminal.Gui/Views/StatusBar.cs

@@ -215,5 +215,13 @@ namespace Terminal.Gui {
 				disposedValue = true;
 			}
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 }

+ 1341 - 0
Terminal.Gui/Views/TableView.cs

@@ -0,0 +1,1341 @@
+using NStack;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+
+namespace Terminal.Gui {
+
+	/// <summary>
+	/// Describes how to render a given column in  a <see cref="TableView"/> including <see cref="Alignment"/> and textual representation of cells (e.g. date formats)
+	/// </summary>
+	public class ColumnStyle {
+		
+		/// <summary>
+		/// Defines the default alignment for all values rendered in this column.  For custom alignment based on cell contents use <see cref="AlignmentGetter"/>.
+		/// </summary>
+		public TextAlignment Alignment {get;set;}
+	
+		/// <summary>
+		/// Defines a delegate for returning custom alignment per cell based on cell values.  When specified this will override <see cref="Alignment"/>
+		/// </summary>
+		public Func<object,TextAlignment> AlignmentGetter;
+
+		/// <summary>
+		/// Defines a delegate for returning custom representations of cell values.  If not set then <see cref="object.ToString()"/> is used.  Return values from your delegate may be truncated e.g. based on <see cref="MaxWidth"/>
+		/// </summary>
+		public Func<object,string> RepresentationGetter;
+
+		/// <summary>
+		/// Defines the format for values e.g. "yyyy-MM-dd" for dates
+		/// </summary>
+		public string Format{get;set;}
+
+		/// <summary>
+		/// Set the maximum width of the column in characters.  This value will be ignored if more than the tables <see cref="TableView.MaxCellWidth"/>.  Defaults to <see cref="TableView.DefaultMaxCellWidth"/>
+		/// </summary>
+		public int MaxWidth {get;set;} = TableView.DefaultMaxCellWidth;
+
+		/// <summary>
+		/// Set the minimum width of the column in characters.  This value will be ignored if more than the tables <see cref="TableView.MaxCellWidth"/> or the <see cref="MaxWidth"/>
+		/// </summary>
+		public int MinWidth {get;set;}
+
+		/// <summary>
+		/// Returns the alignment for the cell based on <paramref name="cellValue"/> and <see cref="AlignmentGetter"/>/<see cref="Alignment"/>
+		/// </summary>
+		/// <param name="cellValue"></param>
+		/// <returns></returns>
+		public TextAlignment GetAlignment(object cellValue)
+		{
+			if(AlignmentGetter != null)
+				return AlignmentGetter(cellValue);
+
+			return Alignment;
+		}
+
+		/// <summary>
+		/// Returns the full string to render (which may be truncated if too long) that the current style says best represents the given <paramref name="value"/>
+		/// </summary>
+		/// <param name="value"></param>
+		/// <returns></returns>
+		public string GetRepresentation (object value)
+		{
+			if(!string.IsNullOrWhiteSpace(Format)) {
+
+				if(value is IFormattable f)
+					return f.ToString(Format,null);
+			}
+				
+
+			if(RepresentationGetter != null)
+				return RepresentationGetter(value);
+
+			return value?.ToString();
+		}
+	}
+	/// <summary>
+	/// Defines rendering options that affect how the table is displayed
+	/// </summary>
+	public class TableStyle {
+		
+		/// <summary>
+		/// When scrolling down always lock the column headers in place as the first row of the table
+		/// </summary>
+		public bool AlwaysShowHeaders {get;set;} = false;
+
+		/// <summary>
+		/// True to render a solid line above the headers
+		/// </summary>
+		public bool ShowHorizontalHeaderOverline {get;set;} = true;
+
+		/// <summary>
+		/// True to render a solid line under the headers
+		/// </summary>
+		public bool ShowHorizontalHeaderUnderline {get;set;} = true;
+
+		/// <summary>
+		/// True to render a solid line vertical line between cells
+		/// </summary>
+		public bool ShowVerticalCellLines {get;set;} = true;
+
+		/// <summary>
+		/// True to render a solid line vertical line between headers
+		/// </summary>
+		public bool ShowVerticalHeaderLines {get;set;} = true;
+
+		/// <summary>
+		/// Collection of columns for which you want special rendering (e.g. custom column lengths, text alignment etc)
+		/// </summary>
+		public Dictionary<DataColumn,ColumnStyle> ColumnStyles {get;set; }  = new Dictionary<DataColumn, ColumnStyle>();
+
+		/// <summary>
+		/// Returns the entry from <see cref="ColumnStyles"/> for the given <paramref name="col"/> or null if no custom styling is defined for it
+		/// </summary>
+		/// <param name="col"></param>
+		/// <returns></returns>
+		public ColumnStyle GetColumnStyleIfAny (DataColumn col)
+		{
+			return ColumnStyles.TryGetValue(col,out ColumnStyle result) ? result : null;
+		}
+
+		/// <summary>
+		/// Returns an existing <see cref="ColumnStyle"/> for the given <paramref name="col"/> or creates a new one with default options
+		/// </summary>
+		/// <param name="col"></param>
+		/// <returns></returns>
+		public ColumnStyle GetOrCreateColumnStyle (DataColumn col)
+		{
+			if(!ColumnStyles.ContainsKey(col))
+				ColumnStyles.Add(col,new ColumnStyle());
+
+			return ColumnStyles[col];
+		}
+	}
+	
+	/// <summary>
+	/// View for tabular data based on a <see cref="DataTable"/>
+	/// </summary>
+	public class TableView : View {
+
+		private int columnOffset;
+		private int rowOffset;
+		private int selectedRow;
+		private int selectedColumn;
+		private DataTable table;
+		private TableStyle style = new TableStyle();
+
+		/// <summary>
+		/// The default maximum cell width for <see cref="TableView.MaxCellWidth"/> and <see cref="ColumnStyle.MaxWidth"/>
+		/// </summary>
+		public const int DefaultMaxCellWidth = 100;
+
+		/// <summary>
+		/// The data table to render in the view.  Setting this property automatically updates and redraws the control.
+		/// </summary>
+		public DataTable Table { get => table; set {table = value; Update(); } }
+		
+		/// <summary>
+		/// Contains options for changing how the table is rendered
+		/// </summary>
+		public TableStyle Style { get => style; set {style = value; Update(); } }
+						
+		/// <summary>
+		/// True to select the entire row at once.  False to select individual cells.  Defaults to false
+		/// </summary>
+		public bool FullRowSelect {get;set;}
+
+		/// <summary>
+		/// True to allow regions to be selected 
+		/// </summary>
+		/// <value></value>
+		public bool MultiSelect {get;set;} = true;
+
+		/// <summary>
+		/// When <see cref="MultiSelect"/> is enabled this property contain all rectangles of selected cells.  Rectangles describe column/rows selected in <see cref="Table"/> (not screen coordinates)
+		/// </summary>
+		/// <returns></returns>
+		public Stack<TableSelection> MultiSelectedRegions {get;} = new Stack<TableSelection>();
+
+		/// <summary>
+		/// Horizontal scroll offset.  The index of the first column in <see cref="Table"/> to display when when rendering the view.
+		/// </summary>
+		/// <remarks>This property allows very wide tables to be rendered with horizontal scrolling</remarks>
+		public int ColumnOffset {
+			get => columnOffset;
+
+			//try to prevent this being set to an out of bounds column
+			set => columnOffset = Table == null ? 0 :Math.Max (0,Math.Min (Table.Columns.Count - 1,  value));
+		}
+
+		/// <summary>
+		/// Vertical scroll offset.  The index of the first row in <see cref="Table"/> to display in the first non header line of the control when rendering the view.
+		/// </summary>
+		public int RowOffset {
+			get => rowOffset;
+			set => rowOffset = Table == null ? 0 : Math.Max (0,Math.Min (Table.Rows.Count - 1, value));
+		}
+
+		/// <summary>
+		/// The index of <see cref="DataTable.Columns"/> in <see cref="Table"/> that the user has currently selected
+		/// </summary>
+		public int SelectedColumn {
+			get => selectedColumn;
+
+			set {
+				var oldValue = selectedColumn;
+
+				//try to prevent this being set to an out of bounds column
+				selectedColumn = Table == null ? 0 :  Math.Min (Table.Columns.Count - 1, Math.Max (0, value));
+
+				if(oldValue != selectedColumn)
+					OnSelectedCellChanged(new SelectedCellChangedEventArgs(Table,oldValue,SelectedColumn,SelectedRow,SelectedRow));
+			} 
+		}
+
+		/// <summary>
+		/// The index of <see cref="DataTable.Rows"/> in <see cref="Table"/> that the user has currently selected
+		/// </summary>
+		public int SelectedRow {
+			get => selectedRow;
+			set {
+
+				var oldValue = selectedRow;
+
+				selectedRow =  Table == null ? 0 : Math.Min (Table.Rows.Count - 1, Math.Max (0, value));
+
+				if(oldValue != selectedRow)
+					OnSelectedCellChanged(new SelectedCellChangedEventArgs(Table,SelectedColumn,SelectedColumn,oldValue,selectedRow));
+			}
+		}
+
+		/// <summary>
+		/// The maximum number of characters to render in any given column.  This prevents one long column from pushing out all the others
+		/// </summary>
+		public int MaxCellWidth { get; set; } = DefaultMaxCellWidth;
+
+		/// <summary>
+		/// The text representation that should be rendered for cells with the value <see cref="DBNull.Value"/>
+		/// </summary>
+		public string NullSymbol { get; set; } = "-";
+
+		/// <summary>
+		/// The symbol to add after each cell value and header value to visually seperate values (if not using vertical gridlines)
+		/// </summary>
+		public char SeparatorSymbol { get; set; } = ' ';
+
+		/// <summary>
+		/// This event is raised when the selected cell in the table changes.
+		/// </summary>
+		public event Action<SelectedCellChangedEventArgs> SelectedCellChanged;
+
+		/// <summary>
+		/// This event is raised when a cell is activated e.g. by double clicking or pressing <see cref="CellActivationKey"/>
+		/// </summary>
+		public event Action<CellActivatedEventArgs> CellActivated;
+
+		/// <summary>
+		/// The key which when pressed should trigger <see cref="CellActivated"/> event.  Defaults to Enter.
+		/// </summary>
+		public Key CellActivationKey {get;set;} = Key.Enter;
+
+		/// <summary>
+		/// Initialzies a <see cref="TableView"/> class using <see cref="LayoutStyle.Computed"/> layout. 
+		/// </summary>
+		/// <param name="table">The table to display in the control</param>
+		public TableView (DataTable table) : this ()
+		{
+			this.Table = table;
+		}
+
+		/// <summary>
+		/// Initialzies a <see cref="TableView"/> class using <see cref="LayoutStyle.Computed"/> layout. Set the <see cref="Table"/> property to begin editing
+		/// </summary>
+		public TableView () : base ()
+		{
+			CanFocus = true;
+		}
+
+		///<inheritdoc/>
+		public override void Redraw (Rect bounds)
+		{
+			Move (0, 0);
+			var frame = Frame;
+
+			// What columns to render at what X offset in viewport
+			var columnsToRender = CalculateViewport(bounds).ToArray();
+
+			Driver.SetAttribute (ColorScheme.Normal);
+			
+			//invalidate current row (prevents scrolling around leaving old characters in the frame
+			Driver.AddStr (new string (' ', bounds.Width));
+
+			int line = 0;
+
+			if(ShouldRenderHeaders()){
+				// Render something like:
+				/*
+					┌────────────────────┬──────────┬───────────┬──────────────┬─────────┐
+					│ArithmeticComparator│chi       │Healthboard│Interpretation│Labnumber│
+					└────────────────────┴──────────┴───────────┴──────────────┴─────────┘
+				*/
+				if(Style.ShowHorizontalHeaderOverline){
+					RenderHeaderOverline(line,bounds.Width,columnsToRender);
+					line++;
+				}
+
+				RenderHeaderMidline(line,columnsToRender);
+				line++;
+
+				if(Style.ShowHorizontalHeaderUnderline){
+					RenderHeaderUnderline(line,bounds.Width,columnsToRender);
+					line++;
+				}
+			}
+					
+			int headerLinesConsumed = line;
+
+			//render the cells
+			for (; line < frame.Height; line++) {
+
+				ClearLine(line,bounds.Width);
+
+				//work out what Row to render
+				var rowToRender = RowOffset + (line - headerLinesConsumed);
+
+				//if we have run off the end of the table
+				if ( Table == null || rowToRender >= Table.Rows.Count || rowToRender < 0)
+					continue;
+
+				RenderRow(line,rowToRender,columnsToRender);
+			}
+		}
+
+		/// <summary>
+		/// Clears a line of the console by filling it with spaces
+		/// </summary>
+		/// <param name="row"></param>
+		/// <param name="width"></param>
+		private void ClearLine(int row, int width)
+		{            
+			Move (0, row);
+			Driver.SetAttribute (ColorScheme.Normal);
+			Driver.AddStr (new string (' ', width));
+		}
+
+		/// <summary>
+		/// Returns the amount of vertical space currently occupied by the header or 0 if it is not visible.
+		/// </summary>
+		/// <returns></returns>
+		private int GetHeaderHeightIfAny()
+		{
+			return ShouldRenderHeaders()? GetHeaderHeight():0;
+		}
+
+		/// <summary>
+		/// Returns the amount of vertical space required to display the header
+		/// </summary>
+		/// <returns></returns>
+		private int GetHeaderHeight()
+		{
+			int heightRequired = 1;
+			
+			if(Style.ShowHorizontalHeaderOverline)
+				heightRequired++;
+
+			if(Style.ShowHorizontalHeaderUnderline)
+				heightRequired++;
+			
+			return heightRequired;
+		}
+
+		private void RenderHeaderOverline(int row,int availableWidth, ColumnToRender[] columnsToRender)
+		{
+			// Renders a line above table headers (when visible) like:
+			// ┌────────────────────┬──────────┬───────────┬──────────────┬─────────┐
+
+			for(int c = 0;c< availableWidth;c++) {
+
+				var rune = Driver.HLine;
+
+				if (Style.ShowVerticalHeaderLines){
+							
+					if(c == 0){
+						rune = Driver.ULCorner;
+					}	
+					// if the next column is the start of a header
+					else if(columnsToRender.Any(r=>r.X == c+1)){
+						rune = Driver.TopTee;
+					}
+					else if(c == availableWidth -1){
+						rune = Driver.URCorner;
+					}
+				}
+
+				AddRuneAt(Driver,c,row,rune);
+			}
+		}
+
+		private void RenderHeaderMidline(int row, ColumnToRender[] columnsToRender)
+		{
+			// Renders something like:
+			// │ArithmeticComparator│chi       │Healthboard│Interpretation│Labnumber│
+						
+			ClearLine(row,Bounds.Width);
+
+			//render start of line
+			if(style.ShowVerticalHeaderLines)
+				AddRune(0,row,Driver.VLine);
+
+			for(int i =0 ; i<columnsToRender.Length;i++) {
+				
+				var current =  columnsToRender[i];
+				var availableWidthForCell = GetCellWidth(columnsToRender,i);
+
+				var colStyle = Style.GetColumnStyleIfAny(current.Column);
+				var colName = current.Column.ColumnName;
+
+				RenderSeparator(current.X-1,row,true);
+									
+				Move (current.X, row);
+				
+				Driver.AddStr(TruncateOrPad(colName,colName,availableWidthForCell ,colStyle));
+
+			}
+
+			//render end of line
+			if(style.ShowVerticalHeaderLines)
+				AddRune(Bounds.Width-1,row,Driver.VLine);
+		}
+
+		/// <summary>
+		/// Calculates how much space is available to render index <paramref name="i"/> of the <paramref name="columnsToRender"/> given the remaining horizontal space
+		/// </summary>
+		/// <param name="columnsToRender"></param>
+		/// <param name="i"></param>
+		private int GetCellWidth (ColumnToRender [] columnsToRender, int i)
+		{
+			var current =  columnsToRender[i];
+			var next = i+1 < columnsToRender.Length ? columnsToRender[i+1] : null;
+
+			if(next == null) {
+				// cell can fill to end of the line
+				return Bounds.Width - current.X;
+			}
+			else {
+				// cell can fill up to next cell start				
+				return next.X - current.X;
+			}
+
+		}
+
+		private void RenderHeaderUnderline(int row,int availableWidth, ColumnToRender[] columnsToRender)
+		{
+			// Renders a line below the table headers (when visible) like:
+			// ├──────────┼───────────┼───────────────────┼──────────┼────────┼─────────────┤
+								
+			for(int c = 0;c< availableWidth;c++) {
+
+				var rune = Driver.HLine;
+
+				if (Style.ShowVerticalHeaderLines){
+					if(c == 0){
+						rune = Style.ShowVerticalCellLines ? Driver.LeftTee : Driver.LLCorner;
+					}	
+					// if the next column is the start of a header
+					else if(columnsToRender.Any(r=>r.X == c+1)){
+					
+						/*TODO: is ┼ symbol in Driver?*/ 
+						rune = Style.ShowVerticalCellLines ? '┼' :Driver.BottomTee;
+					}
+					else if(c == availableWidth -1){
+						rune = Style.ShowVerticalCellLines ? Driver.RightTee : Driver.LRCorner;
+					}
+				}
+
+				AddRuneAt(Driver,c,row,rune);
+			}
+			
+		}
+		private void RenderRow(int row, int rowToRender, ColumnToRender[] columnsToRender)
+		{
+			//render start of line
+			if(style.ShowVerticalCellLines)
+				AddRune(0,row,Driver.VLine);
+
+			// Render cells for each visible header for the current row
+			for(int i=0;i< columnsToRender.Length ;i++) {
+
+				var current = columnsToRender[i];
+				var availableWidthForCell = GetCellWidth(columnsToRender,i);
+
+				var colStyle = Style.GetColumnStyleIfAny(current.Column);
+
+				// move to start of cell (in line with header positions)
+				Move (current.X, row);
+
+				// Set color scheme based on whether the current cell is the selected one
+				bool isSelectedCell = IsSelected(current.Column.Ordinal,rowToRender);
+
+				Driver.SetAttribute (isSelectedCell ? ColorScheme.HotFocus : ColorScheme.Normal);
+
+				var val = Table.Rows [rowToRender][current.Column];
+
+				// Render the (possibly truncated) cell value
+				var representation = GetRepresentation(val,colStyle);
+				
+				Driver.AddStr (TruncateOrPad(val,representation,availableWidthForCell,colStyle));
+				
+				// If not in full row select mode always, reset color scheme to normal and render the vertical line (or space) at the end of the cell
+				if(!FullRowSelect)
+					Driver.SetAttribute (ColorScheme.Normal);
+
+				RenderSeparator(current.X-1,row,false);
+			}
+
+			//render end of line
+			if(style.ShowVerticalCellLines)
+				AddRune(Bounds.Width-1,row,Driver.VLine);
+		}
+		
+		private void RenderSeparator(int col, int row,bool isHeader)
+		{
+			if(col<0)
+				return;
+				
+			var renderLines = isHeader ? style.ShowVerticalHeaderLines : style.ShowVerticalCellLines;
+
+			Rune symbol =  renderLines ? Driver.VLine : SeparatorSymbol;
+			AddRune(col,row,symbol);
+		}
+
+		void AddRuneAt (ConsoleDriver d,int col, int row, Rune ch)
+		{
+			Move (col, row);
+			d.AddRune (ch);
+		}
+
+		/// <summary>
+		/// Truncates or pads <paramref name="representation"/> so that it occupies a exactly <paramref name="availableHorizontalSpace"/> using the alignment specified in <paramref name="colStyle"/> (or left if no style is defined)
+		/// </summary>
+		/// <param name="originalCellValue">The object in this cell of the <see cref="Table"/></param>
+		/// <param name="representation">The string representation of <paramref name="originalCellValue"/></param>
+		/// <param name="availableHorizontalSpace"></param>
+		/// <param name="colStyle">Optional style indicating custom alignment for the cell</param>
+		/// <returns></returns>
+		private string TruncateOrPad (object originalCellValue,string representation, int availableHorizontalSpace, ColumnStyle colStyle)
+		{
+			if (string.IsNullOrEmpty (representation))
+				return representation;
+
+			// if value is not wide enough
+			if(representation.Sum(c=>Rune.ColumnWidth(c)) < availableHorizontalSpace) {
+				
+				// pad it out with spaces to the given alignment
+				int toPad = availableHorizontalSpace - (representation.Sum(c=>Rune.ColumnWidth(c)) +1 /*leave 1 space for cell boundary*/);
+
+				switch(colStyle?.GetAlignment(originalCellValue) ?? TextAlignment.Left) {
+
+					case TextAlignment.Left : 
+						return representation + new string(' ',toPad);
+					case TextAlignment.Right : 
+						return new string(' ',toPad) + representation;
+					
+					// TODO: With single line cells, centered and justified are the same right?
+					case TextAlignment.Centered : 
+					case TextAlignment.Justified : 
+						return 
+							new string(' ',(int)Math.Floor(toPad/2.0)) + // round down
+							representation +
+							 new string(' ',(int)Math.Ceiling(toPad/2.0)) ; // round up
+				}
+			}
+
+			// value is too wide
+			return new string(representation.TakeWhile(c=>(availableHorizontalSpace-= Rune.ColumnWidth(c))>0).ToArray());
+		}
+
+		/// <inheritdoc/>
+		public override bool ProcessKey (KeyEvent keyEvent)
+		{
+			if(Table == null){
+				PositionCursor ();
+				return false;
+			}
+
+			if(keyEvent.Key == CellActivationKey && Table != null) {
+				OnCellActivated(new CellActivatedEventArgs(Table,SelectedColumn,SelectedRow));
+				return true;
+			}
+
+			switch (keyEvent.Key) {
+			case Key.CursorLeft:
+			case Key.CursorLeft | Key.ShiftMask:
+				ChangeSelectionByOffset(-1,0,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.CursorRight:
+			case Key.CursorRight | Key.ShiftMask:
+				ChangeSelectionByOffset(1,0,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.CursorDown:
+			case Key.CursorDown | Key.ShiftMask:
+				ChangeSelectionByOffset(0,1,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.CursorUp:
+			case Key.CursorUp | Key.ShiftMask:
+				ChangeSelectionByOffset(0,-1,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.PageUp:
+			case Key.PageUp | Key.ShiftMask:
+				ChangeSelectionByOffset(0,-(Bounds.Height - GetHeaderHeightIfAny()),keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.PageDown:
+			case Key.PageDown | Key.ShiftMask:
+				ChangeSelectionByOffset(0,Bounds.Height - GetHeaderHeightIfAny(),keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.Home | Key.CtrlMask:
+			case Key.Home | Key.CtrlMask | Key.ShiftMask:
+				// jump to table origin
+				SetSelection(0,0,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.Home:
+			case Key.Home | Key.ShiftMask:
+				// jump to start of line
+				SetSelection(0,SelectedRow,keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.End | Key.CtrlMask:
+			case Key.End | Key.CtrlMask | Key.ShiftMask:
+				// jump to end of table
+				SetSelection(Table.Columns.Count - 1, Table.Rows.Count - 1, keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			case Key.A | Key.CtrlMask:
+				SelectAll();
+				Update ();
+				break;
+			case Key.End:
+			case Key.End | Key.ShiftMask:
+				//jump to end of row
+				SetSelection(Table.Columns.Count - 1,SelectedRow, keyEvent.Key.HasFlag(Key.ShiftMask));
+				Update ();
+				break;
+			default:
+				// Not a keystroke we care about
+				return false;
+			}
+			PositionCursor ();
+			return true;
+		}
+
+		/// <summary>
+		/// Moves the <see cref="SelectedRow"/> and <see cref="SelectedColumn"/> to the given col/row in <see cref="Table"/>. Optionally starting a box selection (see <see cref="MultiSelect"/>)
+		/// </summary>
+		/// <param name="col"></param>
+		/// <param name="row"></param>
+		/// <param name="extendExistingSelection">True to create a multi cell selection or adjust an existing one</param>
+		public void SetSelection (int col, int row, bool extendExistingSelection)
+		{
+			if(!MultiSelect || !extendExistingSelection)
+				MultiSelectedRegions.Clear();
+
+			if(extendExistingSelection)
+			{
+				// If we are extending current selection but there isn't one
+				if(MultiSelectedRegions.Count == 0)
+				{
+					// Create a new region between the old active cell and the new cell
+					var rect = CreateTableSelection(SelectedColumn,SelectedRow,col,row);
+					MultiSelectedRegions.Push(rect);
+				}
+				else
+				{
+					// Extend the current head selection to include the new cell
+					var head = MultiSelectedRegions.Pop();
+					var newRect = CreateTableSelection(head.Origin.X,head.Origin.Y,col,row);
+					MultiSelectedRegions.Push(newRect);
+				}
+			}
+
+			SelectedColumn = col;
+			SelectedRow = row;
+		}
+
+		/// <summary>
+		/// Moves the <see cref="SelectedRow"/> and <see cref="SelectedColumn"/> by the provided offsets. Optionally starting a box selection (see <see cref="MultiSelect"/>)
+		/// </summary>
+		/// <param name="offsetX">Offset in number of columns</param>
+		/// <param name="offsetY">Offset in number of rows</param>
+		/// <param name="extendExistingSelection">True to create a multi cell selection or adjust an existing one</param>
+		public void ChangeSelectionByOffset (int offsetX, int offsetY, bool extendExistingSelection)
+		{
+			SetSelection(SelectedColumn + offsetX, SelectedRow + offsetY,extendExistingSelection);
+		}
+
+		/// <summary>
+		/// When <see cref="MultiSelect"/> is on, creates selection over all cells in the table (replacing any old selection regions)
+		/// </summary>
+		public void SelectAll()
+		{
+			if(Table == null || !MultiSelect || Table.Rows.Count == 0)
+				return;
+
+			MultiSelectedRegions.Clear();
+
+			// Create a single region over entire table, set the origin of the selection to the active cell so that a followup spread selection e.g. shift-right behaves properly
+			MultiSelectedRegions.Push(new TableSelection(new Point(SelectedColumn,SelectedRow), new Rect(0,0,Table.Columns.Count,table.Rows.Count)));
+			Update();
+		}
+
+		/// <summary>
+		/// Returns all cells in any <see cref="MultiSelectedRegions"/> (if <see cref="MultiSelect"/> is enabled) and the selected cell
+		/// </summary>
+		/// <returns></returns>
+		public IEnumerable<Point> GetAllSelectedCells()
+		{
+			if(Table == null || Table.Rows.Count == 0)
+				yield break;
+
+			EnsureValidSelection();
+
+			// If there are one or more rectangular selections
+			if(MultiSelect && MultiSelectedRegions.Any()){
+				
+				// Quiz any cells for whether they are selected.  For performance we only need to check those between the top left and lower right vertex of selection regions
+				var yMin = MultiSelectedRegions.Min(r=>r.Rect.Top);
+				var yMax = MultiSelectedRegions.Max(r=>r.Rect.Bottom);
+
+				var xMin = FullRowSelect ? 0 : MultiSelectedRegions.Min(r=>r.Rect.Left);
+				var xMax = FullRowSelect ? Table.Columns.Count : MultiSelectedRegions.Max(r=>r.Rect.Right);
+
+				for(int y = yMin ; y < yMax ; y++)
+				{
+					for(int x = xMin ; x < xMax ; x++)
+					{
+						if(IsSelected(x,y)){
+							yield return new Point(x,y);
+						}
+					}
+				}
+			}
+			else{
+
+				// if there are no region selections then it is just the active cell
+
+				// if we are selecting the full row
+				if(FullRowSelect)
+				{
+					// all cells in active row are selected
+					for(int x =0;x<Table.Columns.Count;x++){
+						yield return new Point(x,SelectedRow);
+					}
+				}
+				else
+					{
+						// Not full row select and no multi selections
+						yield return new Point(SelectedColumn,SelectedRow);
+					}
+			}
+		}
+
+		/// <summary>
+		/// Returns a new rectangle between the two points with positive width/height regardless of relative positioning of the points.  pt1 is always considered the <see cref="TableSelection.Origin"/> point
+		/// </summary>
+		/// <param name="pt1X">Origin point for the selection in X</param>
+		/// <param name="pt1Y">Origin point for the selection in Y</param>
+		/// <param name="pt2X">End point for the selection in X</param>
+		/// <param name="pt2Y">End point for the selection in Y</param>
+		/// <returns></returns>
+		private TableSelection CreateTableSelection (int pt1X, int pt1Y, int pt2X, int pt2Y)
+		{
+			var top = Math.Min(pt1Y,pt2Y);
+			var bot = Math.Max(pt1Y,pt2Y);
+
+			var left = Math.Min(pt1X,pt2X);
+			var right = Math.Max(pt1X,pt2X);
+
+			// Rect class is inclusive of Top Left but exclusive of Bottom Right so extend by 1
+			return new TableSelection(new Point(pt1X,pt1Y),new Rect(left,top,right-left + 1,bot-top + 1));
+		}
+
+		/// <summary>
+		/// Returns true if the given cell is selected either because it is the active cell or part of a multi cell selection (e.g. <see cref="FullRowSelect"/>)
+		/// </summary>
+		/// <param name="col"></param>
+		/// <param name="row"></param>
+		/// <returns></returns>
+		public bool IsSelected(int col, int row)
+		{
+			// Cell is also selected if in any multi selection region
+			if(MultiSelect && MultiSelectedRegions.Any(r=>r.Rect.Contains(col,row)))
+				return true;
+
+			// Cell is also selected if Y axis appears in any region (when FullRowSelect is enabled)
+			if(FullRowSelect && MultiSelect && MultiSelectedRegions.Any(r=>r.Rect.Bottom> row  && r.Rect.Top <= row))
+				return true;
+
+			return row == SelectedRow && 
+					(col == SelectedColumn || FullRowSelect);
+		}
+
+		/// <summary>
+		/// Positions the cursor in the area of the screen in which the start of the active cell is rendered.  Calls base implementation if active cell is not visible due to scrolling or table is loaded etc
+		/// </summary>
+		public override void PositionCursor()
+		{
+			if(Table == null) {
+				base.PositionCursor();
+				return;
+			}
+				
+			var screenPoint = CellToScreen(SelectedColumn,SelectedRow);
+			
+			if(screenPoint  != null)
+				Move(screenPoint.Value.X,screenPoint.Value.Y);
+		}
+
+		///<inheritdoc/>
+		public override bool MouseEvent (MouseEvent me)
+		{
+			if (!me.Flags.HasFlag (MouseFlags.Button1Clicked) && !me.Flags.HasFlag (MouseFlags.Button1DoubleClicked) &&
+				me.Flags != MouseFlags.WheeledDown && me.Flags != MouseFlags.WheeledUp &&
+				me.Flags != MouseFlags.WheeledLeft && me.Flags != MouseFlags.WheeledRight)
+				return false;
+
+			if (!HasFocus && CanFocus) {
+				SetFocus ();
+			}
+
+			if (Table == null) {
+				return false;
+			}
+
+			// Scroll wheel flags
+			switch(me.Flags)
+			{
+				case MouseFlags.WheeledDown: 
+					RowOffset++;
+					EnsureValidScrollOffsets();
+					SetNeedsDisplay();
+					return true;
+
+				case MouseFlags.WheeledUp:
+					RowOffset--;
+					EnsureValidScrollOffsets();
+					SetNeedsDisplay();
+					return true;
+
+				case MouseFlags.WheeledRight:
+					ColumnOffset++;
+					EnsureValidScrollOffsets();
+					SetNeedsDisplay();
+					return true;
+
+				case  MouseFlags.WheeledLeft:
+					ColumnOffset--;
+					EnsureValidScrollOffsets();
+					SetNeedsDisplay();
+					return true;
+			}
+
+			if(me.Flags.HasFlag(MouseFlags.Button1Clicked)) {
+				
+				var hit = ScreenToCell(me.X,me.Y);
+				if(hit != null) {
+					
+					SetSelection(hit.Value.X,hit.Value.Y,me.Flags.HasFlag(MouseFlags.ButtonShift));
+					Update();
+				}
+			}
+
+			// Double clicking a cell activates
+			if(me.Flags == MouseFlags.Button1DoubleClicked) {
+				var hit = ScreenToCell(me.X,me.Y);
+				if(hit!= null) {
+					OnCellActivated(new CellActivatedEventArgs(Table,hit.Value.X,hit.Value.Y));
+				}
+			}
+
+			return false;
+		}
+
+		/// <summary>
+		/// Returns the column and row of <see cref="Table"/> that corresponds to a given point on the screen (relative to the control client area).  Returns null if the point is in the header, no table is loaded or outside the control bounds
+		/// </summary>
+		/// <param name="clientX">X offset from the top left of the control</param>
+		/// <param name="clientY">Y offset from the top left of the control</param>
+		/// <returns></returns>
+		public Point? ScreenToCell (int clientX, int clientY)
+		{
+			if(Table == null)
+				return null;
+
+			var viewPort = CalculateViewport(Bounds);
+				
+			var headerHeight = GetHeaderHeightIfAny();
+
+			var col = viewPort.LastOrDefault(c=>c.X <= clientX);
+				
+			// Click is on the header section of rendered UI
+			if(clientY < headerHeight)
+				return null;
+
+			var rowIdx = RowOffset - headerHeight + clientY;
+
+			if(col != null && rowIdx >= 0) {
+				
+				return new Point(col.Column.Ordinal,rowIdx);
+			}
+
+			return null;
+		}
+		
+		/// <summary>
+		/// Returns the screen position (relative to the control client area) that the given cell is rendered or null if it is outside the current scroll area or no table is loaded
+		/// </summary>
+		/// <param name="tableColumn">The index of the <see cref="Table"/> column you are looking for, use <see cref="DataColumn.Ordinal"/></param>
+		/// <param name="tableRow">The index of the row in <see cref="Table"/> that you are looking for</param>
+		/// <returns></returns>
+		public Point? CellToScreen (int tableColumn, int tableRow)
+		{
+			if(Table == null)
+				return null;
+
+			var viewPort = CalculateViewport(Bounds);
+				
+			var headerHeight = GetHeaderHeightIfAny();
+
+			var colHit = viewPort.FirstOrDefault(c=>c.Column.Ordinal == tableColumn);
+
+			// current column is outside the scroll area
+			if(colHit == null)
+				return null;
+				
+			// the cell is too far up above the current scroll area
+			if(RowOffset > tableRow)
+				return null;
+
+			// the cell is way down below the scroll area and off the screen
+			if(tableRow > RowOffset + (Bounds.Height - headerHeight))
+				return null;
+ 
+			return new Point(colHit.X,tableRow + headerHeight - RowOffset);
+		}
+		/// <summary>
+		/// Updates the view to reflect changes to <see cref="Table"/> and to (<see cref="ColumnOffset"/> / <see cref="RowOffset"/>) etc
+		/// </summary>
+		/// <remarks>This always calls <see cref="View.SetNeedsDisplay()"/></remarks>
+		public void Update()
+		{
+			if(Table == null) {
+				SetNeedsDisplay ();
+				return;
+			}
+
+			EnsureValidScrollOffsets();
+			EnsureValidSelection();
+
+			EnsureSelectedCellIsVisible();
+
+			SetNeedsDisplay ();
+		}
+
+		/// <summary>
+		/// Updates <see cref="ColumnOffset"/> and <see cref="RowOffset"/> where they are outside the bounds of the table (by adjusting them to the nearest existing cell).  Has no effect if <see cref="Table"/> has not been set.
+		/// </summary>
+		/// <remarks>Changes will not be immediately visible in the display until you call <see cref="View.SetNeedsDisplay()"/></remarks>
+		public void EnsureValidScrollOffsets ()
+		{
+			if(Table == null){
+				return;
+			}
+
+			ColumnOffset = Math.Max(Math.Min(ColumnOffset,Table.Columns.Count -1),0);
+			RowOffset = Math.Max(Math.Min(RowOffset,Table.Rows.Count -1),0);
+		}
+
+
+		/// <summary>
+		/// Updates <see cref="SelectedColumn"/>, <see cref="SelectedRow"/> and <see cref="MultiSelectedRegions"/> where they are outside the bounds of the table (by adjusting them to the nearest existing cell).  Has no effect if <see cref="Table"/> has not been set.
+		/// </summary>
+		/// <remarks>Changes will not be immediately visible in the display until you call <see cref="View.SetNeedsDisplay()"/></remarks>
+		public void EnsureValidSelection()
+		{
+			if(Table == null){
+
+				// Table doesn't exist, we should probably clear those selections
+				MultiSelectedRegions.Clear();
+				return;
+			}
+
+			SelectedColumn = Math.Max(Math.Min(SelectedColumn,Table.Columns.Count -1),0);
+			SelectedRow = Math.Max(Math.Min(SelectedRow,Table.Rows.Count -1),0);
+
+			var oldRegions = MultiSelectedRegions.ToArray().Reverse();
+
+			MultiSelectedRegions.Clear();
+
+			// evaluate 
+			foreach(var region in oldRegions)
+			{
+				// ignore regions entirely below current table state
+				if(region.Rect.Top >= Table.Rows.Count)
+					continue;
+
+				// ignore regions entirely too far right of table columns
+				if(region.Rect.Left >= Table.Columns.Count)
+					continue;
+
+				// ensure region's origin exists
+				region.Origin = new Point(
+					Math.Max(Math.Min(region.Origin.X,Table.Columns.Count -1),0),
+					Math.Max(Math.Min(region.Origin.Y,Table.Rows.Count -1),0));
+
+				// ensure regions do not go over edge of table bounds
+				region.Rect = Rect.FromLTRB(region.Rect.Left,
+					region.Rect.Top,
+					Math.Max(Math.Min(region.Rect.Right, Table.Columns.Count ),0),
+					Math.Max(Math.Min(region.Rect.Bottom,Table.Rows.Count),0)
+					);
+
+				MultiSelectedRegions.Push(region);
+			}
+
+		}
+
+		/// <summary>
+		/// Updates scroll offsets to ensure that the selected cell is visible.  Has no effect if <see cref="Table"/> has not been set.
+		/// </summary>
+		/// <remarks>Changes will not be immediately visible in the display until you call <see cref="View.SetNeedsDisplay()"/></remarks>
+		public void EnsureSelectedCellIsVisible ()
+		{
+			if(Table == null || Table.Columns.Count <= 0){
+				return;
+			}
+
+			var columnsToRender = CalculateViewport (Bounds).ToArray();
+			var headerHeight = GetHeaderHeightIfAny();
+
+			//if we have scrolled too far to the left 
+			if (SelectedColumn < columnsToRender.Min (r => r.Column.Ordinal)) {
+				ColumnOffset = SelectedColumn;
+			}
+
+			//if we have scrolled too far to the right
+			if (SelectedColumn > columnsToRender.Max (r=> r.Column.Ordinal)) {
+				ColumnOffset = SelectedColumn;
+			}
+
+			//if we have scrolled too far down
+			if (SelectedRow >= RowOffset + (Bounds.Height - headerHeight)) {
+				RowOffset = SelectedRow;
+			}
+			//if we have scrolled too far up
+			if (SelectedRow < RowOffset) {
+				RowOffset = SelectedRow;
+			}
+		}
+
+		/// <summary>
+		/// Invokes the <see cref="SelectedCellChanged"/> event
+		/// </summary>
+		protected virtual void OnSelectedCellChanged(SelectedCellChangedEventArgs args)
+		{
+			SelectedCellChanged?.Invoke(args);
+		}
+		
+		/// <summary>
+		/// Invokes the <see cref="CellActivated"/> event
+		/// </summary>
+		/// <param name="args"></param>
+		protected virtual void OnCellActivated (CellActivatedEventArgs args)
+		{
+			CellActivated?.Invoke(args);
+		}
+
+		/// <summary>
+		/// Calculates which columns should be rendered given the <paramref name="bounds"/> in which to display and the <see cref="ColumnOffset"/>
+		/// </summary>
+		/// <param name="bounds"></param>
+		/// <param name="padding"></param>
+		/// <returns></returns>
+		private IEnumerable<ColumnToRender> CalculateViewport (Rect bounds, int padding = 1)
+		{
+			if(Table == null)
+				yield break;
+			
+			int usedSpace = 0;
+
+			//if horizontal space is required at the start of the line (before the first header)
+			if(Style.ShowVerticalHeaderLines || Style.ShowVerticalCellLines)
+				usedSpace+=1;
+			
+			int availableHorizontalSpace = bounds.Width;
+			int rowsToRender = bounds.Height;
+
+			// reserved for the headers row
+			if(ShouldRenderHeaders())
+				rowsToRender -= GetHeaderHeight(); 
+
+			bool first = true;
+
+			foreach (var col in Table.Columns.Cast<DataColumn>().Skip (ColumnOffset)) {
+
+				int startingIdxForCurrentHeader = usedSpace;
+				var colStyle = Style.GetColumnStyleIfAny(col);
+
+				// is there enough space for this column (and it's data)?
+				usedSpace += CalculateMaxCellWidth (col, rowsToRender,colStyle) + padding;
+
+				// no (don't render it) unless its the only column we are render (that must be one massively wide column!)
+				if (!first && usedSpace > availableHorizontalSpace)
+					yield break;
+
+				// there is space
+				yield return new ColumnToRender(col, startingIdxForCurrentHeader);
+				first=false;
+			}
+		}
+
+		private bool ShouldRenderHeaders()
+		{
+			if(Table == null || Table.Columns.Count == 0)
+				return false;
+
+		    return Style.AlwaysShowHeaders || rowOffset == 0;
+		}
+
+		/// <summary>
+		/// Returns the maximum of the <paramref name="col"/> name and the maximum length of data that will be rendered starting at <see cref="RowOffset"/> and rendering <paramref name="rowsToRender"/>
+		/// </summary>
+		/// <param name="col"></param>
+		/// <param name="rowsToRender"></param>
+		/// <param name="colStyle"></param>
+		/// <returns></returns>
+		private int CalculateMaxCellWidth(DataColumn col, int rowsToRender,ColumnStyle colStyle)
+		{
+			int spaceRequired = col.ColumnName.Sum(c=>Rune.ColumnWidth(c));
+
+			// if table has no rows
+			if(RowOffset < 0)
+				return spaceRequired;
+
+
+			for (int i = RowOffset; i < RowOffset + rowsToRender && i < Table.Rows.Count; i++) {
+
+				//expand required space if cell is bigger than the last biggest cell or header
+				spaceRequired = Math.Max (spaceRequired, GetRepresentation(Table.Rows [i][col],colStyle).Sum(c=>Rune.ColumnWidth(c)));
+			}
+
+			// Don't require more space than the style allows
+			if(colStyle != null){
+
+				// enforce maximum cell width based on style
+				if(spaceRequired > colStyle.MaxWidth) {
+					spaceRequired = colStyle.MaxWidth;
+				}
+
+				// enforce minimum cell width based on style
+				if(spaceRequired < colStyle.MinWidth) {
+					spaceRequired = colStyle.MinWidth;
+				}
+			}
+			
+			// enforce maximum cell width based on global table style
+			if(spaceRequired > MaxCellWidth)
+				spaceRequired = MaxCellWidth;
+
+
+			return spaceRequired;
+		}
+
+		/// <summary>
+		/// Returns the value that should be rendered to best represent a strongly typed <paramref name="value"/> read from <see cref="Table"/>
+		/// </summary>
+		/// <param name="value"></param>
+		/// <param name="colStyle">Optional style defining how to represent cell values</param>
+		/// <returns></returns>
+		private string GetRepresentation(object value,ColumnStyle colStyle)
+		{
+			if (value == null || value == DBNull.Value) {
+				return NullSymbol;
+			}
+
+			return colStyle != null ? colStyle.GetRepresentation(value): value.ToString();
+		}
+	}
+
+	/// <summary>
+	/// Describes a desire to render a column at a given horizontal position in the UI
+	/// </summary>
+	internal class ColumnToRender {
+
+		/// <summary>
+		/// The column to render
+		/// </summary>
+		public DataColumn Column {get;set;}
+
+		/// <summary>
+		/// The horizontal position to begin rendering the column at
+		/// </summary>
+		public int X{get;set;}
+
+		public ColumnToRender (DataColumn col, int x)
+		{
+			Column = col;
+			X = x;
+		}
+	}
+
+	/// <summary>
+	/// Defines the event arguments for <see cref="TableView.SelectedCellChanged"/> 
+	/// </summary>
+	public class SelectedCellChangedEventArgs : EventArgs
+	{
+		/// <summary>
+		/// The current table to which the new indexes refer.  May be null e.g. if selection change is the result of clearing the table from the view
+		/// </summary>
+		/// <value></value>
+		public DataTable Table {get;}
+
+
+		/// <summary>
+		/// The previous selected column index.  May be invalid e.g. when the selection has been changed as a result of replacing the existing Table with a smaller one
+		/// </summary>
+		/// <value></value>
+		public int OldCol {get;}
+
+
+		/// <summary>
+		/// The newly selected column index.
+		/// </summary>
+		/// <value></value>
+		public int NewCol {get;}
+
+
+		/// <summary>
+		/// The previous selected row index.  May be invalid e.g. when the selection has been changed as a result of deleting rows from the table
+		/// </summary>
+		/// <value></value>
+		public int OldRow {get;}
+
+
+		/// <summary>
+		/// The newly selected row index.
+		/// </summary>
+		/// <value></value>
+		public int NewRow {get;}
+
+		/// <summary>
+		/// Creates a new instance of arguments describing a change in selected cell in a <see cref="TableView"/>
+		/// </summary>
+		/// <param name="t"></param>
+		/// <param name="oldCol"></param>
+		/// <param name="newCol"></param>
+		/// <param name="oldRow"></param>
+		/// <param name="newRow"></param>
+		public SelectedCellChangedEventArgs(DataTable t, int oldCol, int newCol, int oldRow, int newRow)
+		{
+			Table = t;
+			OldCol = oldCol;
+			NewCol = newCol;
+			OldRow = oldRow;
+			NewRow = newRow;
+		}
+	}
+
+	/// <summary>
+	/// Describes a selected region of the table
+	/// </summary>
+	public class TableSelection
+	{
+
+		/// <summary>
+		/// Corner of the <see cref="Rect"/> where selection began
+		/// </summary>
+		/// <value></value>
+		public Point Origin{get;set;}
+
+		/// <summary>
+		/// Area selected
+		/// </summary>
+		/// <value></value>
+		public Rect Rect { get; set;}
+
+		/// <summary>
+		/// Creates a new selected area starting at the origin corner and covering the provided rectangular area
+		/// </summary>
+		/// <param name="origin"></param>
+		/// <param name="rect"></param>
+		public TableSelection(Point origin, Rect rect)
+		{
+			Origin = origin;
+			Rect = rect;
+		}
+	}
+	
+	/// <summary>
+	///  Defines the event arguments for <see cref="TableView.CellActivated"/> event
+	/// </summary>
+	public class CellActivatedEventArgs : EventArgs
+	{
+		/// <summary>
+		/// The current table to which the new indexes refer.  May be null e.g. if selection change is the result of clearing the table from the view
+		/// </summary>
+		/// <value></value>
+		public DataTable Table {get;}
+
+
+		/// <summary>
+		/// The column index of the <see cref="Table"/> cell that is being activated
+		/// </summary>
+		/// <value></value>
+		public int Col {get;}
+		
+		/// <summary>
+		/// The row index of the <see cref="Table"/> cell that is being activated
+		/// </summary>
+		/// <value></value>
+		public int Row {get;}
+
+			/// <summary>
+			/// Creates a new instance of arguments describing a cell being activated in <see cref="TableView"/>
+			/// </summary>
+			/// <param name="t"></param>
+			/// <param name="col"></param>
+			/// <param name="row"></param>
+			public CellActivatedEventArgs(DataTable t, int col, int row)
+		{
+			Table = t;
+			Col = col;
+			Row = row;
+		}
+	}
+}

+ 25 - 0
Terminal.Gui/Views/TextField.cs

@@ -866,6 +866,31 @@ namespace Terminal.Gui {
 			TextChanging?.Invoke (ev);
 			return ev;
 		}
+
+		private CursorVisibility desiredCursorVisibility = CursorVisibility.Default;
+
+		/// <summary>
+		/// Get / Set the wished cursor when the field is focused
+		/// </summary>
+		public CursorVisibility DesiredCursorVisibility 
+		{ 
+			get => desiredCursorVisibility; 
+			set {
+				if (desiredCursorVisibility != value && HasFocus) {
+					Application.Driver.SetCursorVisibility (value);		
+				}
+
+				desiredCursorVisibility = value;
+			}
+		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (DesiredCursorVisibility);
+
+			return base.OnEnter (view);
+		}
 	}
 
 	/// <summary>

+ 26 - 0
Terminal.Gui/Views/TextView.cs

@@ -598,6 +598,32 @@ namespace Terminal.Gui {
 			}
 		}
 
+		private CursorVisibility desiredCursorVisibility = CursorVisibility.Default;
+
+		/// <summary>
+		/// Get / Set the wished cursor when the field is focused
+		/// </summary>
+		public CursorVisibility DesiredCursorVisibility 
+		{ 
+			get => desiredCursorVisibility; 
+			set {
+				if (desiredCursorVisibility != value && HasFocus) {
+					Application.Driver.SetCursorVisibility (value);		
+				}
+
+				desiredCursorVisibility = value;
+			}
+		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			//TODO: Improve it by handling read only mode of the text field
+			Application.Driver.SetCursorVisibility (DesiredCursorVisibility);
+
+			return base.OnEnter (view);
+		}
+
 		// Returns an encoded region start..end (top 32 bits are the row, low32 the column)
 		void GetEncodedRegionBounds (out long start, out long end)
 		{

+ 8 - 0
Terminal.Gui/Windows/FileDialog.cs

@@ -465,6 +465,14 @@ namespace Terminal.Gui {
 				}
 			}
 		}
+
+		///<inheritdoc/>
+		public override bool OnEnter (View view)
+		{
+			Application.Driver.SetCursorVisibility (CursorVisibility.Invisible);
+
+			return base.OnEnter (view);
+		}
 	}
 
 	/// <summary>

+ 526 - 0
UICatalog/Scenarios/CsvEditor.cs

@@ -0,0 +1,526 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using Terminal.Gui;
+using System.Linq;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using NStack;
+
+namespace UICatalog.Scenarios {
+
+	[ScenarioMetadata (Name: "Csv Editor", Description: "Open and edit simple CSV files")]
+	[ScenarioCategory ("Controls")]
+	[ScenarioCategory ("Dialogs")]
+	[ScenarioCategory ("Text")]
+	[ScenarioCategory ("Dialogs")]
+	[ScenarioCategory ("TopLevel")]
+	public class CsvEditor : Scenario 
+	{
+		TableView tableView;
+		private string currentFile;
+		private MenuItem miLeft;
+		private MenuItem miRight;
+		private MenuItem miCentered;
+		private Label selectedCellLabel;
+
+		public override void Setup ()
+		{
+			Win.Title = this.GetName();
+			Win.Y = 1; // menu
+			Win.Height = Dim.Fill (1); // status bar
+			Top.LayoutSubviews ();
+
+			this.tableView = new TableView () {
+				X = 0,
+				Y = 0,
+				Width = Dim.Fill (),
+				Height = Dim.Fill (1),
+			};
+
+			var menu = new MenuBar (new MenuBarItem [] {
+				new MenuBarItem ("_File", new MenuItem [] {
+					new MenuItem ("_Open CSV", "", () => Open()),
+					new MenuItem ("_Save", "", () => Save()),
+					new MenuItem ("_Quit", "", () => Quit()),
+				}),
+				new MenuBarItem ("_Edit", new MenuItem [] {
+					new MenuItem ("_New Column", "", () => AddColumn()),
+					new MenuItem ("_New Row", "", () => AddRow()),
+					new MenuItem ("_Rename Column", "", () => RenameColumn()),
+					new MenuItem ("_Delete Column", "", () => DeleteColum()),
+					new MenuItem ("_Move Column", "", () => MoveColumn()),
+					new MenuItem ("_Move Row", "", () => MoveRow()),
+					new MenuItem ("_Sort Asc", "", () => Sort(true)),
+					new MenuItem ("_Sort Desc", "", () => Sort(false)),
+				}),
+				new MenuBarItem ("_View", new MenuItem [] {
+					miLeft = new MenuItem ("_Align Left", "", () => Align(TextAlignment.Left)),
+					miRight = new MenuItem ("_Align Right", "", () => Align(TextAlignment.Right)),
+					miCentered = new MenuItem ("_Align Centered", "", () => Align(TextAlignment.Centered)),
+					
+					// Format requires hard typed data table, when we read a CSV everything is untyped (string) so this only works for new columns in this demo
+					miCentered = new MenuItem ("_Set Format Pattern", "", () => SetFormat()),
+				})
+			});
+			Top.Add (menu);
+
+			var statusBar = new StatusBar (new StatusItem [] {
+				new StatusItem(Key.CtrlMask | Key.O, "~^O~ Open", () => Open()),
+				new StatusItem(Key.CtrlMask | Key.S, "~^S~ Save", () => Save()),
+				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
+			});
+			Top.Add (statusBar);
+
+			Win.Add (tableView);
+
+			selectedCellLabel = new Label(){
+				X = 0,
+				Y = Pos.Bottom(tableView),
+				Text = "0,0",
+				Width = Dim.Fill(),
+				TextAlignment = TextAlignment.Right
+				
+			};
+
+			Win.Add(selectedCellLabel);
+
+			tableView.SelectedCellChanged += OnSelectedCellChanged;
+			tableView.CellActivated += EditCurrentCell;
+			tableView.KeyPress += TableViewKeyPress;
+
+			SetupScrollBar();
+		}
+
+
+		private void OnSelectedCellChanged (SelectedCellChangedEventArgs e)
+		{
+			selectedCellLabel.Text = $"{tableView.SelectedRow},{tableView.SelectedColumn}";
+			
+			if(tableView.Table == null || tableView.SelectedColumn == -1)
+				return;
+
+			var col = tableView.Table.Columns[tableView.SelectedColumn];
+
+			var style = tableView.Style.GetColumnStyleIfAny(col);
+			
+			miLeft.Checked = style?.Alignment == TextAlignment.Left;
+			miRight.Checked = style?.Alignment == TextAlignment.Right;
+			miCentered.Checked = style?.Alignment == TextAlignment.Centered;			
+		}
+
+		private void RenameColumn ()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			var currentCol = tableView.Table.Columns[tableView.SelectedColumn];
+
+			if(GetText("Rename Column","Name:",currentCol.ColumnName,out string newName)) {
+				currentCol.ColumnName = newName;
+				tableView.Update();
+			}
+		}
+
+		private void DeleteColum()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			if(tableView.SelectedColumn == -1) {
+				
+				MessageBox.ErrorQuery("No Column","No column selected", "Ok");
+				return;
+			}
+
+
+			try {
+				tableView.Table.Columns.RemoveAt(tableView.SelectedColumn);
+				tableView.Update();
+
+			} catch (Exception ex) {
+				MessageBox.ErrorQuery("Could not remove column",ex.Message, "Ok");
+			}
+		}
+
+		private void MoveColumn ()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			if(tableView.SelectedColumn == -1) {
+				
+				MessageBox.ErrorQuery("No Column","No column selected", "Ok");
+				return;
+			}
+			
+			try{
+
+				var currentCol = tableView.Table.Columns[tableView.SelectedColumn];
+
+				if(GetText("Move Column","New Index:",currentCol.Ordinal.ToString(),out string newOrdinal)) {
+
+					var newIdx = Math.Min(Math.Max(0,int.Parse(newOrdinal)),tableView.Table.Columns.Count-1);
+
+					currentCol.SetOrdinal(newIdx);
+
+					tableView.SetSelection(newIdx,tableView.SelectedRow,false);
+					tableView.EnsureSelectedCellIsVisible();
+					tableView.SetNeedsDisplay();
+				}
+
+			}catch(Exception ex)
+			{
+				MessageBox.ErrorQuery("Error moving column",ex.Message, "Ok");
+			}
+		}
+		private void Sort (bool asc)
+		{
+
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			if(tableView.SelectedColumn == -1) {
+				
+				MessageBox.ErrorQuery("No Column","No column selected", "Ok");
+				return;
+			}
+
+			var colName = tableView.Table.Columns[tableView.SelectedColumn].ColumnName;
+
+			tableView.Table.DefaultView.Sort = colName + (asc ? " asc" : " desc");
+			tableView.Table = tableView.Table.DefaultView.ToTable();
+		}
+
+		private void MoveRow ()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			if(tableView.SelectedRow == -1) {
+				
+				MessageBox.ErrorQuery("No Rows","No row selected", "Ok");
+				return;
+			}
+			
+			try{
+
+				int oldIdx = tableView.SelectedRow;
+
+				var currentRow = tableView.Table.Rows[oldIdx];
+
+				if(GetText("Move Row","New Row:",oldIdx.ToString(),out string newOrdinal)) {
+
+					var newIdx = Math.Min(Math.Max(0,int.Parse(newOrdinal)),tableView.Table.Rows.Count-1);
+
+
+					if(newIdx == oldIdx)
+						return;
+
+					var arrayItems = currentRow.ItemArray;
+					tableView.Table.Rows.Remove(currentRow);
+
+					// Removing and Inserting the same DataRow seems to result in it loosing its values so we have to create a new instance
+					var newRow = tableView.Table.NewRow();
+					newRow.ItemArray = arrayItems;
+					
+					tableView.Table.Rows.InsertAt(newRow,newIdx);
+					
+					tableView.SetSelection(tableView.SelectedColumn,newIdx,false);
+					tableView.EnsureSelectedCellIsVisible();
+					tableView.SetNeedsDisplay();
+				}
+
+			}catch(Exception ex)
+			{
+				MessageBox.ErrorQuery("Error moving column",ex.Message, "Ok");
+			}
+		}
+
+		private void Align (TextAlignment newAlignment)
+		{
+			if (NoTableLoaded ()) {
+				return;
+			}
+
+			var col = tableView.Table.Columns[tableView.SelectedColumn];
+
+			var style = tableView.Style.GetOrCreateColumnStyle(col);
+			style.Alignment = newAlignment;
+
+			miLeft.Checked = style.Alignment == TextAlignment.Left;
+			miRight.Checked = style.Alignment == TextAlignment.Right;
+			miCentered.Checked = style.Alignment == TextAlignment.Centered;	
+			
+			tableView.Update();
+		}
+		
+		private void SetFormat()
+		{
+			if (NoTableLoaded ()) {
+				return;
+			}
+
+			var col = tableView.Table.Columns[tableView.SelectedColumn];
+
+			if(col.DataType == typeof(string)) {
+				MessageBox.ErrorQuery("Cannot Format Column","String columns cannot be Formatted, try adding a new column to the table with a date/numerical Type","Ok");
+				return;
+			}
+
+			var style = tableView.Style.GetOrCreateColumnStyle(col);
+
+			if(GetText("Format","Pattern:",style.Format ?? "",out string newPattern)) {
+				style.Format = newPattern;
+				tableView.Update();
+			}
+		}
+
+		private bool NoTableLoaded ()
+		{
+			if(tableView.Table == null) {
+				MessageBox.ErrorQuery("No Table Loaded","No table has currently be opened","Ok");
+				return true;
+			}
+
+			return false;
+		}
+
+		private void AddRow ()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			var newRow = tableView.Table.NewRow();
+
+			var newRowIdx = Math.Min(Math.Max(0,tableView.SelectedRow+1),tableView.Table.Rows.Count);
+
+			tableView.Table.Rows.InsertAt(newRow,newRowIdx);
+			tableView.Update();
+		}
+
+		private void AddColumn ()
+		{
+			if(NoTableLoaded()) {
+				return;
+			}
+
+			if(GetText("Enter column name","Name:","",out string colName)) {
+
+				var col = new DataColumn(colName);
+
+				var newColIdx = Math.Min(Math.Max(0,tableView.SelectedColumn + 1),tableView.Table.Columns.Count);
+				
+				int result = MessageBox.Query(40,15,"Column Type","Pick a data type for the column",new ustring[]{"Date","Integer","Double","Text","Cancel"});
+
+				if(result <= -1 || result >= 4)
+					return;
+				switch(result) {
+					case 0: col.DataType = typeof(DateTime);
+						break;
+					case 1: col.DataType = typeof(int);
+						break;
+					case 2: col.DataType = typeof(double);
+						break;
+					case 3: col.DataType = typeof(string);
+						break;
+				}
+
+				tableView.Table.Columns.Add(col);
+				col.SetOrdinal(newColIdx);
+				tableView.Update();
+			}
+
+			
+				
+		}
+
+		private void Save()
+		{
+			if(tableView.Table == null || string.IsNullOrWhiteSpace(currentFile)) {
+				MessageBox.ErrorQuery("No file loaded","No file is currently loaded","Ok");
+				return;
+			}
+
+			var sb = new StringBuilder();
+
+			sb.AppendLine(string.Join(",",tableView.Table.Columns.Cast<DataColumn>().Select(c=>c.ColumnName)));
+
+			foreach(DataRow row in tableView.Table.Rows) {
+				sb.AppendLine(string.Join(",",row.ItemArray));
+			}
+			
+			File.WriteAllText(currentFile,sb.ToString());
+		}
+
+		private void Open()
+		{
+			var ofd = new FileDialog("Select File","Open","File","Select a CSV file to open (does not support newlines, escaping etc)");
+			ofd.AllowedFileTypes = new string[]{".csv" };
+
+			Application.Run(ofd);
+			
+			if(!string.IsNullOrWhiteSpace(ofd.FilePath?.ToString()))
+			{
+				Open(ofd.FilePath.ToString());
+			}
+		}
+		
+		private void Open(string filename)
+		{
+			
+			int lineNumber = 0;
+			currentFile = null;
+
+			try {
+				var dt = new DataTable();
+				var lines = File.ReadAllLines(filename);
+			
+				foreach(var h in lines[0].Split(',')){
+					dt.Columns.Add(h);
+				}
+				
+
+				foreach(var line in lines.Skip(1)) {
+					lineNumber++;
+					dt.Rows.Add(line.Split(','));
+				}
+				
+				tableView.Table = dt;
+				
+				// Only set the current filename if we succesfully loaded the entire file
+				currentFile = filename;
+			}
+			catch(Exception ex) {
+				MessageBox.ErrorQuery("Open Failed",$"Error on line {lineNumber}{Environment.NewLine}{ex.Message}","Ok");
+			}
+		}
+		private void SetupScrollBar ()
+		{
+			var _scrollBar = new ScrollBarView (tableView, true);
+
+			_scrollBar.ChangedPosition += () => {
+				tableView.RowOffset = _scrollBar.Position;
+				if (tableView.RowOffset != _scrollBar.Position) {
+					_scrollBar.Position = tableView.RowOffset;
+				}
+				tableView.SetNeedsDisplay ();
+			};
+			/*
+			_scrollBar.OtherScrollBarView.ChangedPosition += () => {
+				_listView.LeftItem = _scrollBar.OtherScrollBarView.Position;
+				if (_listView.LeftItem != _scrollBar.OtherScrollBarView.Position) {
+					_scrollBar.OtherScrollBarView.Position = _listView.LeftItem;
+				}
+				_listView.SetNeedsDisplay ();
+			};*/
+
+			tableView.DrawContent += (e) => {
+				_scrollBar.Size = tableView.Table?.Rows?.Count ??0;
+				_scrollBar.Position = tableView.RowOffset;
+			//	_scrollBar.OtherScrollBarView.Size = _listView.Maxlength - 1;
+			//	_scrollBar.OtherScrollBarView.Position = _listView.LeftItem;
+				_scrollBar.Refresh ();
+			};
+		
+		}
+
+		private void TableViewKeyPress (View.KeyEventEventArgs e)
+		{
+			if(e.KeyEvent.Key == Key.DeleteChar){
+
+				if(tableView.FullRowSelect)
+				{
+					// Delete button deletes all rows when in full row mode
+					foreach(int toRemove in tableView.GetAllSelectedCells().Select(p=>p.Y).Distinct().OrderByDescending(i=>i))
+						tableView.Table.Rows.RemoveAt(toRemove);
+				}
+				else{
+
+					// otherwise set all selected cells to null
+					foreach(var pt in tableView.GetAllSelectedCells())
+					{
+						tableView.Table.Rows[pt.Y][pt.X] = DBNull.Value;
+					}
+				}
+
+				tableView.Update();
+				e.Handled = true;
+			}
+		}
+
+		private void ClearColumnStyles ()
+		{
+			tableView.Style.ColumnStyles.Clear();
+			tableView.Update();
+		}
+			
+
+		private void CloseExample ()
+		{
+			tableView.Table = null;
+		}
+
+		private void Quit ()
+		{
+			Application.RequestStop ();
+		}
+		private bool GetText(string title, string label, string initialText, out string enteredText)
+		{
+			bool okPressed = false;
+
+			var ok = new Button ("Ok", is_default: true);
+			ok.Clicked += () => { okPressed = true; Application.RequestStop (); };
+			var cancel = new Button ("Cancel");
+			cancel.Clicked += () => { Application.RequestStop (); };
+			var d = new Dialog (title, 60, 20, ok, cancel);
+
+			var lbl = new Label() {
+				X = 0,
+				Y = 1,
+				Text = label
+			};
+
+			var tf = new TextField()
+				{
+					Text = initialText,
+					X = 0,
+					Y = 2,
+					Width = Dim.Fill()
+				};
+			
+			d.Add (lbl,tf);
+			tf.SetFocus();
+
+			Application.Run (d);
+
+			enteredText = okPressed? tf.Text.ToString() : null;
+			return okPressed;
+		}
+		private void EditCurrentCell (CellActivatedEventArgs e)
+		{
+			if(e.Table == null)
+				return;
+
+			var oldValue = e.Table.Rows[e.Row][e.Col].ToString();
+
+			if(GetText("Enter new value",e.Table.Columns[e.Col].ColumnName,oldValue, out string newText)) {
+				try {
+					e.Table.Rows[e.Row][e.Col] = string.IsNullOrWhiteSpace(newText) ? DBNull.Value : (object)newText;
+				}
+				catch(Exception ex) {
+					MessageBox.ErrorQuery(60,20,"Failed to set text", ex.Message,"Ok");
+				}
+				
+				tableView.Update();
+			}
+		}
+	}
+}

+ 19 - 1
UICatalog/Scenarios/Editor.cs

@@ -36,7 +36,20 @@ namespace UICatalog {
 					new MenuItem ("C_ut", "", () => Cut()),
 					new MenuItem ("_Paste", "", () => Paste())
 				}),
-				new MenuBarItem ("_ScrollBarView", CreateKeepChecked ())
+				new MenuBarItem ("_ScrollBarView", CreateKeepChecked ()),
+				new MenuBarItem ("_Cursor", new MenuItem [] {
+					new MenuItem ("_Invisible", "", () => SetCursor(CursorVisibility.Invisible)),
+					new MenuItem ("_Box", "", () => SetCursor(CursorVisibility.Box)),
+					new MenuItem ("_Underline", "", () => SetCursor(CursorVisibility.Underline)),
+					new MenuItem ("", "", () => {}, () => { return false; }),
+					new MenuItem ("xTerm :", "", () => {}, () => { return false; }),
+					new MenuItem ("", "", () => {}, () => { return false; }),
+					new MenuItem ("  _Default", "", () => SetCursor(CursorVisibility.Default)),
+					new MenuItem ("  _Vertical", "", () => SetCursor(CursorVisibility.Vertical)),
+					new MenuItem ("  V_ertical Fix", "", () => SetCursor(CursorVisibility.VerticalFix)),
+					new MenuItem ("  B_ox Fix", "", () => SetCursor(CursorVisibility.BoxFix)),
+					new MenuItem ("  U_nderline Fix","", () => SetCursor(CursorVisibility.UnderlineFix))
+				})
 			});
 			Top.Add (menu);
 
@@ -141,6 +154,11 @@ namespace UICatalog {
 			//}
 		}
 
+		private void SetCursor (CursorVisibility visibility)
+		{
+			_textView.DesiredCursorVisibility = visibility;
+		}
+
 		private void Open ()
 		{
 			var d = new OpenDialog ("Open", "Open a file") { AllowsMultipleSelection = false };

+ 394 - 0
UICatalog/Scenarios/TableEditor.cs

@@ -0,0 +1,394 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using Terminal.Gui;
+using System.Linq;
+using System.Globalization;
+
+namespace UICatalog.Scenarios {
+
+	[ScenarioMetadata (Name: "TableEditor", Description: "A Terminal.Gui DataTable editor via TableView")]
+	[ScenarioCategory ("Controls")]
+	[ScenarioCategory ("Dialogs")]
+	[ScenarioCategory ("Text")]
+	[ScenarioCategory ("Dialogs")]
+	[ScenarioCategory ("TopLevel")]
+	public class TableEditor : Scenario 
+	{
+		TableView tableView;
+		private MenuItem miAlwaysShowHeaders;
+		private MenuItem miHeaderOverline;
+		private MenuItem miHeaderMidline;
+		private MenuItem miHeaderUnderline;
+		private MenuItem miCellLines;
+		private MenuItem miFullRowSelect;
+
+		public override void Setup ()
+		{
+			Win.Title = this.GetName();
+			Win.Y = 1; // menu
+			Win.Height = Dim.Fill (1); // status bar
+			Top.LayoutSubviews ();
+
+			this.tableView = new TableView () {
+				X = 0,
+				Y = 0,
+				Width = Dim.Fill (),
+				Height = Dim.Fill (1),
+			};
+
+			var menu = new MenuBar (new MenuBarItem [] {
+				new MenuBarItem ("_File", new MenuItem [] {
+					new MenuItem ("_OpenBigExample", "", () => OpenExample(true)),
+					new MenuItem ("_OpenSmallExample", "", () => OpenExample(false)),
+					new MenuItem ("_CloseExample", "", () => CloseExample()),
+					new MenuItem ("_Quit", "", () => Quit()),
+				}),
+				new MenuBarItem ("_View", new MenuItem [] {
+					miAlwaysShowHeaders = new MenuItem ("_AlwaysShowHeaders", "", () => ToggleAlwaysShowHeader()){Checked = tableView.Style.AlwaysShowHeaders, CheckType = MenuItemCheckStyle.Checked },
+					miHeaderOverline = new MenuItem ("_HeaderOverLine", "", () => ToggleOverline()){Checked = tableView.Style.ShowHorizontalHeaderOverline, CheckType = MenuItemCheckStyle.Checked },
+					miHeaderMidline = new MenuItem ("_HeaderMidLine", "", () => ToggleHeaderMidline()){Checked = tableView.Style.ShowVerticalHeaderLines, CheckType = MenuItemCheckStyle.Checked },
+					miHeaderUnderline =new MenuItem ("_HeaderUnderLine", "", () => ToggleUnderline()){Checked = tableView.Style.ShowHorizontalHeaderUnderline, CheckType = MenuItemCheckStyle.Checked },
+					miFullRowSelect =new MenuItem ("_FullRowSelect", "", () => ToggleFullRowSelect()){Checked = tableView.FullRowSelect, CheckType = MenuItemCheckStyle.Checked },
+					miCellLines =new MenuItem ("_CellLines", "", () => ToggleCellLines()){Checked = tableView.Style.ShowVerticalCellLines, CheckType = MenuItemCheckStyle.Checked },
+					new MenuItem ("_AllLines", "", () => ToggleAllCellLines()),
+					new MenuItem ("_NoLines", "", () => ToggleNoCellLines()),
+					new MenuItem ("_ClearColumnStyles", "", () => ClearColumnStyles()),
+				}),
+			});
+			Top.Add (menu);
+
+
+
+			var statusBar = new StatusBar (new StatusItem [] {
+				new StatusItem(Key.F2, "~F2~ OpenExample", () => OpenExample(true)),
+				new StatusItem(Key.F3, "~F3~ CloseExample", () => CloseExample()),
+				new StatusItem(Key.F4, "~F4~ OpenSimple", () => OpenSimple(true)),
+				new StatusItem(Key.CtrlMask | Key.Q, "~^Q~ Quit", () => Quit()),
+			});
+			Top.Add (statusBar);
+
+			Win.Add (tableView);
+
+			var selectedCellLabel = new Label(){
+				X = 0,
+				Y = Pos.Bottom(tableView),
+				Text = "0,0",
+				Width = Dim.Fill(),
+				TextAlignment = TextAlignment.Right
+				
+			};
+
+			Win.Add(selectedCellLabel);
+
+			tableView.SelectedCellChanged += (e)=>{selectedCellLabel.Text = $"{tableView.SelectedRow},{tableView.SelectedColumn}";};
+			tableView.CellActivated += EditCurrentCell;
+			tableView.KeyPress += TableViewKeyPress;
+
+			SetupScrollBar();
+		}
+
+		private void SetupScrollBar ()
+		{
+			var _scrollBar = new ScrollBarView (tableView, true);
+
+			_scrollBar.ChangedPosition += () => {
+				tableView.RowOffset = _scrollBar.Position;
+				if (tableView.RowOffset != _scrollBar.Position) {
+					_scrollBar.Position = tableView.RowOffset;
+				}
+				tableView.SetNeedsDisplay ();
+			};
+			/*
+			_scrollBar.OtherScrollBarView.ChangedPosition += () => {
+				_listView.LeftItem = _scrollBar.OtherScrollBarView.Position;
+				if (_listView.LeftItem != _scrollBar.OtherScrollBarView.Position) {
+					_scrollBar.OtherScrollBarView.Position = _listView.LeftItem;
+				}
+				_listView.SetNeedsDisplay ();
+			};*/
+
+			tableView.DrawContent += (e) => {
+				_scrollBar.Size = tableView.Table?.Rows?.Count ??0;
+				_scrollBar.Position = tableView.RowOffset;
+			//	_scrollBar.OtherScrollBarView.Size = _listView.Maxlength - 1;
+			//	_scrollBar.OtherScrollBarView.Position = _listView.LeftItem;
+				_scrollBar.Refresh ();
+			};
+		
+		}
+
+		private void TableViewKeyPress (View.KeyEventEventArgs e)
+		{
+			if(e.KeyEvent.Key == Key.DeleteChar){
+
+				if(tableView.FullRowSelect)
+				{
+					// Delete button deletes all rows when in full row mode
+					foreach(int toRemove in tableView.GetAllSelectedCells().Select(p=>p.Y).Distinct().OrderByDescending(i=>i))
+						tableView.Table.Rows.RemoveAt(toRemove);
+				}
+				else{
+
+					// otherwise set all selected cells to null
+					foreach(var pt in tableView.GetAllSelectedCells())
+					{
+						tableView.Table.Rows[pt.Y][pt.X] = DBNull.Value;
+					}
+				}
+
+				tableView.Update();
+				e.Handled = true;
+			}
+
+
+		}
+
+		private void ClearColumnStyles ()
+		{
+			tableView.Style.ColumnStyles.Clear();
+			tableView.Update();
+		}
+
+		private void ToggleAlwaysShowHeader ()
+		{
+			miAlwaysShowHeaders.Checked = !miAlwaysShowHeaders.Checked;
+			tableView.Style.AlwaysShowHeaders = miAlwaysShowHeaders.Checked;
+			tableView.Update();
+		}
+
+		private void ToggleOverline ()
+		{
+			miHeaderOverline.Checked = !miHeaderOverline.Checked;
+			tableView.Style.ShowHorizontalHeaderOverline = miHeaderOverline.Checked;
+			tableView.Update();
+		}
+		private void ToggleHeaderMidline ()
+		{
+			miHeaderMidline.Checked = !miHeaderMidline.Checked;
+			tableView.Style.ShowVerticalHeaderLines = miHeaderMidline.Checked;
+			tableView.Update();
+		}
+		private void ToggleUnderline ()
+		{
+			miHeaderUnderline.Checked = !miHeaderUnderline.Checked;
+			tableView.Style.ShowHorizontalHeaderUnderline = miHeaderUnderline.Checked;
+			tableView.Update();
+		}
+		private void ToggleFullRowSelect ()
+		{
+			miFullRowSelect.Checked = !miFullRowSelect.Checked;
+			tableView.FullRowSelect= miFullRowSelect.Checked;
+			tableView.Update();
+		}
+		private void ToggleCellLines()
+		{
+			miCellLines.Checked = !miCellLines.Checked;
+			tableView.Style.ShowVerticalCellLines = miCellLines.Checked;
+			tableView.Update();
+		}
+		private void ToggleAllCellLines()
+		{
+			tableView.Style.ShowHorizontalHeaderOverline = true;
+			tableView.Style.ShowVerticalHeaderLines = true;
+			tableView.Style.ShowHorizontalHeaderUnderline = true;
+			tableView.Style.ShowVerticalCellLines = true;
+						
+			miHeaderOverline.Checked = true;
+			miHeaderMidline.Checked = true;
+			miHeaderUnderline.Checked = true;
+			miCellLines.Checked = true;
+
+			tableView.Update();
+		}
+		private void ToggleNoCellLines()
+		{
+			tableView.Style.ShowHorizontalHeaderOverline = false;
+			tableView.Style.ShowVerticalHeaderLines = false;
+			tableView.Style.ShowHorizontalHeaderUnderline = false;
+			tableView.Style.ShowVerticalCellLines = false;
+
+			miHeaderOverline.Checked = false;
+			miHeaderMidline.Checked = false;
+			miHeaderUnderline.Checked = false;
+			miCellLines.Checked = false;
+
+			tableView.Update();
+		}
+		
+
+		private void CloseExample ()
+		{
+			tableView.Table = null;
+		}
+
+		private void Quit ()
+		{
+			Application.RequestStop ();
+		}
+
+		private void OpenExample (bool big)
+		{
+			tableView.Table = BuildDemoDataTable(big ? 30 : 5, big ? 1000 : 5);
+			SetDemoTableStyles();
+		}
+
+		private void SetDemoTableStyles ()
+		{
+			var alignMid = new ColumnStyle() {
+				Alignment = TextAlignment.Centered
+			};
+			var alignRight = new ColumnStyle() {
+				Alignment = TextAlignment.Right
+			};
+
+			var dateFormatStyle = new ColumnStyle() {
+				Alignment = TextAlignment.Right,
+				RepresentationGetter = (v)=> v is DateTime d ? d.ToString("yyyy-MM-dd"):v.ToString()
+			};
+
+			var negativeRight = new ColumnStyle() {
+				
+				Format = "0.##",
+				MinWidth = 10,
+				AlignmentGetter = (v)=>v is double d ? 
+								// align negative values right
+								d < 0 ? TextAlignment.Right : 
+								// align positive values left
+								TextAlignment.Left:
+								// not a double
+								TextAlignment.Left
+			};
+			
+			tableView.Style.ColumnStyles.Add(tableView.Table.Columns["DateCol"],dateFormatStyle);
+			tableView.Style.ColumnStyles.Add(tableView.Table.Columns["DoubleCol"],negativeRight);
+			tableView.Style.ColumnStyles.Add(tableView.Table.Columns["NullsCol"],alignMid);
+			tableView.Style.ColumnStyles.Add(tableView.Table.Columns["IntCol"],alignRight);
+			
+			tableView.Update();
+		}
+
+		private void OpenSimple (bool big)
+		{
+			tableView.Table = BuildSimpleDataTable(big ? 30 : 5, big ? 1000 : 5);
+		}
+
+		private void EditCurrentCell (CellActivatedEventArgs e)
+		{
+			if(e.Table == null)
+				return;
+
+			var oldValue = e.Table.Rows[e.Row][e.Col].ToString();
+			bool okPressed = false;
+
+			var ok = new Button ("Ok", is_default: true);
+			ok.Clicked += () => { okPressed = true; Application.RequestStop (); };
+			var cancel = new Button ("Cancel");
+			cancel.Clicked += () => { Application.RequestStop (); };
+			var d = new Dialog ("Enter new value", 60, 20, ok, cancel);
+
+			var lbl = new Label() {
+				X = 0,
+				Y = 1,
+				Text = e.Table.Columns[e.Col].ColumnName
+			};
+
+			var tf = new TextField()
+				{
+					Text = oldValue,
+					X = 0,
+					Y = 2,
+					Width = Dim.Fill()
+				};
+			
+			d.Add (lbl,tf);
+			tf.SetFocus();
+
+			Application.Run (d);
+
+			if(okPressed) {
+
+				try {
+					e.Table.Rows[e.Row][e.Col] = string.IsNullOrWhiteSpace(tf.Text.ToString()) ? DBNull.Value : (object)tf.Text;
+				}
+				catch(Exception ex) {
+					MessageBox.ErrorQuery(60,20,"Failed to set text", ex.Message,"Ok");
+				}
+				
+				tableView.Update();
+			}
+		}
+
+		/// <summary>
+		/// Generates a new demo <see cref="DataTable"/> with the given number of <paramref name="cols"/> (min 5) and <paramref name="rows"/>
+		/// </summary>
+		/// <param name="cols"></param>
+		/// <param name="rows"></param>
+		/// <returns></returns>
+		public static DataTable BuildDemoDataTable(int cols, int rows)
+		{
+			var dt = new DataTable();
+
+			int explicitCols = 6;
+			dt.Columns.Add(new DataColumn("StrCol",typeof(string)));
+			dt.Columns.Add(new DataColumn("DateCol",typeof(DateTime)));
+			dt.Columns.Add(new DataColumn("IntCol",typeof(int)));
+			dt.Columns.Add(new DataColumn("DoubleCol",typeof(double)));
+			dt.Columns.Add(new DataColumn("NullsCol",typeof(string)));
+			dt.Columns.Add(new DataColumn("Unicode",typeof(string)));
+
+			for(int i=0;i< cols -explicitCols; i++) {
+				dt.Columns.Add("Column" + (i+explicitCols));
+			}
+			
+			var r = new Random(100);
+
+			for(int i=0;i< rows;i++) {
+				
+				List<object> row = new List<object>(){ 
+					"Some long text that is super cool",
+					new DateTime(2000+i,12,25),
+					r.Next(i),
+					(r.NextDouble()*i)-0.5 /*add some negatives to demo styles*/,
+					DBNull.Value,
+					"Les Mise" + Char.ConvertFromUtf32(Int32.Parse("0301", NumberStyles.HexNumber)) + "rables"
+				};
+				
+				for(int j=0;j< cols -explicitCols; j++) {
+					row.Add("SomeValue" + r.Next(100));
+				}
+
+				dt.Rows.Add(row.ToArray());
+			}
+
+			return dt;
+		}
+
+		/// <summary>
+		/// Builds a simple table in which cell values contents are the index of the cell.  This helps testing that scrolling etc is working correctly and not skipping out any rows/columns when paging
+		/// </summary>
+		/// <param name="cols"></param>
+		/// <param name="rows"></param>
+		/// <returns></returns>
+		public static DataTable BuildSimpleDataTable(int cols, int rows)
+		{
+			var dt = new DataTable();
+
+			for(int c = 0; c < cols; c++) {
+				dt.Columns.Add("Col"+c);
+			}
+				
+			for(int r = 0; r < rows; r++) {
+				var newRow = dt.NewRow();
+
+				for(int c = 0; c < cols; c++) {
+					newRow[c] = $"R{r}C{c}";
+				}
+
+				dt.Rows.Add(newRow);
+			}
+			
+			return dt;
+		}
+	}
+}

+ 3 - 2
UICatalog/UICatalog.cs

@@ -75,7 +75,7 @@ namespace UICatalog {
 
 			_scenarios = Scenario.GetDerivedClasses<Scenario> ().OrderBy (t => Scenario.ScenarioMetadata.GetName (t)).ToList ();
 
-			if (args.Length > 0 && args.Contains("-usc")) {
+			if (args.Length > 0 && args.Contains ("-usc")) {
 				_useSystemConsole = true;
 				args = args.Where (val => val != "-usc").ToArray ();
 			}
@@ -259,6 +259,7 @@ namespace UICatalog {
 					_top.LayoutSubviews();
 					_top.SetChildNeedsDisplay();
 				}),
+				new StatusItem (Key.CharMask, Application.Driver.GetType ().Name, null),
 			};
 
 			SetColorScheme ();
@@ -331,7 +332,7 @@ namespace UICatalog {
 			var index = 0;
 
 			List<MenuItem> menuItems = new List<MenuItem> ();
-			foreach (Enum diag in Enum.GetValues(_diagnosticFlags.GetType())) {
+			foreach (Enum diag in Enum.GetValues (_diagnosticFlags.GetType ())) {
 				var item = new MenuItem ();
 				item.Title = GetDiagnosticsTitle (diag);
 				item.Shortcut = Key.AltMask + index.ToString () [0];

+ 447 - 0
UnitTests/TableViewTests.cs

@@ -0,0 +1,447 @@
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using Terminal.Gui;
+using Xunit;
+using System.Globalization;
+
+namespace UnitTests {
+	public class TableViewTests 
+	{
+
+        [Fact]
+        public void EnsureValidScrollOffsets_WithNoCells()
+        {
+            var tableView = new TableView();
+
+            Assert.Equal(0,tableView.RowOffset);
+            Assert.Equal(0,tableView.ColumnOffset);
+
+            // Set empty table
+            tableView.Table = new DataTable();
+
+            // Since table has no rows or columns scroll offset should default to 0
+            tableView.EnsureValidScrollOffsets();
+            Assert.Equal(0,tableView.RowOffset);
+            Assert.Equal(0,tableView.ColumnOffset);
+        }
+
+
+
+        [Fact]
+        public void EnsureValidScrollOffsets_LoadSmallerTable()
+        {
+            var tableView = new TableView();
+            tableView.Bounds = new Rect(0,0,25,10);
+
+            Assert.Equal(0,tableView.RowOffset);
+            Assert.Equal(0,tableView.ColumnOffset);
+
+            // Set big table
+            tableView.Table = BuildTable(25,50);
+
+            // Scroll down and along
+            tableView.RowOffset = 20;
+            tableView.ColumnOffset = 10;
+
+            tableView.EnsureValidScrollOffsets();
+
+            // The scroll should be valid at the moment
+            Assert.Equal(20,tableView.RowOffset);
+            Assert.Equal(10,tableView.ColumnOffset);
+
+            // Set small table
+            tableView.Table = BuildTable(2,2);
+
+            // Setting a small table should automatically trigger fixing the scroll offsets to ensure valid cells
+            Assert.Equal(0,tableView.RowOffset);
+            Assert.Equal(0,tableView.ColumnOffset);
+
+
+            // Trying to set invalid indexes should not be possible
+            tableView.RowOffset = 20;
+            tableView.ColumnOffset = 10;
+
+            Assert.Equal(1,tableView.RowOffset);
+            Assert.Equal(1,tableView.ColumnOffset);
+        }
+
+        [Fact]
+        public void SelectedCellChanged_NotFiredForSameValue()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50)
+            };
+
+            bool called = false;
+            tableView.SelectedCellChanged += (e)=>{called=true;};
+
+            Assert.Equal(0,tableView.SelectedColumn);
+            Assert.False(called);
+            
+            // Changing value to same as it already was should not raise an event
+            tableView.SelectedColumn = 0;
+
+            Assert.False(called);
+
+            tableView.SelectedColumn = 10;
+            Assert.True(called);
+        }
+
+
+
+        [Fact]
+        public void SelectedCellChanged_SelectedColumnIndexesCorrect()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50)
+            };
+
+            bool called = false;
+            tableView.SelectedCellChanged += (e)=>{
+                called=true;
+                Assert.Equal(0,e.OldCol);
+                Assert.Equal(10,e.NewCol);
+            };
+            
+            tableView.SelectedColumn = 10;
+            Assert.True(called);
+        }
+
+        [Fact]
+        public void SelectedCellChanged_SelectedRowIndexesCorrect()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50)
+            };
+
+            bool called = false;
+            tableView.SelectedCellChanged += (e)=>{
+                called=true;
+                Assert.Equal(0,e.OldRow);
+                Assert.Equal(10,e.NewRow);
+            };
+            
+            tableView.SelectedRow = 10;
+            Assert.True(called);
+        }
+
+        [Fact]
+        public void Test_SumColumnWidth_UnicodeLength()
+        {
+            Assert.Equal(11,"hello there".Sum(c=>Rune.ColumnWidth(c)));
+
+            // Creates a string with the peculiar (french?) r symbol
+            String surrogate = "Les Mise" + Char.ConvertFromUtf32(Int32.Parse("0301", NumberStyles.HexNumber)) + "rables";
+
+            // The unicode width of this string is shorter than the string length! 
+            Assert.Equal(14,surrogate.Sum(c=>Rune.ColumnWidth(c)));
+            Assert.Equal(15,surrogate.Length);
+        }
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_Vertical()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 3 cell vertical selection
+            tableView.SetSelection(1,1,false);
+            tableView.SetSelection(1,3,true);
+
+            Assert.False(tableView.IsSelected(0,0));
+            Assert.False(tableView.IsSelected(1,0));
+            Assert.False(tableView.IsSelected(2,0));
+
+            Assert.False(tableView.IsSelected(0,1));
+            Assert.True(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+
+            Assert.False(tableView.IsSelected(0,2));
+            Assert.True(tableView.IsSelected(1,2));
+            Assert.False(tableView.IsSelected(2,2));
+
+            Assert.False(tableView.IsSelected(0,3));
+            Assert.True(tableView.IsSelected(1,3));
+            Assert.False(tableView.IsSelected(2,3));
+
+            Assert.False(tableView.IsSelected(0,4));
+            Assert.False(tableView.IsSelected(1,4));
+            Assert.False(tableView.IsSelected(2,4));
+        }
+
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_Horizontal()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 2 cell horizontal selection
+            tableView.SetSelection(1,0,false);
+            tableView.SetSelection(2,0,true);
+
+            Assert.False(tableView.IsSelected(0,0));
+            Assert.True(tableView.IsSelected(1,0));
+            Assert.True(tableView.IsSelected(2,0));
+            Assert.False(tableView.IsSelected(3,0));
+
+            Assert.False(tableView.IsSelected(0,1));
+            Assert.False(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+            Assert.False(tableView.IsSelected(3,1));
+        }
+
+
+
+        [Fact]
+        public void IsSelected_MultiSelectionOn_BoxSelection()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true
+            };
+
+            // 4 cell horizontal in box 2x2
+            tableView.SetSelection(0,0,false);
+            tableView.SetSelection(1,1,true);
+
+            Assert.True(tableView.IsSelected(0,0));
+            Assert.True(tableView.IsSelected(1,0));
+            Assert.False(tableView.IsSelected(2,0));
+
+            Assert.True(tableView.IsSelected(0,1));
+            Assert.True(tableView.IsSelected(1,1));
+            Assert.False(tableView.IsSelected(2,1));
+
+            Assert.False(tableView.IsSelected(0,2));
+            Assert.False(tableView.IsSelected(1,2));
+            Assert.False(tableView.IsSelected(2,2));
+        }
+
+        [Fact]
+        public void PageDown_ExcludesHeaders()
+        {
+
+			var driver = new FakeDriver ();
+			Application.Init (driver, new FakeMainLoop (() => FakeConsole.ReadKey (true)));
+			driver.Init (() => { });
+
+
+            var tableView = new TableView(){
+                Table = BuildTable(25,50),
+                MultiSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            // Header should take up 2 lines
+            tableView.Style.ShowHorizontalHeaderOverline = false;
+            tableView.Style.ShowHorizontalHeaderUnderline = true;
+            tableView.Style.AlwaysShowHeaders = false;
+
+            Assert.Equal(0,tableView.RowOffset);
+
+            tableView.ProcessKey(new KeyEvent(Key.PageDown,new KeyModifiers()));
+
+            // window height is 5 rows 2 are header so page down should give 3 new rows
+            Assert.Equal(3,tableView.RowOffset);
+
+            // header is no longer visible so page down should give 5 new rows
+            tableView.ProcessKey(new KeyEvent(Key.PageDown,new KeyModifiers()));
+            
+            Assert.Equal(8,tableView.RowOffset);
+        }
+
+        [Fact]
+        public void DeleteRow_SelectAll_AdjustsSelectionToPreventOverrun()
+        {
+            // create a 4 by 4 table
+            var tableView = new TableView(){
+                Table = BuildTable(4,4),
+                MultiSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            tableView.SelectAll();
+            Assert.Equal(16,tableView.GetAllSelectedCells().Count());
+
+            // delete one of the columns
+            tableView.Table.Columns.RemoveAt(2);
+
+            // table should now be 3x4
+            Assert.Equal(12,tableView.GetAllSelectedCells().Count());
+
+            // remove a row
+            tableView.Table.Rows.RemoveAt(1);
+
+            // table should now be 3x3
+            Assert.Equal(9,tableView.GetAllSelectedCells().Count());
+        }
+
+
+        [Fact]
+        public void DeleteRow_SelectLastRow_AdjustsSelectionToPreventOverrun()
+        {
+            // create a 4 by 4 table
+            var tableView = new TableView(){
+                Table = BuildTable(4,4),
+                MultiSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            // select the last row
+            tableView.MultiSelectedRegions.Clear();
+            tableView.MultiSelectedRegions.Push(new TableSelection(new Point(0,3), new Rect(0,3,4,1)));
+
+            Assert.Equal(4,tableView.GetAllSelectedCells().Count());
+
+            // remove a row
+            tableView.Table.Rows.RemoveAt(0);
+
+            tableView.EnsureValidSelection();
+
+            // since the selection no longer exists it should be removed
+            Assert.Empty(tableView.MultiSelectedRegions);
+        }
+
+        [Theory]
+        [InlineData(true)]
+        [InlineData(false)]
+        public void GetAllSelectedCells_SingleCellSelected_ReturnsOne(bool multiSelect)
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(3,3),
+                MultiSelect = multiSelect,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            tableView.SetSelection(1,1,false);
+
+            Assert.Single(tableView.GetAllSelectedCells());
+            Assert.Equal(new Point(1,1),tableView.GetAllSelectedCells().Single());
+        }
+
+
+        [Fact]
+        public void GetAllSelectedCells_SquareSelection_ReturnsFour()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(3,3),
+                MultiSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            // move cursor to 1,1
+            tableView.SetSelection(1,1,false);
+            // spread selection across to 2,2 (e.g. shift+right then shift+down)
+            tableView.SetSelection(2,2,true);
+
+            var selected = tableView.GetAllSelectedCells().ToArray();
+
+            Assert.Equal(4,selected.Length);
+            Assert.Equal(new Point(1,1),selected[0]);
+            Assert.Equal(new Point(2,1),selected[1]);
+            Assert.Equal(new Point(1,2),selected[2]);
+            Assert.Equal(new Point(2,2),selected[3]);
+        }
+        
+
+        [Fact]
+        public void GetAllSelectedCells_SquareSelection_FullRowSelect()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(3,3),
+                MultiSelect = true,
+                FullRowSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            // move cursor to 1,1
+            tableView.SetSelection(1,1,false);
+            // spread selection across to 2,2 (e.g. shift+right then shift+down)
+            tableView.SetSelection(2,2,true);
+
+            var selected = tableView.GetAllSelectedCells().ToArray();
+
+            Assert.Equal(6,selected.Length);
+            Assert.Equal(new Point(0,1),selected[0]);
+            Assert.Equal(new Point(1,1),selected[1]);
+            Assert.Equal(new Point(2,1),selected[2]);
+            Assert.Equal(new Point(0,2),selected[3]);
+            Assert.Equal(new Point(1,2),selected[4]);
+            Assert.Equal(new Point(2,2),selected[5]);
+        }
+        
+
+        [Fact]
+        public void GetAllSelectedCells_TwoIsolatedSelections_ReturnsSix()
+        {
+            var tableView = new TableView(){
+                Table = BuildTable(20,20),
+                MultiSelect = true,
+                Bounds = new Rect(0,0,10,5)
+            };
+
+            /*  
+                    Sets up disconnected selections like:
+
+                    00000000000
+                    01100000000
+                    01100000000
+                    00000001100
+                    00000000000
+            */
+
+            tableView.MultiSelectedRegions.Clear();
+            tableView.MultiSelectedRegions.Push(new TableSelection(new Point(1,1),new Rect(1,1,2,2)));
+            tableView.MultiSelectedRegions.Push(new TableSelection(new Point(7,3),new Rect(7,3,2,1)));
+            
+            tableView.SelectedColumn = 8;
+            tableView.SelectedRow = 3;
+
+            var selected = tableView.GetAllSelectedCells().ToArray();
+
+            Assert.Equal(6,selected.Length);
+
+            Assert.Equal(new Point(1,1),selected[0]);
+            Assert.Equal(new Point(2,1),selected[1]);
+            Assert.Equal(new Point(1,2),selected[2]);
+            Assert.Equal(new Point(2,2),selected[3]);
+            Assert.Equal(new Point(7,3),selected[4]);
+            Assert.Equal(new Point(8,3),selected[5]);
+        }
+
+        /// <summary>
+		/// Builds a simple table of string columns with the requested number of columns and rows
+		/// </summary>
+		/// <param name="cols"></param>
+		/// <param name="rows"></param>
+		/// <returns></returns>
+		public static DataTable BuildTable(int cols, int rows)
+		{
+			var dt = new DataTable();
+
+			for(int c = 0; c < cols; c++) {
+				dt.Columns.Add("Col"+c);
+			}
+				
+			for(int r = 0; r < rows; r++) {
+				var newRow = dt.NewRow();
+
+				for(int c = 0; c < cols; c++) {
+					newRow[c] = $"R{r}C{c}";
+				}
+
+				dt.Rows.Add(newRow);
+			}
+			
+			return dt;
+		}
+	}
+}

+ 56 - 0
docfx/articles/tableview.md

@@ -0,0 +1,56 @@
+# Table View
+
+This control supports viewing and editing tabular data.  It provides a view of a [System.DataTable](https://docs.microsoft.com/en-us/dotnet/api/system.data.datatable?view=net-5.0).
+
+System.DataTable is a core class of .net standard and can be created very easily
+
+## Csv Example
+
+You can create a DataTable from a CSV file by creating a new instance and adding columns and rows as you read them.  For a robust solution however you might want to look into a CSV parser library that deals with escaping, multi line rows etc.
+
+```csharp
+var dt = new DataTable();
+var lines = File.ReadAllLines(filename);
+			
+foreach(var h in lines[0].Split(',')){
+	dt.Columns.Add(h);
+}
+				
+
+foreach(var line in lines.Skip(1)) {
+	dt.Rows.Add(line.Split(','));
+}
+```
+
+## Database Example
+
+All Ado.net database providers (Oracle, MySql, SqlServer etc) support reading data as DataTables for example:
+
+```csharp
+var dt = new DataTable();
+
+using(var con = new SqlConnection("Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;"))
+{
+    con.Open();
+    var cmd = new SqlCommand("select * from myTable;",con);
+    var adapter = new SqlDataAdapter(cmd);
+
+    adapter.Fill(dt);
+}
+```
+
+## Displaying the table
+
+Once you have set up your data table set it in the view:
+
+```csharp
+tableView = new TableView () {
+	X = 0,
+	Y = 0,
+	Width = 50,
+	Height = 10,
+};
+
+tableView.Table = yourDataTable;
+```
+

+ 0 - 2
docfx/index.md

@@ -2,8 +2,6 @@
 
 A simple UI toolkit for .NET, .NET Core, and Mono that works on Windows, the Mac, and Linux/Unix.
 
-*The most recent released Nuget package is version `0.90` which is the "Stable Feature Complete" pre-release of 1.0.*
-
 * [Terminal.Gui Project on GitHub](https://github.com/migueldeicaza/gui.cs)
 
 ## Terminal.Gui API Documentation

+ 5 - 4
docs/README.html

@@ -8,7 +8,7 @@
     <title>To Generate the Docs </title>
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="To Generate the Docs ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="favicon.ico">
     <link rel="stylesheet" href="styles/docfx.vendor.css">
@@ -59,11 +59,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -91,7 +91,8 @@
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Application.ResizedEventArgs.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Application.ResizedEventArgs
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -192,7 +192,8 @@ The number of rows in the resized terminal.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Application.RunState.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Application.RunState
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -220,7 +220,8 @@ Dispose the specified disposing.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 94 - 24
docs/api/Terminal.Gui/Terminal.Gui.Application.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Application
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -291,10 +291,37 @@ If set, it forces the use of the System.Console-based driver.
   </h3>
   
   
+  <a id="Terminal_Gui_Application_AlwaysSetPosition_" data-uid="Terminal.Gui.Application.AlwaysSetPosition*"></a>
+  <h4 id="Terminal_Gui_Application_AlwaysSetPosition" data-uid="Terminal.Gui.Application.AlwaysSetPosition">AlwaysSetPosition</h4>
+  <div class="markdown level1 summary">
+Used only by <span class="xref">Terminal.Gui.NetDriver</span> to forcing always moving the cursor position when writing to the screen.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static bool AlwaysSetPosition { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_Application_Current_" data-uid="Terminal.Gui.Application.Current*"></a>
   <h4 id="Terminal_Gui_Application_Current" data-uid="Terminal.Gui.Application.Current">Current</h4>
   <div class="markdown level1 summary">
-The current <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> object. This is updated when <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run">Run()</a> enters and leaves to point to the current <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> .
+The current <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> object. This is updated when <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__">Run(Func&lt;Exception, Boolean&gt;)</a> enters and leaves to point to the current <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> .
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -318,15 +345,15 @@ The current <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> objec
   </table>
   
   
-  <a id="Terminal_Gui_Application_CurrentView_" data-uid="Terminal.Gui.Application.CurrentView*"></a>
-  <h4 id="Terminal_Gui_Application_CurrentView" data-uid="Terminal.Gui.Application.CurrentView">CurrentView</h4>
+  <a id="Terminal_Gui_Application_HeightAsBuffer_" data-uid="Terminal.Gui.Application.HeightAsBuffer*"></a>
+  <h4 id="Terminal_Gui_Application_HeightAsBuffer" data-uid="Terminal.Gui.Application.HeightAsBuffer">HeightAsBuffer</h4>
   <div class="markdown level1 summary">
-TThe current <a class="xref" href="Terminal.Gui.View.html">View</a> object being redrawn.
+The current <a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_HeightAsBuffer">HeightAsBuffer</a> used in the terminal.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static View CurrentView { get; set; }</code></pre>
+    <pre><code class="lang-csharp hljs">public static bool HeightAsBuffer { get; set; }</code></pre>
   </div>
   <h5 class="propertyValue">Property Value</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -338,8 +365,8 @@ TThe current <a class="xref" href="Terminal.Gui.View.html">View</a> object being
     </thead>
     <tbody>
       <tr>
-        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
-        <td>The current.</td>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
       </tr>
     </tbody>
   </table>
@@ -553,7 +580,7 @@ Call this method once per instance (or after <a class="xref" href="Terminal.Gui.
 Loads the right <a class="xref" href="Terminal.Gui.ConsoleDriver.html">ConsoleDriver</a> for the platform.
 </p>
 <p>
-Creates a <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> and assigns it to <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Top">Top</a> and <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_CurrentView">CurrentView</a>
+Creates a <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> and assigns it to <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Top">Top</a>
 </p>
 </div>
   
@@ -627,7 +654,7 @@ Stops running the most recent <a class="xref" href="Terminal.Gui.Toplevel.html">
   <h5 id="Terminal_Gui_Application_RequestStop_remarks">Remarks</h5>
   <div class="markdown level1 remarks">
 <p>
-This will cause <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run">Run()</a> to return.
+This will cause <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__">Run(Func&lt;Exception, Boolean&gt;)</a> to return.
 </p>
 <p>
   Calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RequestStop">RequestStop()</a> is equivalent to setting the <a class="xref" href="Terminal.Gui.Toplevel.html#Terminal_Gui_Toplevel_Running">Running</a> property on the curently running <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> to false.
@@ -636,26 +663,43 @@ This will cause <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui
   
   
   <a id="Terminal_Gui_Application_Run_" data-uid="Terminal.Gui.Application.Run*"></a>
-  <h4 id="Terminal_Gui_Application_Run" data-uid="Terminal.Gui.Application.Run">Run()</h4>
+  <h4 id="Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__" data-uid="Terminal.Gui.Application.Run(System.Func{System.Exception,System.Boolean})">Run(Func&lt;Exception, Boolean&gt;)</h4>
   <div class="markdown level1 summary">
-Runs the application by calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_">Run(Toplevel)</a> with the value of <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Top">Top</a>
+Runs the application by calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</a> with the value of <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Top">Top</a>
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static void Run()</code></pre>
+    <pre><code class="lang-csharp hljs">public static void Run(Func&lt;Exception, bool&gt; errorHandler = null)</code></pre>
   </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<span class="xref">System.Exception</span>, <span class="xref">System.Boolean</span>&gt;</td>
+        <td><span class="parametername">errorHandler</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   
   
   <a id="Terminal_Gui_Application_Run_" data-uid="Terminal.Gui.Application.Run*"></a>
-  <h4 id="Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_" data-uid="Terminal.Gui.Application.Run(Terminal.Gui.Toplevel)">Run(Toplevel)</h4>
+  <h4 id="Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__" data-uid="Terminal.Gui.Application.Run(Terminal.Gui.Toplevel,System.Func{System.Exception,System.Boolean})">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</h4>
   <div class="markdown level1 summary">
 Runs the main loop on the given <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> container.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static void Run(Toplevel view)</code></pre>
+    <pre><code class="lang-csharp hljs">public static void Run(Toplevel view, Func&lt;Exception, bool&gt; errorHandler = null)</code></pre>
   </div>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -672,9 +716,14 @@ Runs the main loop on the given <a class="xref" href="Terminal.Gui.Toplevel.html
         <td><span class="parametername">view</span></td>
         <td>The <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> tu run modally.</td>
       </tr>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<span class="xref">System.Exception</span>, <span class="xref">System.Boolean</span>&gt;</td>
+        <td><span class="parametername">errorHandler</span></td>
+        <td>Handler for any unhandled exceptions (resumes when returns true, rethrows when null).</td>
+      </tr>
     </tbody>
   </table>
-  <h5 id="Terminal_Gui_Application_Run_Terminal_Gui_Toplevel__remarks">Remarks</h5>
+  <h5 id="Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean___remarks">Remarks</h5>
   <div class="markdown level1 remarks">
 <p>
   This method is used to start processing events
@@ -682,10 +731,10 @@ Runs the main loop on the given <a class="xref" href="Terminal.Gui.Toplevel.html
   run other modal <a class="xref" href="Terminal.Gui.View.html">View</a>s such as <a class="xref" href="Terminal.Gui.Dialog.html">Dialog</a> boxes.
 </p>
 <p>
-  To make a <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_">Run(Toplevel)</a> stop execution, call <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RequestStop">RequestStop()</a>.
+  To make a <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</a> stop execution, call <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RequestStop">RequestStop()</a>.
 </p>
 <p>
-  Calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_">Run(Toplevel)</a> is equivalent to calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Begin_Terminal_Gui_Toplevel_">Begin(Toplevel)</a>, followed by <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RunLoop_Terminal_Gui_Application_RunState_System_Boolean_">RunLoop(Application.RunState, Boolean)</a>,
+  Calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</a> is equivalent to calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Begin_Terminal_Gui_Toplevel_">Begin(Toplevel)</a>, followed by <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RunLoop_Terminal_Gui_Application_RunState_System_Boolean_">RunLoop(Application.RunState, Boolean)</a>,
   and then calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_End_Terminal_Gui_Application_RunState_">End(Application.RunState)</a>.
 </p>
 <p>
@@ -695,20 +744,40 @@ Runs the main loop on the given <a class="xref" href="Terminal.Gui.Toplevel.html
   the <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RunLoop_Terminal_Gui_Application_RunState_System_Boolean_">RunLoop(Application.RunState, Boolean)</a> method will only process any pending events, timers, idle handlers and
   then return control immediately.
 </p>
+<p>
+  When <code data-dev-comment-type="paramref" class="paramref">errorHandler</code> is null the exception is rethrown, when it returns true the application is resumed and when false method exits gracefully.
+</p>
 </div>
   
   
   <a id="Terminal_Gui_Application_Run_" data-uid="Terminal.Gui.Application.Run*"></a>
-  <h4 id="Terminal_Gui_Application_Run__1" data-uid="Terminal.Gui.Application.Run``1">Run&lt;T&gt;()</h4>
+  <h4 id="Terminal_Gui_Application_Run__1_System_Func_System_Exception_System_Boolean__" data-uid="Terminal.Gui.Application.Run``1(System.Func{System.Exception,System.Boolean})">Run&lt;T&gt;(Func&lt;Exception, Boolean&gt;)</h4>
   <div class="markdown level1 summary">
-Runs the application by calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_">Run(Toplevel)</a> with a new instance of the specified <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a>-derived class
+Runs the application by calling <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</a> with a new instance of the specified <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a>-derived class
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public static void Run&lt;T&gt;()
+    <pre><code class="lang-csharp hljs">public static void Run&lt;T&gt;(Func&lt;Exception, bool&gt; errorHandler = null)
     where T : Toplevel, new()</code></pre>
   </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<span class="xref">System.Exception</span>, <span class="xref">System.Boolean</span>&gt;</td>
+        <td><span class="parametername">errorHandler</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <h5 class="typeParameters">Type Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
     <thead>
@@ -797,7 +866,8 @@ Releases the mouse grab, so mouse events will be routed to the view on which the
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 115 - 4
docs/api/Terminal.Gui/Terminal.Gui.Attribute.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Struct Attribute
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -195,10 +195,120 @@ Initializes a new instance of the <a class="xref" href="Terminal.Gui.Attribute.h
       </tr>
     </tbody>
   </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_Attribute_Background_" data-uid="Terminal.Gui.Attribute.Background*"></a>
+  <h4 id="Terminal_Gui_Attribute_Background" data-uid="Terminal.Gui.Attribute.Background">Background</h4>
+  <div class="markdown level1 summary">
+The background color.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Color Background { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Color.html">Color</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_Attribute_Foreground_" data-uid="Terminal.Gui.Attribute.Foreground*"></a>
+  <h4 id="Terminal_Gui_Attribute_Foreground" data-uid="Terminal.Gui.Attribute.Foreground">Foreground</h4>
+  <div class="markdown level1 summary">
+The foreground color.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Color Foreground { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Color.html">Color</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_Attribute_Value_" data-uid="Terminal.Gui.Attribute.Value*"></a>
+  <h4 id="Terminal_Gui_Attribute_Value" data-uid="Terminal.Gui.Attribute.Value">Value</h4>
+  <div class="markdown level1 summary">
+The color attribute value.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int Value { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="methods">Methods
   </h3>
   
   
+  <a id="Terminal_Gui_Attribute_Get_" data-uid="Terminal.Gui.Attribute.Get*"></a>
+  <h4 id="Terminal_Gui_Attribute_Get" data-uid="Terminal.Gui.Attribute.Get">Get()</h4>
+  <div class="markdown level1 summary">
+Gets the current <a class="xref" href="Terminal.Gui.Attribute.html">Attribute</a> from the driver.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public static Attribute Get()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Attribute.html">Attribute</a></td>
+        <td>The current attribute.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_Attribute_Make_" data-uid="Terminal.Gui.Attribute.Make*"></a>
   <h4 id="Terminal_Gui_Attribute_Make_Terminal_Gui_Color_Terminal_Gui_Color_" data-uid="Terminal.Gui.Attribute.Make(Terminal.Gui.Color,Terminal.Gui.Color)">Make(Color, Color)</h4>
   <div class="markdown level1 summary">
@@ -346,7 +456,8 @@ Implicit conversion from an <a class="xref" href="Terminal.Gui.Attribute.html">A
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.Button.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Button
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ Button is a <a class="xref" href="Terminal.Gui.View.html">View</a> that provides
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -264,9 +267,6 @@ Button is a <a class="xref" href="Terminal.Gui.View.html">View</a> that provides
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -375,6 +375,12 @@ Button is a <a class="xref" href="Terminal.Gui.View.html">View</a> that provides
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -685,6 +691,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_Button_OnEnter_" data-uid="Terminal.Gui.Button.OnEnter*"></a>
+  <h4 id="Terminal_Gui_Button_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.Button.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_Button_PositionCursor_" data-uid="Terminal.Gui.Button.PositionCursor*"></a>
   <h4 id="Terminal_Gui_Button_PositionCursor" data-uid="Terminal.Gui.Button.PositionCursor">PositionCursor()</h4>
   <div class="markdown level1 summary">
@@ -948,7 +1000,8 @@ the mouse or the keyboard.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 289 - 0
docs/api/Terminal.Gui/Terminal.Gui.CellActivatedEventArgs.html

@@ -0,0 +1,289 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class CellActivatedEventArgs
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class CellActivatedEventArgs
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.CellActivatedEventArgs">
+  
+  
+  <h1 id="Terminal_Gui_CellActivatedEventArgs" data-uid="Terminal.Gui.CellActivatedEventArgs" class="text-break">Class CellActivatedEventArgs
+  </h1>
+  <div class="markdown level0 summary">
+Defines the event arguments for <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_CellActivated">CellActivated</a> event
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">System.EventArgs</span></div>
+    <div class="level2"><span class="xref">CellActivatedEventArgs</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.EventArgs.Empty</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_CellActivatedEventArgs_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class CellActivatedEventArgs : EventArgs</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Terminal_Gui_CellActivatedEventArgs__ctor_" data-uid="Terminal.Gui.CellActivatedEventArgs.#ctor*"></a>
+  <h4 id="Terminal_Gui_CellActivatedEventArgs__ctor_System_Data_DataTable_System_Int32_System_Int32_" data-uid="Terminal.Gui.CellActivatedEventArgs.#ctor(System.Data.DataTable,System.Int32,System.Int32)">CellActivatedEventArgs(DataTable, Int32, Int32)</h4>
+  <div class="markdown level1 summary">
+Creates a new instance of arguments describing a cell being activated in <a class="xref" href="Terminal.Gui.TableView.html">TableView</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public CellActivatedEventArgs(DataTable t, int col, int row)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td><span class="parametername">t</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">col</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">row</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_CellActivatedEventArgs_Col_" data-uid="Terminal.Gui.CellActivatedEventArgs.Col*"></a>
+  <h4 id="Terminal_Gui_CellActivatedEventArgs_Col" data-uid="Terminal.Gui.CellActivatedEventArgs.Col">Col</h4>
+  <div class="markdown level1 summary">
+The column index of the <a class="xref" href="Terminal.Gui.CellActivatedEventArgs.html#Terminal_Gui_CellActivatedEventArgs_Table">Table</a> cell that is being activated
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int Col { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_CellActivatedEventArgs_Row_" data-uid="Terminal.Gui.CellActivatedEventArgs.Row*"></a>
+  <h4 id="Terminal_Gui_CellActivatedEventArgs_Row" data-uid="Terminal.Gui.CellActivatedEventArgs.Row">Row</h4>
+  <div class="markdown level1 summary">
+The row index of the <a class="xref" href="Terminal.Gui.CellActivatedEventArgs.html#Terminal_Gui_CellActivatedEventArgs_Table">Table</a> cell that is being activated
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int Row { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_CellActivatedEventArgs_Table_" data-uid="Terminal.Gui.CellActivatedEventArgs.Table*"></a>
+  <h4 id="Terminal_Gui_CellActivatedEventArgs_Table" data-uid="Terminal.Gui.CellActivatedEventArgs.Table">Table</h4>
+  <div class="markdown level1 summary">
+The current table to which the new indexes refer.  May be null e.g. if selection change is the result of clearing the table from the view
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public DataTable Table { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.CheckBox.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class CheckBox
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ The <a class="xref" href="Terminal.Gui.CheckBox.html">CheckBox</a> <a class="xre
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -264,9 +267,6 @@ The <a class="xref" href="Terminal.Gui.CheckBox.html">CheckBox</a> <a class="xre
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -378,6 +378,12 @@ The <a class="xref" href="Terminal.Gui.CheckBox.html">CheckBox</a> <a class="xre
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -653,6 +659,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_CheckBox_OnEnter_" data-uid="Terminal.Gui.CheckBox.OnEnter*"></a>
+  <h4 id="Terminal_Gui_CheckBox_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.CheckBox.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_CheckBox_OnToggled_" data-uid="Terminal.Gui.CheckBox.OnToggled*"></a>
   <h4 id="Terminal_Gui_CheckBox_OnToggled_System_Boolean_" data-uid="Terminal.Gui.CheckBox.OnToggled(System.Boolean)">OnToggled(Boolean)</h4>
   <div class="markdown level1 summary">
@@ -859,7 +911,8 @@ the mouse or the keyboard. The passed <code>bool</code> contains the previous st
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Clipboard.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Clipboard
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -162,7 +162,8 @@ NOTE: Currently not implemented.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 6 - 5
docs/api/Terminal.Gui/Terminal.Gui.Color.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum Color
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -118,7 +118,7 @@ The blue color.
       <tr>
         <td id="Terminal_Gui_Color_BrighCyan">BrighCyan</td>
         <td>
-The brigh cyan color.
+The bright cyan color.
 </td>
       </tr>
       <tr>
@@ -211,7 +211,8 @@ The White color.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.ColorScheme.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ColorScheme
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -494,7 +494,8 @@ Compares two <a class="xref" href="Terminal.Gui.ColorScheme.html">ColorScheme</a
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Colors.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Colors
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -326,7 +326,8 @@ This API will be deprecated in the future. Use <a class="xref" href="Terminal.Gu
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 415 - 0
docs/api/Terminal.Gui/Terminal.Gui.ColumnStyle.html

@@ -0,0 +1,415 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class ColumnStyle
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class ColumnStyle
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.ColumnStyle">
+  
+  
+  <h1 id="Terminal_Gui_ColumnStyle" data-uid="Terminal.Gui.ColumnStyle" class="text-break">Class ColumnStyle
+  </h1>
+  <div class="markdown level0 summary">
+Describes how to render a given column in  a <a class="xref" href="Terminal.Gui.TableView.html">TableView</a> including <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_Alignment">Alignment</a> and textual representation of cells (e.g. date formats)
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">ColumnStyle</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_ColumnStyle_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class ColumnStyle</code></pre>
+  </div>
+  <h3 id="fields">Fields
+  </h3>
+  
+  
+  <h4 id="Terminal_Gui_ColumnStyle_AlignmentGetter" data-uid="Terminal.Gui.ColumnStyle.AlignmentGetter">AlignmentGetter</h4>
+  <div class="markdown level1 summary">
+Defines a delegate for returning custom alignment per cell based on cell values.  When specified this will override <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_Alignment">Alignment</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Func&lt;object, TextAlignment&gt; AlignmentGetter</code></pre>
+  </div>
+  <h5 class="fieldValue">Field Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<span class="xref">System.Object</span>, <a class="xref" href="Terminal.Gui.TextAlignment.html">TextAlignment</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <h4 id="Terminal_Gui_ColumnStyle_RepresentationGetter" data-uid="Terminal.Gui.ColumnStyle.RepresentationGetter">RepresentationGetter</h4>
+  <div class="markdown level1 summary">
+Defines a delegate for returning custom representations of cell values.  If not set then <span class="xref">System.Object.ToString()</span> is used.  Return values from your delegate may be truncated e.g. based on <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_MaxWidth">MaxWidth</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Func&lt;object, string&gt; RepresentationGetter</code></pre>
+  </div>
+  <h5 class="fieldValue">Field Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<span class="xref">System.Object</span>, <span class="xref">System.String</span>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_Alignment_" data-uid="Terminal.Gui.ColumnStyle.Alignment*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_Alignment" data-uid="Terminal.Gui.ColumnStyle.Alignment">Alignment</h4>
+  <div class="markdown level1 summary">
+Defines the default alignment for all values rendered in this column.  For custom alignment based on cell contents use <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_AlignmentGetter">AlignmentGetter</a>.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TextAlignment Alignment { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.TextAlignment.html">TextAlignment</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_Format_" data-uid="Terminal.Gui.ColumnStyle.Format*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_Format" data-uid="Terminal.Gui.ColumnStyle.Format">Format</h4>
+  <div class="markdown level1 summary">
+Defines the format for values e.g. &quot;yyyy-MM-dd&quot; for dates
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string Format { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_MaxWidth_" data-uid="Terminal.Gui.ColumnStyle.MaxWidth*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_MaxWidth" data-uid="Terminal.Gui.ColumnStyle.MaxWidth">MaxWidth</h4>
+  <div class="markdown level1 summary">
+Set the maximum width of the column in characters.  This value will be ignored if more than the tables <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MaxCellWidth">MaxCellWidth</a>.  Defaults to <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_DefaultMaxCellWidth">DefaultMaxCellWidth</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int MaxWidth { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_MinWidth_" data-uid="Terminal.Gui.ColumnStyle.MinWidth*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_MinWidth" data-uid="Terminal.Gui.ColumnStyle.MinWidth">MinWidth</h4>
+  <div class="markdown level1 summary">
+Set the minimum width of the column in characters.  This value will be ignored if more than the tables <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MaxCellWidth">MaxCellWidth</a> or the <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_MaxWidth">MaxWidth</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int MinWidth { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_GetAlignment_" data-uid="Terminal.Gui.ColumnStyle.GetAlignment*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_GetAlignment_System_Object_" data-uid="Terminal.Gui.ColumnStyle.GetAlignment(System.Object)">GetAlignment(Object)</h4>
+  <div class="markdown level1 summary">
+Returns the alignment for the cell based on <code data-dev-comment-type="paramref" class="paramref">cellValue</code> and <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_AlignmentGetter">AlignmentGetter</a>/<a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_Alignment">Alignment</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TextAlignment GetAlignment(object cellValue)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">cellValue</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.TextAlignment.html">TextAlignment</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ColumnStyle_GetRepresentation_" data-uid="Terminal.Gui.ColumnStyle.GetRepresentation*"></a>
+  <h4 id="Terminal_Gui_ColumnStyle_GetRepresentation_System_Object_" data-uid="Terminal.Gui.ColumnStyle.GetRepresentation(System.Object)">GetRepresentation(Object)</h4>
+  <div class="markdown level1 summary">
+Returns the full string to render (which may be truncated if too long) that the current style says best represents the given <code data-dev-comment-type="paramref" class="paramref">value</code>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string GetRepresentation(object value)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Object</span></td>
+        <td><span class="parametername">value</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 15 - 5
docs/api/Terminal.Gui/Terminal.Gui.ComboBox.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ComboBox
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ ComboBox control
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -372,6 +375,12 @@ ComboBox control
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -1001,7 +1010,8 @@ This event is raised when the selected item in the <a class="xref" href="Termina
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 6 - 5
docs/api/Terminal.Gui/Terminal.Gui.ConsoleDriver.DiagnosticFlags.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum ConsoleDriver.DiagnosticFlags
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -84,7 +84,7 @@
   <h1 id="Terminal_Gui_ConsoleDriver_DiagnosticFlags" data-uid="Terminal.Gui.ConsoleDriver.DiagnosticFlags" class="text-break">Enum ConsoleDriver.DiagnosticFlags
   </h1>
   <div class="markdown level0 summary">
-Enables diagnostic funcions
+Enables diagnostic functions
 </div>
   <div class="markdown level0 conceptual"></div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
@@ -136,7 +136,8 @@ All diagnostics off
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 204 - 6
docs/api/Terminal.Gui/Terminal.Gui.ConsoleDriver.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ConsoleDriver
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -913,6 +913,34 @@ Set flags to enable/disable <a class="xref" href="Terminal.Gui.ConsoleDriver.htm
   </table>
   
   
+  <a id="Terminal_Gui_ConsoleDriver_HeightAsBuffer_" data-uid="Terminal.Gui.ConsoleDriver.HeightAsBuffer*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_HeightAsBuffer" data-uid="Terminal.Gui.ConsoleDriver.HeightAsBuffer">HeightAsBuffer</h4>
+  <div class="markdown level1 summary">
+If false height is measured by the window height and thus no scrolling.
+If true then height is measured by the buffer height, enabling scrolling.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract bool HeightAsBuffer { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ConsoleDriver_Rows_" data-uid="Terminal.Gui.ConsoleDriver.Rows*"></a>
   <h4 id="Terminal_Gui_ConsoleDriver_Rows" data-uid="Terminal.Gui.ConsoleDriver.Rows">Rows</h4>
   <div class="markdown level1 summary">
@@ -938,6 +966,33 @@ The current number of rows in the terminal.
       </tr>
     </tbody>
   </table>
+  
+  
+  <a id="Terminal_Gui_ConsoleDriver_Top_" data-uid="Terminal.Gui.ConsoleDriver.Top*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_Top" data-uid="Terminal.Gui.ConsoleDriver.Top">Top</h4>
+  <div class="markdown level1 summary">
+The current top in the terminal.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract int Top { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="methods">Methods
   </h3>
   
@@ -1050,7 +1105,7 @@ Draws a frame on the specified region with the specified padding around the fram
     </tbody>
   </table>
   <h5 id="Terminal_Gui_ConsoleDriver_DrawFrame_Terminal_Gui_Rect_System_Int32_System_Boolean__remarks">Remarks</h5>
-  <div class="markdown level1 remarks">This API has been superceded by <a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_DrawWindowFrame_Terminal_Gui_Rect_System_Int32_System_Int32_System_Int32_System_Int32_System_Boolean_System_Boolean_">DrawWindowFrame(Rect, Int32, Int32, Int32, Int32, Boolean, Boolean)</a>.</div>
+  <div class="markdown level1 remarks">This API has been superseded by <a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_DrawWindowFrame_Terminal_Gui_Rect_System_Int32_System_Int32_System_Int32_System_Int32_System_Boolean_System_Boolean_">DrawWindowFrame(Rect, Int32, Int32, Int32, Int32, Boolean, Boolean)</a>.</div>
   
   
   <a id="Terminal_Gui_ConsoleDriver_DrawWindowFrame_" data-uid="Terminal.Gui.ConsoleDriver.DrawWindowFrame*"></a>
@@ -1165,7 +1220,7 @@ Draws the title for a Window-style view incorporating padding.
       <tr>
         <td><a class="xref" href="Terminal.Gui.TextAlignment.html">TextAlignment</a></td>
         <td><span class="parametername">textAlignment</span></td>
-        <td>Not yet immplemented.</td>
+        <td>Not yet implemented.</td>
       </tr>
     </tbody>
   </table>
@@ -1183,6 +1238,104 @@ Ends the execution of the console driver.
   </div>
   
   
+  <a id="Terminal_Gui_ConsoleDriver_EnsureCursorVisibility_" data-uid="Terminal.Gui.ConsoleDriver.EnsureCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_EnsureCursorVisibility" data-uid="Terminal.Gui.ConsoleDriver.EnsureCursorVisibility">EnsureCursorVisibility()</h4>
+  <div class="markdown level1 summary">
+Ensure the cursor visibility
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract bool EnsureCursorVisibility()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ConsoleDriver_GetAttribute_" data-uid="Terminal.Gui.ConsoleDriver.GetAttribute*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_GetAttribute" data-uid="Terminal.Gui.ConsoleDriver.GetAttribute">GetAttribute()</h4>
+  <div class="markdown level1 summary">
+Gets the current <a class="xref" href="Terminal.Gui.Attribute.html">Attribute</a>.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract Attribute GetAttribute()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Attribute.html">Attribute</a></td>
+        <td>The current attribute.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ConsoleDriver_GetCursorVisibility_" data-uid="Terminal.Gui.ConsoleDriver.GetCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_GetCursorVisibility_Terminal_Gui_CursorVisibility__" data-uid="Terminal.Gui.ConsoleDriver.GetCursorVisibility(Terminal.Gui.CursorVisibility@)">GetCursorVisibility(out CursorVisibility)</h4>
+  <div class="markdown level1 summary">
+Retreive the cursor caret visibility
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract bool GetCursorVisibility(out CursorVisibility visibility)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+        <td><span class="parametername">visibility</span></td>
+        <td>The current <a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ConsoleDriver_Init_" data-uid="Terminal.Gui.ConsoleDriver.Init*"></a>
   <h4 id="Terminal_Gui_ConsoleDriver_Init_System_Action_" data-uid="Terminal.Gui.ConsoleDriver.Init(System.Action)">Init(Action)</h4>
   <div class="markdown level1 summary">
@@ -1499,6 +1652,50 @@ that independently with the R, G, B values.
   </table>
   
   
+  <a id="Terminal_Gui_ConsoleDriver_SetCursorVisibility_" data-uid="Terminal.Gui.ConsoleDriver.SetCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_ConsoleDriver_SetCursorVisibility_Terminal_Gui_CursorVisibility_" data-uid="Terminal.Gui.ConsoleDriver.SetCursorVisibility(Terminal.Gui.CursorVisibility)">SetCursorVisibility(CursorVisibility)</h4>
+  <div class="markdown level1 summary">
+Change the cursor caret visibility
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public abstract bool SetCursorVisibility(CursorVisibility visibility)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+        <td><span class="parametername">visibility</span></td>
+        <td>The wished <a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ConsoleDriver_SetTerminalResized_" data-uid="Terminal.Gui.ConsoleDriver.SetTerminalResized*"></a>
   <h4 id="Terminal_Gui_ConsoleDriver_SetTerminalResized_System_Action_" data-uid="Terminal.Gui.ConsoleDriver.SetTerminalResized(System.Action)">SetTerminalResized(Action)</h4>
   <div class="markdown level1 summary">
@@ -1608,7 +1805,8 @@ Redraws the physical screen with the contents that have been queued up via any o
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 192 - 0
docs/api/Terminal.Gui/Terminal.Gui.CursorVisibility.html

@@ -0,0 +1,192 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Enum CursorVisibility
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Enum CursorVisibility
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.CursorVisibility">
+  
+  
+  <h1 id="Terminal_Gui_CursorVisibility" data-uid="Terminal.Gui.CursorVisibility" class="text-break">Enum CursorVisibility
+  </h1>
+  <div class="markdown level0 summary">
+Cursors Visibility that are displayed
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_CursorVisibility_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public enum CursorVisibility</code></pre>
+  </div>
+  <h3 id="fields">Fields
+  </h3>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    <thead>
+    <tbody>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_Box">Box</td>
+        <td>
+Cursor caret is displayed as a blinking block ▉
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_BoxFix">BoxFix</td>
+        <td>
+Cursor caret is displayed a block ▉
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_Default">Default</td>
+        <td>
+Cursor caret has default
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_Invisible">Invisible</td>
+        <td>
+Cursor caret is hidden
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_Underline">Underline</td>
+        <td>
+Cursor caret is normally shown as a blinking underline bar _
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_UnderlineFix">UnderlineFix</td>
+        <td>
+Cursor caret is normally shown as a underline bar _
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_Vertical">Vertical</td>
+        <td>
+Cursor caret is displayed a blinking vertical bar |
+</td>
+      </tr>
+      <tr>
+        <td id="Terminal_Gui_CursorVisibility_VerticalFix">VerticalFix</td>
+        <td>
+Cursor caret is displayed a blinking vertical bar |
+</td>
+      </tr>
+    </tbody>
+  </thead></thead></table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 21 - 8
docs/api/Terminal.Gui/Terminal.Gui.DateField.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class DateField
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -163,6 +163,12 @@ Simple Date editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.TextField.html#Terminal_Gui_TextField_OnTextChanging_NStack_ustring_">TextField.OnTextChanging(ustring)</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.TextField.html#Terminal_Gui_TextField_DesiredCursorVisibility">TextField.DesiredCursorVisibility</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.TextField.html#Terminal_Gui_TextField_OnEnter_Terminal_Gui_View_">TextField.OnEnter(View)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Added">View.Added</a>
     </div>
@@ -253,11 +259,14 @@ Simple Date editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -319,9 +328,6 @@ Simple Date editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Focused">View.Focused</a>
     </div>
@@ -430,6 +436,12 @@ Simple Date editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -788,7 +800,8 @@ This event is raised when the <a class="xref" href="Terminal.Gui.DateField.html#
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.DateTimeEventArgs-1.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class DateTimeEventArgs&lt;T&gt;
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -275,7 +275,8 @@ The old <a class="xref" href="Terminal.Gui.DateField.html">DateField</a> or <a c
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 16 - 6
docs/api/Terminal.Gui/Terminal.Gui.Dialog.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Dialog
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -262,11 +262,14 @@ or more <a class="xref" href="Terminal.Gui.Button.html">Button</a>s. It defaults
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -424,6 +427,12 @@ or more <a class="xref" href="Terminal.Gui.Button.html">Button</a>s. It defaults
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -454,7 +463,7 @@ or more <a class="xref" href="Terminal.Gui.Button.html">Button</a>s. It defaults
   </div>
   <h5 id="Terminal_Gui_Dialog_remarks"><strong>Remarks</strong></h5>
   <div class="markdown level0 remarks">
-To run the <a class="xref" href="Terminal.Gui.Dialog.html">Dialog</a> modally, create the <a class="xref" href="Terminal.Gui.Dialog.html">Dialog</a>, and pass it to <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run">Run()</a>. 
+To run the <a class="xref" href="Terminal.Gui.Dialog.html">Dialog</a> modally, create the <a class="xref" href="Terminal.Gui.Dialog.html">Dialog</a>, and pass it to <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__">Run(Func&lt;Exception, Boolean&gt;)</a>. 
 This will execute the dialog until it terminates via the [ESC] or [CTRL-Q] key, or when one of the views
 or buttons added to the dialog calls <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_RequestStop">RequestStop()</a>.
 </div>
@@ -690,7 +699,8 @@ chance to process the keystroke.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Dim.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Dim
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -592,7 +592,8 @@ Subtracts a <a class="xref" href="Terminal.Gui.Dim.html">Dim</a> from a <a class
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.DisplayModeLayout.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum DisplayModeLayout
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -127,7 +127,8 @@ Vertical mode display. It&apos;s the default.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.FakeConsole.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class FakeConsole
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -2833,7 +2833,8 @@
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 228 - 67
docs/api/Terminal.Gui/Terminal.Gui.FakeDriver.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class FakeDriver
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -231,9 +231,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver__ctor_" data-uid="Terminal.Gui.FakeDriver.#ctor*"></a>
   <h4 id="Terminal_Gui_FakeDriver__ctor" data-uid="Terminal.Gui.FakeDriver.#ctor">FakeDriver()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -245,9 +243,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_Cols_" data-uid="Terminal.Gui.FakeDriver.Cols*"></a>
   <h4 id="Terminal_Gui_FakeDriver_Cols" data-uid="Terminal.Gui.FakeDriver.Cols">Cols</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -272,11 +268,36 @@ Implements a mock ConsoleDriver for unit testing
   <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_Cols">ConsoleDriver.Cols</a></div>
   
   
+  <a id="Terminal_Gui_FakeDriver_HeightAsBuffer_" data-uid="Terminal.Gui.FakeDriver.HeightAsBuffer*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_HeightAsBuffer" data-uid="Terminal.Gui.FakeDriver.HeightAsBuffer">HeightAsBuffer</h4>
+  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool HeightAsBuffer { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_HeightAsBuffer">ConsoleDriver.HeightAsBuffer</a></div>
+  
+  
   <a id="Terminal_Gui_FakeDriver_Rows_" data-uid="Terminal.Gui.FakeDriver.Rows*"></a>
   <h4 id="Terminal_Gui_FakeDriver_Rows" data-uid="Terminal.Gui.FakeDriver.Rows">Rows</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -299,15 +320,40 @@ Implements a mock ConsoleDriver for unit testing
   </table>
   <h5 class="overrides">Overrides</h5>
   <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_Rows">ConsoleDriver.Rows</a></div>
+  
+  
+  <a id="Terminal_Gui_FakeDriver_Top_" data-uid="Terminal.Gui.FakeDriver.Top*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_Top" data-uid="Terminal.Gui.FakeDriver.Top">Top</h4>
+  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override int Top { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_Top">ConsoleDriver.Top</a></div>
   <h3 id="methods">Methods
   </h3>
   
   
   <a id="Terminal_Gui_FakeDriver_AddRune_" data-uid="Terminal.Gui.FakeDriver.AddRune*"></a>
   <h4 id="Terminal_Gui_FakeDriver_AddRune_System_Rune_" data-uid="Terminal.Gui.FakeDriver.AddRune(System.Rune)">AddRune(Rune)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -336,9 +382,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_AddStr_" data-uid="Terminal.Gui.FakeDriver.AddStr*"></a>
   <h4 id="Terminal_Gui_FakeDriver_AddStr_NStack_ustring_" data-uid="Terminal.Gui.FakeDriver.AddStr(NStack.ustring)">AddStr(ustring)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -367,9 +411,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_CookMouse_" data-uid="Terminal.Gui.FakeDriver.CookMouse*"></a>
   <h4 id="Terminal_Gui_FakeDriver_CookMouse" data-uid="Terminal.Gui.FakeDriver.CookMouse">CookMouse()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -381,9 +423,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_End_" data-uid="Terminal.Gui.FakeDriver.End*"></a>
   <h4 id="Terminal_Gui_FakeDriver_End" data-uid="Terminal.Gui.FakeDriver.End">End()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -393,11 +433,111 @@ Implements a mock ConsoleDriver for unit testing
   <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_End">ConsoleDriver.End()</a></div>
   
   
-  <a id="Terminal_Gui_FakeDriver_Init_" data-uid="Terminal.Gui.FakeDriver.Init*"></a>
-  <h4 id="Terminal_Gui_FakeDriver_Init_System_Action_" data-uid="Terminal.Gui.FakeDriver.Init(System.Action)">Init(Action)</h4>
+  <a id="Terminal_Gui_FakeDriver_EnsureCursorVisibility_" data-uid="Terminal.Gui.FakeDriver.EnsureCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_EnsureCursorVisibility" data-uid="Terminal.Gui.FakeDriver.EnsureCursorVisibility">EnsureCursorVisibility()</h4>
   <div class="markdown level1 summary">
-
+Ensure the cursor visibility
 </div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool EnsureCursorVisibility()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_EnsureCursorVisibility">ConsoleDriver.EnsureCursorVisibility()</a></div>
+  
+  
+  <a id="Terminal_Gui_FakeDriver_GetAttribute_" data-uid="Terminal.Gui.FakeDriver.GetAttribute*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_GetAttribute" data-uid="Terminal.Gui.FakeDriver.GetAttribute">GetAttribute()</h4>
+  <div class="markdown level1 summary"></div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override Attribute GetAttribute()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Attribute.html">Attribute</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_GetAttribute">ConsoleDriver.GetAttribute()</a></div>
+  
+  
+  <a id="Terminal_Gui_FakeDriver_GetCursorVisibility_" data-uid="Terminal.Gui.FakeDriver.GetCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_GetCursorVisibility_Terminal_Gui_CursorVisibility__" data-uid="Terminal.Gui.FakeDriver.GetCursorVisibility(Terminal.Gui.CursorVisibility@)">GetCursorVisibility(out CursorVisibility)</h4>
+  <div class="markdown level1 summary">
+Retreive the cursor caret visibility
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool GetCursorVisibility(out CursorVisibility visibility)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+        <td><span class="parametername">visibility</span></td>
+        <td>The current <a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_GetCursorVisibility_Terminal_Gui_CursorVisibility__">ConsoleDriver.GetCursorVisibility(out CursorVisibility)</a></div>
+  
+  
+  <a id="Terminal_Gui_FakeDriver_Init_" data-uid="Terminal.Gui.FakeDriver.Init*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_Init_System_Action_" data-uid="Terminal.Gui.FakeDriver.Init(System.Action)">Init(Action)</h4>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -426,9 +566,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_MakeAttribute_" data-uid="Terminal.Gui.FakeDriver.MakeAttribute*"></a>
   <h4 id="Terminal_Gui_FakeDriver_MakeAttribute_Terminal_Gui_Color_Terminal_Gui_Color_" data-uid="Terminal.Gui.FakeDriver.MakeAttribute(Terminal.Gui.Color,Terminal.Gui.Color)">MakeAttribute(Color, Color)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -477,9 +615,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_Move_" data-uid="Terminal.Gui.FakeDriver.Move*"></a>
   <h4 id="Terminal_Gui_FakeDriver_Move_System_Int32_System_Int32_" data-uid="Terminal.Gui.FakeDriver.Move(System.Int32,System.Int32)">Move(Int32, Int32)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -513,9 +649,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_PrepareToRun_" data-uid="Terminal.Gui.FakeDriver.PrepareToRun*"></a>
   <h4 id="Terminal_Gui_FakeDriver_PrepareToRun_Terminal_Gui_MainLoop_System_Action_Terminal_Gui_KeyEvent__System_Action_Terminal_Gui_KeyEvent__System_Action_Terminal_Gui_KeyEvent__System_Action_Terminal_Gui_MouseEvent__" data-uid="Terminal.Gui.FakeDriver.PrepareToRun(Terminal.Gui.MainLoop,System.Action{Terminal.Gui.KeyEvent},System.Action{Terminal.Gui.KeyEvent},System.Action{Terminal.Gui.KeyEvent},System.Action{Terminal.Gui.MouseEvent})">PrepareToRun(MainLoop, Action&lt;KeyEvent&gt;, Action&lt;KeyEvent&gt;, Action&lt;KeyEvent&gt;, Action&lt;MouseEvent&gt;)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -564,9 +698,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_Refresh_" data-uid="Terminal.Gui.FakeDriver.Refresh*"></a>
   <h4 id="Terminal_Gui_FakeDriver_Refresh" data-uid="Terminal.Gui.FakeDriver.Refresh">Refresh()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -578,9 +710,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_SetAttribute_" data-uid="Terminal.Gui.FakeDriver.SetAttribute*"></a>
   <h4 id="Terminal_Gui_FakeDriver_SetAttribute_Terminal_Gui_Attribute_" data-uid="Terminal.Gui.FakeDriver.SetAttribute(Terminal.Gui.Attribute)">SetAttribute(Attribute)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -609,9 +739,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_SetColors_" data-uid="Terminal.Gui.FakeDriver.SetColors*"></a>
   <h4 id="Terminal_Gui_FakeDriver_SetColors_System_ConsoleColor_System_ConsoleColor_" data-uid="Terminal.Gui.FakeDriver.SetColors(System.ConsoleColor,System.ConsoleColor)">SetColors(ConsoleColor, ConsoleColor)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -645,9 +773,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_SetColors_" data-uid="Terminal.Gui.FakeDriver.SetColors*"></a>
   <h4 id="Terminal_Gui_FakeDriver_SetColors_System_Int16_System_Int16_" data-uid="Terminal.Gui.FakeDriver.SetColors(System.Int16,System.Int16)">SetColors(Int16, Int16)</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -679,11 +805,55 @@ Implements a mock ConsoleDriver for unit testing
   <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_SetColors_System_Int16_System_Int16_">ConsoleDriver.SetColors(Int16, Int16)</a></div>
   
   
-  <a id="Terminal_Gui_FakeDriver_StartReportingMouseMoves_" data-uid="Terminal.Gui.FakeDriver.StartReportingMouseMoves*"></a>
-  <h4 id="Terminal_Gui_FakeDriver_StartReportingMouseMoves" data-uid="Terminal.Gui.FakeDriver.StartReportingMouseMoves">StartReportingMouseMoves()</h4>
+  <a id="Terminal_Gui_FakeDriver_SetCursorVisibility_" data-uid="Terminal.Gui.FakeDriver.SetCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_SetCursorVisibility_Terminal_Gui_CursorVisibility_" data-uid="Terminal.Gui.FakeDriver.SetCursorVisibility(Terminal.Gui.CursorVisibility)">SetCursorVisibility(CursorVisibility)</h4>
   <div class="markdown level1 summary">
-
+Change the cursor caret visibility
 </div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool SetCursorVisibility(CursorVisibility visibility)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+        <td><span class="parametername">visibility</span></td>
+        <td>The wished <a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td>true upon success</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.ConsoleDriver.html#Terminal_Gui_ConsoleDriver_SetCursorVisibility_Terminal_Gui_CursorVisibility_">ConsoleDriver.SetCursorVisibility(CursorVisibility)</a></div>
+  
+  
+  <a id="Terminal_Gui_FakeDriver_StartReportingMouseMoves_" data-uid="Terminal.Gui.FakeDriver.StartReportingMouseMoves*"></a>
+  <h4 id="Terminal_Gui_FakeDriver_StartReportingMouseMoves" data-uid="Terminal.Gui.FakeDriver.StartReportingMouseMoves">StartReportingMouseMoves()</h4>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -695,9 +865,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_StopReportingMouseMoves_" data-uid="Terminal.Gui.FakeDriver.StopReportingMouseMoves*"></a>
   <h4 id="Terminal_Gui_FakeDriver_StopReportingMouseMoves" data-uid="Terminal.Gui.FakeDriver.StopReportingMouseMoves">StopReportingMouseMoves()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -709,9 +877,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_Suspend_" data-uid="Terminal.Gui.FakeDriver.Suspend*"></a>
   <h4 id="Terminal_Gui_FakeDriver_Suspend" data-uid="Terminal.Gui.FakeDriver.Suspend">Suspend()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -723,9 +889,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_UncookMouse_" data-uid="Terminal.Gui.FakeDriver.UncookMouse*"></a>
   <h4 id="Terminal_Gui_FakeDriver_UncookMouse" data-uid="Terminal.Gui.FakeDriver.UncookMouse">UncookMouse()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -737,9 +901,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_UpdateCursor_" data-uid="Terminal.Gui.FakeDriver.UpdateCursor*"></a>
   <h4 id="Terminal_Gui_FakeDriver_UpdateCursor" data-uid="Terminal.Gui.FakeDriver.UpdateCursor">UpdateCursor()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -751,9 +913,7 @@ Implements a mock ConsoleDriver for unit testing
   
   <a id="Terminal_Gui_FakeDriver_UpdateScreen_" data-uid="Terminal.Gui.FakeDriver.UpdateScreen*"></a>
   <h4 id="Terminal_Gui_FakeDriver_UpdateScreen" data-uid="Terminal.Gui.FakeDriver.UpdateScreen">UpdateScreen()</h4>
-  <div class="markdown level1 summary">
-
-</div>
+  <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
@@ -771,7 +931,8 @@ Implements a mock ConsoleDriver for unit testing
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 28 - 27
docs/api/Terminal.Gui/Terminal.Gui.NetMainLoop.html → docs/api/Terminal.Gui/Terminal.Gui.FakeMainLoop.html

@@ -5,12 +5,12 @@
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <title>Class NetMainLoop
+    <title>Class FakeMainLoop
    </title>
     <meta name="viewport" content="width=device-width">
-    <meta name="title" content="Class NetMainLoop
+    <meta name="title" content="Class FakeMainLoop
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -78,10 +78,10 @@
         </div>
         <div class="article row grid-right">
           <div class="col-md-10">
-            <article class="content wrap" id="_content" data-uid="Terminal.Gui.NetMainLoop">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.FakeMainLoop">
   
   
-  <h1 id="Terminal_Gui_NetMainLoop" data-uid="Terminal.Gui.NetMainLoop" class="text-break">Class NetMainLoop
+  <h1 id="Terminal_Gui_FakeMainLoop" data-uid="Terminal.Gui.FakeMainLoop" class="text-break">Class FakeMainLoop
   </h1>
   <div class="markdown level0 summary">
 Mainloop intended to be used with the .NET System.Console API, and can
@@ -92,7 +92,7 @@ file descriptor monitoring.
   <div class="inheritance">
     <h5>Inheritance</h5>
     <div class="level0"><span class="xref">System.Object</span></div>
-    <div class="level1"><span class="xref">NetMainLoop</span></div>
+    <div class="level1"><span class="xref">FakeMainLoop</span></div>
   </div>
   <div classs="implements">
     <h5>Implements</h5>
@@ -124,27 +124,27 @@ file descriptor monitoring.
   </div>
   <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
   <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
-  <h5 id="Terminal_Gui_NetMainLoop_syntax">Syntax</h5>
+  <h5 id="Terminal_Gui_FakeMainLoop_syntax">Syntax</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public class NetMainLoop : IMainLoopDriver</code></pre>
+    <pre><code class="lang-csharp hljs">public class FakeMainLoop : IMainLoopDriver</code></pre>
   </div>
-  <h5 id="Terminal_Gui_NetMainLoop_remarks"><strong>Remarks</strong></h5>
+  <h5 id="Terminal_Gui_FakeMainLoop_remarks"><strong>Remarks</strong></h5>
   <div class="markdown level0 remarks">
-This implementation is used for both NetDriver and FakeDriver. 
+This implementation is used for FakeDriver.
 </div>
   <h3 id="constructors">Constructors
   </h3>
   
   
-  <a id="Terminal_Gui_NetMainLoop__ctor_" data-uid="Terminal.Gui.NetMainLoop.#ctor*"></a>
-  <h4 id="Terminal_Gui_NetMainLoop__ctor_System_Func_System_ConsoleKeyInfo__" data-uid="Terminal.Gui.NetMainLoop.#ctor(System.Func{System.ConsoleKeyInfo})">NetMainLoop(Func&lt;ConsoleKeyInfo&gt;)</h4>
+  <a id="Terminal_Gui_FakeMainLoop__ctor_" data-uid="Terminal.Gui.FakeMainLoop.#ctor*"></a>
+  <h4 id="Terminal_Gui_FakeMainLoop__ctor_System_Func_System_ConsoleKeyInfo__" data-uid="Terminal.Gui.FakeMainLoop.#ctor(System.Func{System.ConsoleKeyInfo})">FakeMainLoop(Func&lt;ConsoleKeyInfo&gt;)</h4>
   <div class="markdown level1 summary">
 Initializes the class.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public NetMainLoop(Func&lt;ConsoleKeyInfo&gt; consoleKeyReaderFn = null)</code></pre>
+    <pre><code class="lang-csharp hljs">public FakeMainLoop(Func&lt;ConsoleKeyInfo&gt; consoleKeyReaderFn = null)</code></pre>
   </div>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -163,15 +163,15 @@ Initializes the class.
       </tr>
     </tbody>
   </table>
-  <h5 id="Terminal_Gui_NetMainLoop__ctor_System_Func_System_ConsoleKeyInfo___remarks">Remarks</h5>
+  <h5 id="Terminal_Gui_FakeMainLoop__ctor_System_Func_System_ConsoleKeyInfo___remarks">Remarks</h5>
   <div class="markdown level1 remarks">
-Passing a consoleKeyReaderfn is provided to support unit test sceanrios.
+Passing a consoleKeyReaderfn is provided to support unit test scenarios.
 </div>
   <h3 id="fields">Fields
   </h3>
   
   
-  <h4 id="Terminal_Gui_NetMainLoop_KeyPressed" data-uid="Terminal.Gui.NetMainLoop.KeyPressed">KeyPressed</h4>
+  <h4 id="Terminal_Gui_FakeMainLoop_KeyPressed" data-uid="Terminal.Gui.FakeMainLoop.KeyPressed">KeyPressed</h4>
   <div class="markdown level1 summary">
 Invoked when a Key is pressed.
 </div>
@@ -199,8 +199,8 @@ Invoked when a Key is pressed.
   </h3>
   
   
-  <a id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_EventsPending_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#EventsPending*"></a>
-  <h4 id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_EventsPending_System_Boolean_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#EventsPending(System.Boolean)">IMainLoopDriver.EventsPending(Boolean)</h4>
+  <a id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_EventsPending_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#EventsPending*"></a>
+  <h4 id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_EventsPending_System_Boolean_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#EventsPending(System.Boolean)">IMainLoopDriver.EventsPending(Boolean)</h4>
   <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -241,8 +241,8 @@ Invoked when a Key is pressed.
   </table>
   
   
-  <a id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_MainIteration_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#MainIteration*"></a>
-  <h4 id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_MainIteration" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#MainIteration">IMainLoopDriver.MainIteration()</h4>
+  <a id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_MainIteration_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#MainIteration*"></a>
+  <h4 id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_MainIteration" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#MainIteration">IMainLoopDriver.MainIteration()</h4>
   <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -251,8 +251,8 @@ Invoked when a Key is pressed.
   </div>
   
   
-  <a id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_Setup_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#Setup*"></a>
-  <h4 id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_Setup_Terminal_Gui_MainLoop_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#Setup(Terminal.Gui.MainLoop)">IMainLoopDriver.Setup(MainLoop)</h4>
+  <a id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_Setup_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#Setup*"></a>
+  <h4 id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_Setup_Terminal_Gui_MainLoop_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#Setup(Terminal.Gui.MainLoop)">IMainLoopDriver.Setup(MainLoop)</h4>
   <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -278,8 +278,8 @@ Invoked when a Key is pressed.
   </table>
   
   
-  <a id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_Wakeup_" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#Wakeup*"></a>
-  <h4 id="Terminal_Gui_NetMainLoop_Terminal_Gui_IMainLoopDriver_Wakeup" data-uid="Terminal.Gui.NetMainLoop.Terminal#Gui#IMainLoopDriver#Wakeup">IMainLoopDriver.Wakeup()</h4>
+  <a id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_Wakeup_" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#Wakeup*"></a>
+  <h4 id="Terminal_Gui_FakeMainLoop_Terminal_Gui_IMainLoopDriver_Wakeup" data-uid="Terminal.Gui.FakeMainLoop.Terminal#Gui#IMainLoopDriver#Wakeup">IMainLoopDriver.Wakeup()</h4>
   <div class="markdown level1 summary"></div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -300,7 +300,8 @@ Invoked when a Key is pressed.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 16 - 6
docs/api/Terminal.Gui/Terminal.Gui.FileDialog.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class FileDialog
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -266,11 +266,14 @@ Base class for the <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialo
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -428,6 +431,12 @@ Base class for the <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialo
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -793,7 +802,7 @@ Gets or sets the prompt label for the <a class="xref" href="Terminal.Gui.Button.
   <a id="Terminal_Gui_FileDialog_WillPresent_" data-uid="Terminal.Gui.FileDialog.WillPresent*"></a>
   <h4 id="Terminal_Gui_FileDialog_WillPresent" data-uid="Terminal.Gui.FileDialog.WillPresent">WillPresent()</h4>
   <div class="markdown level1 summary">
-Invoked by <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Begin_Terminal_Gui_Toplevel_">Begin(Toplevel)</a> as part of the <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_">Run(Toplevel)</a> after
+Invoked by <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Begin_Terminal_Gui_Toplevel_">Begin(Toplevel)</a> as part of the <a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_Terminal_Gui_Toplevel_System_Func_System_Exception_System_Boolean__">Run(Toplevel, Func&lt;Exception, Boolean&gt;)</a> after
 the views have been laid out, and before the views are drawn for the first time.
 </div>
   <div class="markdown level1 conceptual"></div>
@@ -823,7 +832,8 @@ the views have been laid out, and before the views are drawn for the first time.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.FrameView.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class FrameView
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -199,11 +199,14 @@ a GroupBox in Windows.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -259,9 +262,6 @@ a GroupBox in Windows.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -373,6 +373,12 @@ a GroupBox in Windows.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a>
     </div>
@@ -642,6 +648,52 @@ Add the specified <a class="xref" href="Terminal.Gui.View.html">View</a> to this
   <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a></div>
   
   
+  <a id="Terminal_Gui_FrameView_OnEnter_" data-uid="Terminal.Gui.FrameView.OnEnter*"></a>
+  <h4 id="Terminal_Gui_FrameView_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.FrameView.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_FrameView_Redraw_" data-uid="Terminal.Gui.FrameView.Redraw*"></a>
   <h4 id="Terminal_Gui_FrameView_Redraw_Terminal_Gui_Rect_" data-uid="Terminal.Gui.FrameView.Redraw(Terminal.Gui.Rect)">Redraw(Rect)</h4>
   <div class="markdown level1 summary">
@@ -756,7 +808,8 @@ Removes all <a class="xref" href="Terminal.Gui.View.html">View</a>s from this co
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 42 - 5
docs/api/Terminal.Gui/Terminal.Gui.HexView.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class HexView
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -195,11 +195,14 @@ An hex viewer and editor <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -378,6 +381,12 @@ An hex viewer and editor <a class="xref" href="Terminal.Gui.View.html">View</a>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a>
     </div>
@@ -506,6 +515,33 @@ of the underlying <span class="xref">System.IO.Stream</span>.
   </table>
   
   
+  <a id="Terminal_Gui_HexView_DesiredCursorVisibility_" data-uid="Terminal.Gui.HexView.DesiredCursorVisibility*"></a>
+  <h4 id="Terminal_Gui_HexView_DesiredCursorVisibility" data-uid="Terminal.Gui.HexView.DesiredCursorVisibility">DesiredCursorVisibility</h4>
+  <div class="markdown level1 summary">
+Get / Set the wished cursor when the field is focused
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public CursorVisibility DesiredCursorVisibility { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CursorVisibility.html">CursorVisibility</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_HexView_DisplayStart_" data-uid="Terminal.Gui.HexView.DisplayStart*"></a>
   <h4 id="Terminal_Gui_HexView_DisplayStart" data-uid="Terminal.Gui.HexView.DisplayStart">DisplayStart</h4>
   <div class="markdown level1 summary">
@@ -785,7 +821,8 @@ Redraws this view and its subviews; only redraws the views that have been flagge
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 40 - 7
docs/api/Terminal.Gui/Terminal.Gui.IListDataSource.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Interface IListDataSource
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -122,6 +122,33 @@ Returns the number of elements to display
       </tr>
     </tbody>
   </table>
+  
+  
+  <a id="Terminal_Gui_IListDataSource_Length_" data-uid="Terminal.Gui.IListDataSource.Length*"></a>
+  <h4 id="Terminal_Gui_IListDataSource_Length" data-uid="Terminal.Gui.IListDataSource.Length">Length</h4>
+  <div class="markdown level1 summary">
+Returns the maximum length of elements to display
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">int Length { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="methods">Methods
   </h3>
   
@@ -171,14 +198,14 @@ Should return whether the specified item is currently marked.
   
   
   <a id="Terminal_Gui_IListDataSource_Render_" data-uid="Terminal.Gui.IListDataSource.Render*"></a>
-  <h4 id="Terminal_Gui_IListDataSource_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Terminal.Gui.IListDataSource.Render(Terminal.Gui.ListView,Terminal.Gui.ConsoleDriver,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32)">Render(ListView, ConsoleDriver, Boolean, Int32, Int32, Int32, Int32)</h4>
+  <h4 id="Terminal_Gui_IListDataSource_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Terminal.Gui.IListDataSource.Render(Terminal.Gui.ListView,Terminal.Gui.ConsoleDriver,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">Render(ListView, ConsoleDriver, Boolean, Int32, Int32, Int32, Int32, Int32)</h4>
   <div class="markdown level1 summary">
 This method is invoked to render a specified item, the method should cover the entire provided width.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">void Render(ListView container, ConsoleDriver driver, bool selected, int item, int col, int line, int width)</code></pre>
+    <pre><code class="lang-csharp hljs">void Render(ListView container, ConsoleDriver driver, bool selected, int item, int col, int line, int width, int start = 0)</code></pre>
   </div>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -225,9 +252,14 @@ This method is invoked to render a specified item, the method should cover the e
         <td><span class="parametername">width</span></td>
         <td>The width that must be filled out.</td>
       </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">start</span></td>
+        <td>The index of the string to be displayed.</td>
+      </tr>
     </tbody>
   </table>
-  <h5 id="Terminal_Gui_IListDataSource_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32__remarks">Remarks</h5>
+  <h5 id="Terminal_Gui_IListDataSource_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32_System_Int32__remarks">Remarks</h5>
   <div class="markdown level1 remarks">
 The default color will be set before this method is invoked, and will be based on whether the item is selected or not.
 </div>
@@ -302,7 +334,8 @@ Return the source as IList.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.IMainLoopDriver.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Interface IMainLoopDriver
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -202,7 +202,8 @@ Wakes up the mainloop that might be waiting on input, must be thread safe.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Key.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum Key
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -570,7 +570,8 @@ The key code for the user pressing Shift-Z
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.KeyEvent.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class KeyEvent
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -429,7 +429,8 @@ Pretty prints the KeyEvent
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.KeyModifiers.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class KeyModifiers
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -290,7 +290,8 @@ Check if the Shift key was pressed or not.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.Label.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Label
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ The Label <a class="xref" href="Terminal.Gui.View.html">View</a> displays a stri
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -267,9 +270,6 @@ The Label <a class="xref" href="Terminal.Gui.View.html">View</a> displays a stri
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -387,6 +387,12 @@ The Label <a class="xref" href="Terminal.Gui.View.html">View</a> displays a stri
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a>
     </div>
@@ -608,6 +614,52 @@ Initializes a new instance of <a class="xref" href="Terminal.Gui.View.html">View
   </h3>
   
   
+  <a id="Terminal_Gui_Label_OnEnter_" data-uid="Terminal.Gui.Label.OnEnter*"></a>
+  <h4 id="Terminal_Gui_Label_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.Label.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_Label_OnMouseEvent_" data-uid="Terminal.Gui.Label.OnMouseEvent*"></a>
   <h4 id="Terminal_Gui_Label_OnMouseEvent_Terminal_Gui_MouseEvent_" data-uid="Terminal.Gui.Label.OnMouseEvent(Terminal.Gui.MouseEvent)">OnMouseEvent(MouseEvent)</h4>
   <div class="markdown level1 summary">
@@ -707,7 +759,8 @@ the mouse or the keyboard.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.LayoutStyle.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum LayoutStyle
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -130,7 +130,8 @@ X, Y, Width and Height properties and set on the Frame.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 186 - 6
docs/api/Terminal.Gui/Terminal.Gui.ListView.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ListView
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ ListView <a class="xref" href="Terminal.Gui.View.html">View</a> renders a scroll
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -375,6 +378,12 @@ ListView <a class="xref" href="Terminal.Gui.View.html">View</a> renders a scroll
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -639,6 +648,60 @@ If set to true allows more than one item to be selected. If false only allow one
   </table>
   
   
+  <a id="Terminal_Gui_ListView_LeftItem_" data-uid="Terminal.Gui.ListView.LeftItem*"></a>
+  <h4 id="Terminal_Gui_ListView_LeftItem" data-uid="Terminal.Gui.ListView.LeftItem">LeftItem</h4>
+  <div class="markdown level1 summary">
+Gets or sets the left column where the item start to be displayed at on the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a>.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int LeftItem { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td>The left position.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ListView_Maxlength_" data-uid="Terminal.Gui.ListView.Maxlength*"></a>
+  <h4 id="Terminal_Gui_ListView_Maxlength" data-uid="Terminal.Gui.ListView.Maxlength">Maxlength</h4>
+  <div class="markdown level1 summary">
+Gets the widest item.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int Maxlength { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ListView_SelectedItem_" data-uid="Terminal.Gui.ListView.SelectedItem*"></a>
   <h4 id="Terminal_Gui_ListView_SelectedItem" data-uid="Terminal.Gui.ListView.SelectedItem">SelectedItem</h4>
   <div class="markdown level1 summary">
@@ -1259,6 +1322,122 @@ Redraws this view and its subviews; only redraws the views that have been flagge
 </div>
   
   
+  <a id="Terminal_Gui_ListView_ScrollDown_" data-uid="Terminal.Gui.ListView.ScrollDown*"></a>
+  <h4 id="Terminal_Gui_ListView_ScrollDown_System_Int32_" data-uid="Terminal.Gui.ListView.ScrollDown(System.Int32)">ScrollDown(Int32)</h4>
+  <div class="markdown level1 summary">
+Scrolls the view down.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void ScrollDown(int lines)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">lines</span></td>
+        <td>Number of lines to scroll down.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ListView_ScrollLeft_" data-uid="Terminal.Gui.ListView.ScrollLeft*"></a>
+  <h4 id="Terminal_Gui_ListView_ScrollLeft_System_Int32_" data-uid="Terminal.Gui.ListView.ScrollLeft(System.Int32)">ScrollLeft(Int32)</h4>
+  <div class="markdown level1 summary">
+Scrolls the view left.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void ScrollLeft(int cols)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">cols</span></td>
+        <td>Number of columns to scroll left.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ListView_ScrollRight_" data-uid="Terminal.Gui.ListView.ScrollRight*"></a>
+  <h4 id="Terminal_Gui_ListView_ScrollRight_System_Int32_" data-uid="Terminal.Gui.ListView.ScrollRight(System.Int32)">ScrollRight(Int32)</h4>
+  <div class="markdown level1 summary">
+Scrolls the view right.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void ScrollRight(int cols)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">cols</span></td>
+        <td>Number of columns to scroll right.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ListView_ScrollUp_" data-uid="Terminal.Gui.ListView.ScrollUp*"></a>
+  <h4 id="Terminal_Gui_ListView_ScrollUp_System_Int32_" data-uid="Terminal.Gui.ListView.ScrollUp(System.Int32)">ScrollUp(Int32)</h4>
+  <div class="markdown level1 summary">
+Scrolls the view up.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void ScrollUp(int lines)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">lines</span></td>
+        <td>Number of lines to scroll up.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ListView_SetSource_" data-uid="Terminal.Gui.ListView.SetSource*"></a>
   <h4 id="Terminal_Gui_ListView_SetSource_System_Collections_IList_" data-uid="Terminal.Gui.ListView.SetSource(System.Collections.IList)">SetSource(IList)</h4>
   <div class="markdown level1 summary">
@@ -1336,7 +1515,7 @@ Sets the source to an <span class="xref">System.Collections.IList</span> value a
   </table>
   <h5 id="Terminal_Gui_ListView_SetSourceAsync_System_Collections_IList__remarks">Remarks</h5>
   <div class="markdown level1 remarks">
-Use the <a class="xref" href="Terminal.Gui.ListView.html#Terminal_Gui_ListView_Source">Source</a> property to set a new <a class="xref" href="Terminal.Gui.IListDataSource.html">IListDataSource</a> source and use custome rendering.
+Use the <a class="xref" href="Terminal.Gui.ListView.html#Terminal_Gui_ListView_Source">Source</a> property to set a new <a class="xref" href="Terminal.Gui.IListDataSource.html">IListDataSource</a> source and use custom rendering.
 </div>
   <h3 id="events">Events
   </h3>
@@ -1412,7 +1591,8 @@ This event is raised when the selected item in the <a class="xref" href="Termina
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 7 - 6
docs/api/Terminal.Gui/Terminal.Gui.ListViewItemEventArgs.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ListViewItemEventArgs
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -153,7 +153,7 @@ Initializes a new instance of <a class="xref" href="Terminal.Gui.ListViewItemEve
       <tr>
         <td><span class="xref">System.Int32</span></td>
         <td><span class="parametername">item</span></td>
-        <td>The index of the the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item.</td>
+        <td>The index of the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item.</td>
       </tr>
       <tr>
         <td><span class="xref">System.Object</span></td>
@@ -196,7 +196,7 @@ The index of the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a>
   <a id="Terminal_Gui_ListViewItemEventArgs_Value_" data-uid="Terminal.Gui.ListViewItemEventArgs.Value*"></a>
   <h4 id="Terminal_Gui_ListViewItemEventArgs_Value" data-uid="Terminal.Gui.ListViewItemEventArgs.Value">Value</h4>
   <div class="markdown level1 summary">
-The the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item.
+The <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -228,7 +228,8 @@ The the <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 39 - 6
docs/api/Terminal.Gui/Terminal.Gui.ListWrapper.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ListWrapper
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -188,6 +188,33 @@ Gets the number of items in the <span class="xref">System.Collections.IList</spa
       </tr>
     </tbody>
   </table>
+  
+  
+  <a id="Terminal_Gui_ListWrapper_Length_" data-uid="Terminal.Gui.ListWrapper.Length*"></a>
+  <h4 id="Terminal_Gui_ListWrapper_Length" data-uid="Terminal.Gui.ListWrapper.Length">Length</h4>
+  <div class="markdown level1 summary">
+Gets the maximum item length in the <span class="xref">System.Collections.IList</span>.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int Length { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="methods">Methods
   </h3>
   
@@ -237,14 +264,14 @@ Returns true if the item is marked, false otherwise.
   
   
   <a id="Terminal_Gui_ListWrapper_Render_" data-uid="Terminal.Gui.ListWrapper.Render*"></a>
-  <h4 id="Terminal_Gui_ListWrapper_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Terminal.Gui.ListWrapper.Render(Terminal.Gui.ListView,Terminal.Gui.ConsoleDriver,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32)">Render(ListView, ConsoleDriver, Boolean, Int32, Int32, Int32, Int32)</h4>
+  <h4 id="Terminal_Gui_ListWrapper_Render_Terminal_Gui_ListView_Terminal_Gui_ConsoleDriver_System_Boolean_System_Int32_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Terminal.Gui.ListWrapper.Render(Terminal.Gui.ListView,Terminal.Gui.ConsoleDriver,System.Boolean,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">Render(ListView, ConsoleDriver, Boolean, Int32, Int32, Int32, Int32, Int32)</h4>
   <div class="markdown level1 summary">
 Renders a <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item to the appropriate type.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public void Render(ListView container, ConsoleDriver driver, bool marked, int item, int col, int line, int width)</code></pre>
+    <pre><code class="lang-csharp hljs">public void Render(ListView container, ConsoleDriver driver, bool marked, int item, int col, int line, int width, int start = 0)</code></pre>
   </div>
   <h5 class="parameters">Parameters</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -291,6 +318,11 @@ Renders a <a class="xref" href="Terminal.Gui.ListView.html">ListView</a> item to
         <td><span class="parametername">width</span></td>
         <td>The item width.</td>
       </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">start</span></td>
+        <td>The index of the string to be displayed.</td>
+      </tr>
     </tbody>
   </table>
   
@@ -368,7 +400,8 @@ Returns the source as IList.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MainLoop.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class MainLoop
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -495,7 +495,8 @@ Stops the mainloop.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.MenuBar.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class MenuBar
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ The MenuBar provides a menu for Terminal.Gui applications.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -264,9 +267,6 @@ The MenuBar provides a menu for Terminal.Gui applications.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Focused">View.Focused</a>
     </div>
@@ -366,6 +366,12 @@ The MenuBar provides a menu for Terminal.Gui applications.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -645,6 +651,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_MenuBar_OnEnter_" data-uid="Terminal.Gui.MenuBar.OnEnter*"></a>
+  <h4 id="Terminal_Gui_MenuBar_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.MenuBar.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_MenuBar_OnKeyDown_" data-uid="Terminal.Gui.MenuBar.OnKeyDown*"></a>
   <h4 id="Terminal_Gui_MenuBar_OnKeyDown_Terminal_Gui_KeyEvent_" data-uid="Terminal.Gui.MenuBar.OnKeyDown(Terminal.Gui.KeyEvent)">OnKeyDown(KeyEvent)</h4>
   <div class="markdown level1 summary"></div>
@@ -1142,7 +1194,8 @@ Raised as a menu is opening.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 44 - 4
docs/api/Terminal.Gui/Terminal.Gui.MenuBarItem.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class MenuBarItem
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -227,6 +227,45 @@ Initializes a new <a class="xref" href="Terminal.Gui.MenuBarItem.html">MenuBarIt
   </table>
   
   
+  <a id="Terminal_Gui_MenuBarItem__ctor_" data-uid="Terminal.Gui.MenuBarItem.#ctor*"></a>
+  <h4 id="Terminal_Gui_MenuBarItem__ctor_NStack_ustring_System_Collections_Generic_List_Terminal_Gui_MenuItem____Terminal_Gui_MenuItem_" data-uid="Terminal.Gui.MenuBarItem.#ctor(NStack.ustring,System.Collections.Generic.List{Terminal.Gui.MenuItem[]},Terminal.Gui.MenuItem)">MenuBarItem(ustring, List&lt;MenuItem[]&gt;, MenuItem)</h4>
+  <div class="markdown level1 summary">
+Initializes a new <a class="xref" href="Terminal.Gui.MenuBarItem.html">MenuBarItem</a> with separate list of items.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public MenuBarItem(ustring title, List&lt;MenuItem[]&gt; children, MenuItem parent = null)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">NStack.ustring</span></td>
+        <td><span class="parametername">title</span></td>
+        <td>Title for the menu item.</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.List</span>&lt;<a class="xref" href="Terminal.Gui.MenuItem.html">MenuItem</a>[]&gt;</td>
+        <td><span class="parametername">children</span></td>
+        <td>The list of items in the current menu.</td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.MenuItem.html">MenuItem</a></td>
+        <td><span class="parametername">parent</span></td>
+        <td>The parent <a class="xref" href="Terminal.Gui.MenuItem.html">MenuItem</a> of this if exist, otherwise is null.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_MenuBarItem__ctor_" data-uid="Terminal.Gui.MenuBarItem.#ctor*"></a>
   <h4 id="Terminal_Gui_MenuBarItem__ctor_NStack_ustring_Terminal_Gui_MenuItem___Terminal_Gui_MenuItem_" data-uid="Terminal.Gui.MenuBarItem.#ctor(NStack.ustring,Terminal.Gui.MenuItem[],Terminal.Gui.MenuItem)">MenuBarItem(ustring, MenuItem[], MenuItem)</h4>
   <div class="markdown level1 summary">
@@ -466,7 +505,8 @@ Check if the children parameter is a <a class="xref" href="Terminal.Gui.MenuBarI
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MenuItem.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class MenuItem
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -576,7 +576,8 @@ Shortcut to check if the menu item is enabled
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MenuItemCheckStyle.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum MenuItemCheckStyle
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -134,7 +134,8 @@ The menu item is part of a menu radio group (see <a class="xref" href="Terminal.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MessageBox.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class MessageBox
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -396,7 +396,8 @@ Use <a class="xref" href="Terminal.Gui.MessageBox.html#Terminal_Gui_MessageBox_Q
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MouseEvent.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Struct MouseEvent
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -310,7 +310,8 @@ Returns a <span class="xref">System.String</span> that represents the current <a
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.MouseFlags.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum MouseFlags
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -294,7 +294,8 @@ Vertical button wheeled up.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 16 - 6
docs/api/Terminal.Gui/Terminal.Gui.OpenDialog.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class OpenDialog
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -298,11 +298,14 @@ The <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialog</a>provides a
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -460,6 +463,12 @@ The <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialog</a>provides a
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -497,7 +506,7 @@ The <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialog</a>provides a
 </p>
 <p>
   To use, create an instance of <a class="xref" href="Terminal.Gui.OpenDialog.html">OpenDialog</a>, and pass it to
-<a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run">Run()</a>. This will run the dialog modally,
+<a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__">Run(Func&lt;Exception, Boolean&gt;)</a>. This will run the dialog modally,
 and when this returns, the list of filds will be available on the <a class="xref" href="Terminal.Gui.OpenDialog.html#Terminal_Gui_OpenDialog_FilePaths">FilePaths</a> property.
 </p>
 <p>
@@ -682,7 +691,8 @@ Returns the selected files, or an empty list if nothing has been selected
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Point.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Struct Point
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -857,7 +857,8 @@ and Height properties of the given Size.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Pos.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Pos
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -752,7 +752,8 @@ Subtracts a <a class="xref" href="Terminal.Gui.Pos.html">Pos</a> from a <a class
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.ProgressBar.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ProgressBar
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ A Progress Bar view that can indicate progress of an activity visually.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -267,9 +270,6 @@ A Progress Bar view that can indicate progress of an activity visually.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -387,6 +387,12 @@ A Progress Bar view that can indicate progress of an activity visually.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a>
     </div>
@@ -505,6 +511,52 @@ Gets or sets the <a class="xref" href="Terminal.Gui.ProgressBar.html">ProgressBa
   </h3>
   
   
+  <a id="Terminal_Gui_ProgressBar_OnEnter_" data-uid="Terminal.Gui.ProgressBar.OnEnter*"></a>
+  <h4 id="Terminal_Gui_ProgressBar_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.ProgressBar.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_ProgressBar_Pulse_" data-uid="Terminal.Gui.ProgressBar.Pulse*"></a>
   <h4 id="Terminal_Gui_ProgressBar_Pulse" data-uid="Terminal.Gui.ProgressBar.Pulse">Pulse()</h4>
   <div class="markdown level1 summary">
@@ -585,7 +637,8 @@ Redraws this view and its subviews; only redraws the views that have been flagge
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.SelectedItemChangedArgs.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class RadioGroup.SelectedItemChangedArgs
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -228,7 +228,8 @@ Gets the index of the item that is now selected. -1 if there is no selection.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class RadioGroup
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -264,9 +267,6 @@
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -378,6 +378,12 @@
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -698,6 +704,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_RadioGroup_OnEnter_" data-uid="Terminal.Gui.RadioGroup.OnEnter*"></a>
+  <h4 id="Terminal_Gui_RadioGroup_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.RadioGroup.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_RadioGroup_OnSelectedItemChanged_" data-uid="Terminal.Gui.RadioGroup.OnSelectedItemChanged*"></a>
   <h4 id="Terminal_Gui_RadioGroup_OnSelectedItemChanged_System_Int32_System_Int32_" data-uid="Terminal.Gui.RadioGroup.OnSelectedItemChanged(System.Int32,System.Int32)">OnSelectedItemChanged(Int32, Int32)</h4>
   <div class="markdown level1 summary">
@@ -980,7 +1032,8 @@ Invoked when the selected radio label has changed.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Rect.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Struct Rect
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -1400,7 +1400,8 @@ properties of the two Rectangles.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Responder.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class Responder
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -747,7 +747,8 @@ chance to process the keystroke.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 16 - 6
docs/api/Terminal.Gui/Terminal.Gui.SaveDialog.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class SaveDialog
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -299,11 +299,14 @@ save.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -461,6 +464,12 @@ save.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -493,7 +502,7 @@ save.
   <div class="markdown level0 remarks">
 <p>
   To use, create an instance of <a class="xref" href="Terminal.Gui.SaveDialog.html">SaveDialog</a>, and pass it to
-<a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run">Run()</a>. This will run the dialog modally,
+<a class="xref" href="Terminal.Gui.Application.html#Terminal_Gui_Application_Run_System_Func_System_Exception_System_Boolean__">Run(Func&lt;Exception, Boolean&gt;)</a>. This will run the dialog modally,
 and when this returns, the <a class="xref" href="Terminal.Gui.SaveDialog.html#Terminal_Gui_SaveDialog_FileName">FileName</a>property will contain the selected file name or 
 null if the user canceled. 
 </p>
@@ -596,7 +605,8 @@ if the user canceled the <a class="xref" href="Terminal.Gui.SaveDialog.html">Sav
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 237 - 13
docs/api/Terminal.Gui/Terminal.Gui.ScrollBarView.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ScrollBarView
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ ScrollBarViews are views that display a 1-character scrollbar, either horizontal
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -267,9 +270,6 @@ ScrollBarViews are views that display a 1-character scrollbar, either horizontal
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -387,6 +387,12 @@ ScrollBarViews are views that display a 1-character scrollbar, either horizontal
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -552,19 +558,85 @@ Initializes a new instance of the <a class="xref" href="Terminal.Gui.ScrollBarVi
       </tr>
     </tbody>
   </table>
+  
+  
+  <a id="Terminal_Gui_ScrollBarView__ctor_" data-uid="Terminal.Gui.ScrollBarView.#ctor*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView__ctor_Terminal_Gui_View_System_Boolean_System_Boolean_" data-uid="Terminal.Gui.ScrollBarView.#ctor(Terminal.Gui.View,System.Boolean,System.Boolean)">ScrollBarView(View, Boolean, Boolean)</h4>
+  <div class="markdown level1 summary">
+Initializes a new instance of the <a class="xref" href="Terminal.Gui.ScrollBarView.html">ScrollBarView</a> class using <a class="xref" href="Terminal.Gui.LayoutStyle.html#Terminal_Gui_LayoutStyle_Computed">Computed</a> layout.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public ScrollBarView(View host, bool isVertical, bool showBothScrollIndicator = true)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">host</span></td>
+        <td>The view that will host this scrollbar.</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><span class="parametername">isVertical</span></td>
+        <td>If set to <code>true</code> this is a vertical scrollbar, otherwise, the scrollbar is horizontal.</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><span class="parametername">showBothScrollIndicator</span></td>
+        <td>If set to <code>true (default)</code> will have the other scrollbar, otherwise will have only one.</td>
+      </tr>
+    </tbody>
+  </table>
   <h3 id="properties">Properties
   </h3>
   
   
+  <a id="Terminal_Gui_ScrollBarView_AutoHideScrollBars_" data-uid="Terminal.Gui.ScrollBarView.AutoHideScrollBars*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_AutoHideScrollBars" data-uid="Terminal.Gui.ScrollBarView.AutoHideScrollBars">AutoHideScrollBars</h4>
+  <div class="markdown level1 summary">
+If true the vertical/horizontal scroll bars won&apos;t be showed if it&apos;s not needed.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool AutoHideScrollBars { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ScrollBarView_Host_" data-uid="Terminal.Gui.ScrollBarView.Host*"></a>
   <h4 id="Terminal_Gui_ScrollBarView_Host" data-uid="Terminal.Gui.ScrollBarView.Host">Host</h4>
   <div class="markdown level1 summary">
-Get or sets the view that host this <a class="xref" href="Terminal.Gui.ScrollView.html">ScrollView</a>
+Get or sets the view that host this <a class="xref" href="Terminal.Gui.View.html">View</a>
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public ScrollView Host { get; }</code></pre>
+    <pre><code class="lang-csharp hljs">public View Host { get; }</code></pre>
   </div>
   <h5 class="propertyValue">Property Value</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -576,7 +648,7 @@ Get or sets the view that host this <a class="xref" href="Terminal.Gui.ScrollVie
     </thead>
     <tbody>
       <tr>
-        <td><a class="xref" href="Terminal.Gui.ScrollView.html">ScrollView</a></td>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
         <td></td>
       </tr>
     </tbody>
@@ -610,6 +682,60 @@ If set to <code>true</code> this is a vertical scrollbar, otherwise, the scrollb
   </table>
   
   
+  <a id="Terminal_Gui_ScrollBarView_KeepContentAlwaysInViewport_" data-uid="Terminal.Gui.ScrollBarView.KeepContentAlwaysInViewport*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_KeepContentAlwaysInViewport" data-uid="Terminal.Gui.ScrollBarView.KeepContentAlwaysInViewport">KeepContentAlwaysInViewport</h4>
+  <div class="markdown level1 summary">
+Get or sets if the view-port is kept always visible in the area of this <a class="xref" href="Terminal.Gui.ScrollBarView.html">ScrollBarView</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool KeepContentAlwaysInViewport { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_ScrollBarView_OtherScrollBarView_" data-uid="Terminal.Gui.ScrollBarView.OtherScrollBarView*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_OtherScrollBarView" data-uid="Terminal.Gui.ScrollBarView.OtherScrollBarView">OtherScrollBarView</h4>
+  <div class="markdown level1 summary">
+Represent a vertical or horizontal ScrollBarView other than this.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public ScrollBarView OtherScrollBarView { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.ScrollBarView.html">ScrollBarView</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ScrollBarView_Position_" data-uid="Terminal.Gui.ScrollBarView.Position*"></a>
   <h4 id="Terminal_Gui_ScrollBarView_Position" data-uid="Terminal.Gui.ScrollBarView.Position">Position</h4>
   <div class="markdown level1 summary">
@@ -637,10 +763,37 @@ The position, relative to <a class="xref" href="Terminal.Gui.ScrollBarView.html#
   </table>
   
   
+  <a id="Terminal_Gui_ScrollBarView_ShowScrollIndicator_" data-uid="Terminal.Gui.ScrollBarView.ShowScrollIndicator*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_ShowScrollIndicator" data-uid="Terminal.Gui.ScrollBarView.ShowScrollIndicator">ShowScrollIndicator</h4>
+  <div class="markdown level1 summary">
+Gets or sets the visibility for the vertical or horizontal scroll indicator.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool ShowScrollIndicator { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code> if show vertical or horizontal scroll indicator; otherwise, <code>false</code>.</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_ScrollBarView_Size_" data-uid="Terminal.Gui.ScrollBarView.Size*"></a>
   <h4 id="Terminal_Gui_ScrollBarView_Size" data-uid="Terminal.Gui.ScrollBarView.Size">Size</h4>
   <div class="markdown level1 summary">
-The size of content the scrollbar represents. 
+The size of content the scrollbar represents.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -664,7 +817,7 @@ The size of content the scrollbar represents.
   </table>
   <h5 id="Terminal_Gui_ScrollBarView_Size_remarks">Remarks</h5>
   <div class="markdown level1 remarks">The <a class="xref" href="Terminal.Gui.ScrollBarView.html#Terminal_Gui_ScrollBarView_Size">Size</a> is typically the size of the virtual content. E.g. when a Scrollbar is
-part of a <a class="xref" href="Terminal.Gui.ScrollView.html">ScrollView</a> the Size is set to the appropriate dimension of <a class="xref" href="Terminal.Gui.ScrollView.html#Terminal_Gui_ScrollView_ContentSize">ContentSize</a>.</div>
+part of a <a class="xref" href="Terminal.Gui.View.html">View</a> the Size is set to the appropriate dimension of <a class="xref" href="Terminal.Gui.ScrollBarView.html#Terminal_Gui_ScrollBarView_Host">Host</a>.</div>
   <h3 id="methods">Methods
   </h3>
   
@@ -715,6 +868,64 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_ScrollBarView_OnChangedPosition_" data-uid="Terminal.Gui.ScrollBarView.OnChangedPosition*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_OnChangedPosition" data-uid="Terminal.Gui.ScrollBarView.OnChangedPosition">OnChangedPosition()</h4>
+  <div class="markdown level1 summary">
+Virtual method to invoke the <a class="xref" href="Terminal.Gui.ScrollBarView.html#Terminal_Gui_ScrollBarView_ChangedPosition">ChangedPosition</a> action event.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void OnChangedPosition()</code></pre>
+  </div>
+  
+  
+  <a id="Terminal_Gui_ScrollBarView_OnEnter_" data-uid="Terminal.Gui.ScrollBarView.OnEnter*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.ScrollBarView.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_ScrollBarView_Redraw_" data-uid="Terminal.Gui.ScrollBarView.Redraw*"></a>
   <h4 id="Terminal_Gui_ScrollBarView_Redraw_Terminal_Gui_Rect_" data-uid="Terminal.Gui.ScrollBarView.Redraw(Terminal.Gui.Rect)">Redraw(Rect)</h4>
   <div class="markdown level1 summary">
@@ -758,6 +969,18 @@ Redraws this view and its subviews; only redraws the views that have been flagge
    larger than the <code>region</code> parameter.
 </p>
 </div>
+  
+  
+  <a id="Terminal_Gui_ScrollBarView_Refresh_" data-uid="Terminal.Gui.ScrollBarView.Refresh*"></a>
+  <h4 id="Terminal_Gui_ScrollBarView_Refresh" data-uid="Terminal.Gui.ScrollBarView.Refresh">Refresh()</h4>
+  <div class="markdown level1 summary">
+Only used for a hosted view that will update and redraw the scrollbars.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public virtual void Refresh()</code></pre>
+  </div>
   <h3 id="events">Events
   </h3>
   
@@ -806,7 +1029,8 @@ This event is raised when the position on the scrollbar has changed.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 62 - 9
docs/api/Terminal.Gui/Terminal.Gui.ScrollView.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ScrollView
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -198,11 +198,14 @@ Scrollviews are views that present a window into a virtual space where subviews
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
@@ -258,9 +261,6 @@ Scrollviews are views that present a window into a virtual space where subviews
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -372,6 +372,12 @@ Scrollviews are views that present a window into a virtual space where subviews
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -515,7 +521,7 @@ Represents the top left corner coordinate that is displayed by the scrollview
   <a id="Terminal_Gui_ScrollView_ContentSize_" data-uid="Terminal.Gui.ScrollView.ContentSize*"></a>
   <h4 id="Terminal_Gui_ScrollView_ContentSize" data-uid="Terminal.Gui.ScrollView.ContentSize">ContentSize</h4>
   <div class="markdown level1 summary">
-Represents the contents of the data shown inside the scrolview
+Represents the contents of the data shown inside the scrollview
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
@@ -739,6 +745,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_ScrollView_OnEnter_" data-uid="Terminal.Gui.ScrollView.OnEnter*"></a>
+  <h4 id="Terminal_Gui_ScrollView_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.ScrollView.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_ScrollView_PositionCursor_" data-uid="Terminal.Gui.ScrollView.PositionCursor*"></a>
   <h4 id="Terminal_Gui_ScrollView_PositionCursor" data-uid="Terminal.Gui.ScrollView.PositionCursor">PositionCursor()</h4>
   <div class="markdown level1 summary">
@@ -1075,7 +1127,8 @@ Scrolls the view up.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 353 - 0
docs/api/Terminal.Gui/Terminal.Gui.SelectedCellChangedEventArgs.html

@@ -0,0 +1,353 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class SelectedCellChangedEventArgs
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class SelectedCellChangedEventArgs
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.SelectedCellChangedEventArgs">
+  
+  
+  <h1 id="Terminal_Gui_SelectedCellChangedEventArgs" data-uid="Terminal.Gui.SelectedCellChangedEventArgs" class="text-break">Class SelectedCellChangedEventArgs
+  </h1>
+  <div class="markdown level0 summary">
+Defines the event arguments for <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedCellChanged">SelectedCellChanged</a> 
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">System.EventArgs</span></div>
+    <div class="level2"><span class="xref">SelectedCellChangedEventArgs</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.EventArgs.Empty</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_SelectedCellChangedEventArgs_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class SelectedCellChangedEventArgs : EventArgs</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs__ctor_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.#ctor*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs__ctor_System_Data_DataTable_System_Int32_System_Int32_System_Int32_System_Int32_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.#ctor(System.Data.DataTable,System.Int32,System.Int32,System.Int32,System.Int32)">SelectedCellChangedEventArgs(DataTable, Int32, Int32, Int32, Int32)</h4>
+  <div class="markdown level1 summary">
+Creates a new instance of arguments describing a change in selected cell in a <a class="xref" href="Terminal.Gui.TableView.html">TableView</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public SelectedCellChangedEventArgs(DataTable t, int oldCol, int newCol, int oldRow, int newRow)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td><span class="parametername">t</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">oldCol</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">newCol</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">oldRow</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">newRow</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs_NewCol_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.NewCol*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs_NewCol" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.NewCol">NewCol</h4>
+  <div class="markdown level1 summary">
+The newly selected column index.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int NewCol { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs_NewRow_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.NewRow*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs_NewRow" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.NewRow">NewRow</h4>
+  <div class="markdown level1 summary">
+The newly selected row index.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int NewRow { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs_OldCol_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.OldCol*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs_OldCol" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.OldCol">OldCol</h4>
+  <div class="markdown level1 summary">
+The previous selected column index.  May be invalid e.g. when the selection has been changed as a result of replacing the existing Table with a smaller one
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int OldCol { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs_OldRow_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.OldRow*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs_OldRow" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.OldRow">OldRow</h4>
+  <div class="markdown level1 summary">
+The previous selected row index.  May be invalid e.g. when the selection has been changed as a result of deleting rows from the table
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int OldRow { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_SelectedCellChangedEventArgs_Table_" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.Table*"></a>
+  <h4 id="Terminal_Gui_SelectedCellChangedEventArgs_Table" data-uid="Terminal.Gui.SelectedCellChangedEventArgs.Table">Table</h4>
+  <div class="markdown level1 summary">
+The current table to which the new indexes refer.  May be null e.g. if selection change is the result of clearing the table from the view
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public DataTable Table { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.ShortcutHelper.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class ShortcutHelper
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -589,7 +589,8 @@ Used at key down or key press validation.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.Size.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Struct Size
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -794,7 +794,8 @@ Subtracts two Size structures.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 61 - 8
docs/api/Terminal.Gui/Terminal.Gui.StatusBar.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class StatusBar
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -201,11 +201,14 @@ So for each context must be a new instance of a statusbar.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
     </div>
     <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</a>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
     </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
@@ -270,9 +273,6 @@ So for each context must be a new instance of a statusbar.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
     </div>
-    <div>
-      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
-    </div>
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
     </div>
@@ -384,6 +384,12 @@ So for each context must be a new instance of a statusbar.
     <div>
       <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
     </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
     <div>
       <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
     </div>
@@ -575,6 +581,52 @@ Method invoked when a mouse event is generated
   <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
   
   
+  <a id="Terminal_Gui_StatusBar_OnEnter_" data-uid="Terminal.Gui.StatusBar.OnEnter*"></a>
+  <h4 id="Terminal_Gui_StatusBar_OnEnter_Terminal_Gui_View_" data-uid="Terminal.Gui.StatusBar.OnEnter(Terminal.Gui.View)">OnEnter(View)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a view gets focus.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool OnEnter(View view)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="parametername">view</span></td>
+        <td>The view that is losing focus.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a></div>
+  
+  
   <a id="Terminal_Gui_StatusBar_ProcessHotKey_" data-uid="Terminal.Gui.StatusBar.ProcessHotKey*"></a>
   <h4 id="Terminal_Gui_StatusBar_ProcessHotKey_Terminal_Gui_KeyEvent_" data-uid="Terminal.Gui.StatusBar.ProcessHotKey(Terminal.Gui.KeyEvent)">ProcessHotKey(KeyEvent)</h4>
   <div class="markdown level1 summary">
@@ -703,7 +755,8 @@ Redraws this view and its subviews; only redraws the views that have been flagge
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.StatusItem.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Class StatusItem
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -268,7 +268,8 @@ A <a class="xref" href="Terminal.Gui.StatusItem.html#Terminal_Gui_StatusItem_Tit
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

+ 253 - 0
docs/api/Terminal.Gui/Terminal.Gui.TableSelection.html

@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class TableSelection
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class TableSelection
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.TableSelection">
+  
+  
+  <h1 id="Terminal_Gui_TableSelection" data-uid="Terminal.Gui.TableSelection" class="text-break">Class TableSelection
+  </h1>
+  <div class="markdown level0 summary">
+Describes a selected region of the table
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">TableSelection</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_TableSelection_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class TableSelection</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableSelection__ctor_" data-uid="Terminal.Gui.TableSelection.#ctor*"></a>
+  <h4 id="Terminal_Gui_TableSelection__ctor_Terminal_Gui_Point_Terminal_Gui_Rect_" data-uid="Terminal.Gui.TableSelection.#ctor(Terminal.Gui.Point,Terminal.Gui.Rect)">TableSelection(Point, Rect)</h4>
+  <div class="markdown level1 summary">
+Creates a new selected area starting at the origin corner and covering the provided rectangular area
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TableSelection(Point origin, Rect rect)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Point.html">Point</a></td>
+        <td><span class="parametername">origin</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Rect.html">Rect</a></td>
+        <td><span class="parametername">rect</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableSelection_Origin_" data-uid="Terminal.Gui.TableSelection.Origin*"></a>
+  <h4 id="Terminal_Gui_TableSelection_Origin" data-uid="Terminal.Gui.TableSelection.Origin">Origin</h4>
+  <div class="markdown level1 summary">
+Corner of the <a class="xref" href="Terminal.Gui.TableSelection.html#Terminal_Gui_TableSelection_Rect">Rect</a> where selection began
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Point Origin { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Point.html">Point</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableSelection_Rect_" data-uid="Terminal.Gui.TableSelection.Rect*"></a>
+  <h4 id="Terminal_Gui_TableSelection_Rect" data-uid="Terminal.Gui.TableSelection.Rect">Rect</h4>
+  <div class="markdown level1 summary">
+Area selected
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Rect Rect { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Rect.html">Rect</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 415 - 0
docs/api/Terminal.Gui/Terminal.Gui.TableStyle.html

@@ -0,0 +1,415 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class TableStyle
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class TableStyle
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.TableStyle">
+  
+  
+  <h1 id="Terminal_Gui_TableStyle" data-uid="Terminal.Gui.TableStyle" class="text-break">Class TableStyle
+  </h1>
+  <div class="markdown level0 summary">
+Defines rendering options that affect how the table is displayed
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><span class="xref">TableStyle</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ToString()</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_TableStyle_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class TableStyle</code></pre>
+  </div>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableStyle_AlwaysShowHeaders_" data-uid="Terminal.Gui.TableStyle.AlwaysShowHeaders*"></a>
+  <h4 id="Terminal_Gui_TableStyle_AlwaysShowHeaders" data-uid="Terminal.Gui.TableStyle.AlwaysShowHeaders">AlwaysShowHeaders</h4>
+  <div class="markdown level1 summary">
+When scrolling down always lock the column headers in place as the first row of the table
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool AlwaysShowHeaders { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_ColumnStyles_" data-uid="Terminal.Gui.TableStyle.ColumnStyles*"></a>
+  <h4 id="Terminal_Gui_TableStyle_ColumnStyles" data-uid="Terminal.Gui.TableStyle.ColumnStyles">ColumnStyles</h4>
+  <div class="markdown level1 summary">
+Collection of columns for which you want special rendering (e.g. custom column lengths, text alignment etc)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Dictionary&lt;DataColumn, ColumnStyle&gt; ColumnStyles { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.Dictionary</span>&lt;<span class="xref">System.Data.DataColumn</span>, <a class="xref" href="Terminal.Gui.ColumnStyle.html">ColumnStyle</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_ShowHorizontalHeaderOverline_" data-uid="Terminal.Gui.TableStyle.ShowHorizontalHeaderOverline*"></a>
+  <h4 id="Terminal_Gui_TableStyle_ShowHorizontalHeaderOverline" data-uid="Terminal.Gui.TableStyle.ShowHorizontalHeaderOverline">ShowHorizontalHeaderOverline</h4>
+  <div class="markdown level1 summary">
+True to render a solid line above the headers
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool ShowHorizontalHeaderOverline { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_ShowHorizontalHeaderUnderline_" data-uid="Terminal.Gui.TableStyle.ShowHorizontalHeaderUnderline*"></a>
+  <h4 id="Terminal_Gui_TableStyle_ShowHorizontalHeaderUnderline" data-uid="Terminal.Gui.TableStyle.ShowHorizontalHeaderUnderline">ShowHorizontalHeaderUnderline</h4>
+  <div class="markdown level1 summary">
+True to render a solid line under the headers
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool ShowHorizontalHeaderUnderline { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_ShowVerticalCellLines_" data-uid="Terminal.Gui.TableStyle.ShowVerticalCellLines*"></a>
+  <h4 id="Terminal_Gui_TableStyle_ShowVerticalCellLines" data-uid="Terminal.Gui.TableStyle.ShowVerticalCellLines">ShowVerticalCellLines</h4>
+  <div class="markdown level1 summary">
+True to render a solid line vertical line between cells
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool ShowVerticalCellLines { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_ShowVerticalHeaderLines_" data-uid="Terminal.Gui.TableStyle.ShowVerticalHeaderLines*"></a>
+  <h4 id="Terminal_Gui_TableStyle_ShowVerticalHeaderLines" data-uid="Terminal.Gui.TableStyle.ShowVerticalHeaderLines">ShowVerticalHeaderLines</h4>
+  <div class="markdown level1 summary">
+True to render a solid line vertical line between headers
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool ShowVerticalHeaderLines { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableStyle_GetColumnStyleIfAny_" data-uid="Terminal.Gui.TableStyle.GetColumnStyleIfAny*"></a>
+  <h4 id="Terminal_Gui_TableStyle_GetColumnStyleIfAny_System_Data_DataColumn_" data-uid="Terminal.Gui.TableStyle.GetColumnStyleIfAny(System.Data.DataColumn)">GetColumnStyleIfAny(DataColumn)</h4>
+  <div class="markdown level1 summary">
+Returns the entry from <a class="xref" href="Terminal.Gui.TableStyle.html#Terminal_Gui_TableStyle_ColumnStyles">ColumnStyles</a> for the given <code data-dev-comment-type="paramref" class="paramref">col</code> or null if no custom styling is defined for it
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public ColumnStyle GetColumnStyleIfAny(DataColumn col)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataColumn</span></td>
+        <td><span class="parametername">col</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.ColumnStyle.html">ColumnStyle</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableStyle_GetOrCreateColumnStyle_" data-uid="Terminal.Gui.TableStyle.GetOrCreateColumnStyle*"></a>
+  <h4 id="Terminal_Gui_TableStyle_GetOrCreateColumnStyle_System_Data_DataColumn_" data-uid="Terminal.Gui.TableStyle.GetOrCreateColumnStyle(System.Data.DataColumn)">GetOrCreateColumnStyle(DataColumn)</h4>
+  <div class="markdown level1 summary">
+Returns an existing <a class="xref" href="Terminal.Gui.ColumnStyle.html">ColumnStyle</a> for the given <code data-dev-comment-type="paramref" class="paramref">col</code> or creates a new one with default options
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public ColumnStyle GetOrCreateColumnStyle(DataColumn col)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataColumn</span></td>
+        <td><span class="parametername">col</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.ColumnStyle.html">ColumnStyle</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 1498 - 0
docs/api/Terminal.Gui/Terminal.Gui.TableView.html

@@ -0,0 +1,1498 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class TableView
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class TableView
+   ">
+    <meta name="generator" content="docfx 2.56.6.0">
+    
+    <link rel="shortcut icon" href="../../favicon.ico">
+    <link rel="stylesheet" href="../../styles/docfx.vendor.css">
+    <link rel="stylesheet" href="../../styles/docfx.css">
+    <link rel="stylesheet" href="../../styles/main.css">
+    <meta property="docfx:navrel" content="../../toc.html">
+    <meta property="docfx:tocrel" content="toc.html">
+    
+    <meta property="docfx:rel" content="../../">
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix" data-offset="120">
+    <div id="wrapper">
+      <header>
+        
+        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
+          <div class="container">
+            <div class="navbar-header">
+              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+              </button>
+              
+              <a class="navbar-brand" href="../../index.html">
+                <img id="logo" class="svg" src="../../images/logo48.png" alt="">
+              </a>
+            </div>
+            <div class="collapse navbar-collapse" id="navbar">
+              <form class="navbar-form navbar-right" role="search" id="search">
+                <div class="form-group">
+                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
+                </div>
+              </form>
+            </div>
+          </div>
+        </nav>
+        
+        <div class="subnav navbar navbar-default">
+          <div class="container hide-when-search" id="breadcrumb">
+            <ul class="breadcrumb">
+              <li></li>
+            </ul>
+          </div>
+        </div>
+      </header>
+      <div class="container body-content">
+        
+        <div id="search-results">
+          <div class="search-list">Search Results for <span></span></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        
+        <div class="sidenav hide-when-search">
+          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
+          <div class="sidetoggle collapse" id="sidetoggle">
+            <div id="sidetoc"></div>
+          </div>
+        </div>
+        <div class="article row grid-right">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="Terminal.Gui.TableView">
+  
+  
+  <h1 id="Terminal_Gui_TableView" data-uid="Terminal.Gui.TableView" class="text-break">Class TableView
+  </h1>
+  <div class="markdown level0 summary">
+View for tabular data based on a <span class="xref">System.Data.DataTable</span>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <div class="inheritance">
+    <h5>Inheritance</h5>
+    <div class="level0"><span class="xref">System.Object</span></div>
+    <div class="level1"><a class="xref" href="Terminal.Gui.Responder.html">Responder</a></div>
+    <div class="level2"><a class="xref" href="Terminal.Gui.View.html">View</a></div>
+    <div class="level3"><span class="xref">TableView</span></div>
+  </div>
+  <div classs="implements">
+    <h5>Implements</h5>
+    <div><span class="xref">System.IDisposable</span></div>
+    <div><span class="xref">System.ComponentModel.ISupportInitializeNotification</span></div>
+    <div><span class="xref">System.ComponentModel.ISupportInitialize</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Added">View.Added</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Removed">View.Removed</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Enter">View.Enter</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Leave">View.Leave</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_MouseEnter">View.MouseEnter</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_MouseLeave">View.MouseLeave</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_MouseClick">View.MouseClick</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_HotKey">View.HotKey</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_HotKeySpecifier">View.HotKeySpecifier</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Shortcut">View.Shortcut</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ShortcutTag">View.ShortcutTag</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ShortcutAction">View.ShortcutAction</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Data">View.Data</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Driver">View.Driver</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Subviews">View.Subviews</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_TabIndexes">View.TabIndexes</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_TabIndex">View.TabIndex</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_TabStop">View.TabStop</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_CanFocus">View.CanFocus</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Id">View.Id</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_IsCurrentTop">View.IsCurrentTop</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_WantMousePositionReports">View.WantMousePositionReports</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_WantContinuousButtonPressed">View.WantContinuousButtonPressed</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Frame">View.Frame</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_LayoutStyle">View.LayoutStyle</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Bounds">View.Bounds</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_X">View.X</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Y">View.Y</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Width">View.Width</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Height">View.Height</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SuperView">View.SuperView</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">View.SetNeedsDisplay()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearLayoutNeeded">View.ClearLayoutNeeded()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetChildNeedsDisplay">View.SetChildNeedsDisplay()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_">View.Add(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View___">View.Add(View[])</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_RemoveAll">View.RemoveAll()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Remove_Terminal_Gui_View_">View.Remove(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_BringSubviewToFront_Terminal_Gui_View_">View.BringSubviewToFront(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SendSubviewToBack_Terminal_Gui_View_">View.SendSubviewToBack(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SendSubviewBackwards_Terminal_Gui_View_">View.SendSubviewBackwards(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_BringSubviewForward_Terminal_Gui_View_">View.BringSubviewForward(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Clear">View.Clear()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Clear_Terminal_Gui_Rect_">View.Clear(Rect)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ScreenToView_System_Int32_System_Int32_">View.ScreenToView(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClipToBounds">View.ClipToBounds()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetClip_Terminal_Gui_Rect_">View.SetClip(Rect)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_DrawFrame_Terminal_Gui_Rect_System_Int32_System_Boolean_">View.DrawFrame(Rect, Int32, Boolean)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_DrawHotString_NStack_ustring_Terminal_Gui_Attribute_Terminal_Gui_Attribute_">View.DrawHotString(ustring, Attribute, Attribute)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_DrawHotString_NStack_ustring_System_Boolean_Terminal_Gui_ColorScheme_">View.DrawHotString(ustring, Boolean, ColorScheme)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Move_System_Int32_System_Int32_">View.Move(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_HasFocus">View.HasFocus</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnAdded_Terminal_Gui_View_">View.OnAdded(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnRemoved_Terminal_Gui_View_">View.OnRemoved(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnEnter_Terminal_Gui_View_">View.OnEnter(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnLeave_Terminal_Gui_View_">View.OnLeave(View)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Focused">View.Focused</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_MostFocused">View.MostFocused</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ColorScheme">View.ColorScheme</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_AddRune_System_Int32_System_Int32_System_Rune_">View.AddRune(Int32, Int32, Rune)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ClearNeedsDisplay">View.ClearNeedsDisplay()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_DrawContent">View.DrawContent</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnDrawContent_Terminal_Gui_Rect_">View.OnDrawContent(Rect)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetFocus">View.SetFocus()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_KeyPress">View.KeyPress</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ProcessHotKey_Terminal_Gui_KeyEvent_">View.ProcessHotKey(KeyEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ProcessColdKey_Terminal_Gui_KeyEvent_">View.ProcessColdKey(KeyEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_KeyDown">View.KeyDown</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnKeyDown_Terminal_Gui_KeyEvent_">View.OnKeyDown(KeyEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_KeyUp">View.KeyUp</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnKeyUp_Terminal_Gui_KeyEvent_">View.OnKeyUp(KeyEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_EnsureFocus">View.EnsureFocus()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_FocusFirst">View.FocusFirst()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_FocusLast">View.FocusLast()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_FocusPrev">View.FocusPrev()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_FocusNext">View.FocusNext()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_LayoutStarted">View.LayoutStarted</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_LayoutComplete">View.LayoutComplete</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Initialized">View.Initialized</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_LayoutSubviews">View.LayoutSubviews()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Text">View.Text</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_AutoSize">View.AutoSize</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_TextAlignment">View.TextAlignment</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_IsInitialized">View.IsInitialized</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ToString">View.ToString()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnMouseEnter_Terminal_Gui_MouseEvent_">View.OnMouseEnter(MouseEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnMouseLeave_Terminal_Gui_MouseEvent_">View.OnMouseLeave(MouseEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnMouseEvent_Terminal_Gui_MouseEvent_">View.OnMouseEvent(MouseEvent)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnMouseClick_Terminal_Gui_View_MouseEventArgs_">View.OnMouseClick(View.MouseEventArgs)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Dispose_System_Boolean_">View.Dispose(Boolean)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_BeginInit">View.BeginInit()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_EndInit">View.EndInit()</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Visible">View.Visible</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetWidth_System_Int32_System_Int32__">View.SetWidth(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetHeight_System_Int32_System_Int32__">View.SetHeight(Int32, Int32)</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_Dispose">Responder.Dispose()</a>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetHashCode()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.GetType()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.MemberwiseClone()</span>
+    </div>
+    <div>
+      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
+    </div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="Terminal.Gui.html">Terminal.Gui</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Terminal_Gui_TableView_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class TableView : View, IDisposable, ISupportInitializeNotification, ISupportInitialize</code></pre>
+  </div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableView__ctor_" data-uid="Terminal.Gui.TableView.#ctor*"></a>
+  <h4 id="Terminal_Gui_TableView__ctor" data-uid="Terminal.Gui.TableView.#ctor">TableView()</h4>
+  <div class="markdown level1 summary">
+Initialzies a <a class="xref" href="Terminal.Gui.TableView.html">TableView</a> class using <a class="xref" href="Terminal.Gui.LayoutStyle.html#Terminal_Gui_LayoutStyle_Computed">Computed</a> layout. Set the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> property to begin editing
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TableView()</code></pre>
+  </div>
+  
+  
+  <a id="Terminal_Gui_TableView__ctor_" data-uid="Terminal.Gui.TableView.#ctor*"></a>
+  <h4 id="Terminal_Gui_TableView__ctor_System_Data_DataTable_" data-uid="Terminal.Gui.TableView.#ctor(System.Data.DataTable)">TableView(DataTable)</h4>
+  <div class="markdown level1 summary">
+Initialzies a <a class="xref" href="Terminal.Gui.TableView.html">TableView</a> class using <a class="xref" href="Terminal.Gui.LayoutStyle.html#Terminal_Gui_LayoutStyle_Computed">Computed</a> layout. 
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TableView(DataTable table)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td><span class="parametername">table</span></td>
+        <td>The table to display in the control</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="fields">Fields
+  </h3>
+  
+  
+  <h4 id="Terminal_Gui_TableView_DefaultMaxCellWidth" data-uid="Terminal.Gui.TableView.DefaultMaxCellWidth">DefaultMaxCellWidth</h4>
+  <div class="markdown level1 summary">
+The default maximum cell width for <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MaxCellWidth">MaxCellWidth</a> and <a class="xref" href="Terminal.Gui.ColumnStyle.html#Terminal_Gui_ColumnStyle_MaxWidth">MaxWidth</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public const int DefaultMaxCellWidth = 100</code></pre>
+  </div>
+  <h5 class="fieldValue">Field Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableView_CellActivationKey_" data-uid="Terminal.Gui.TableView.CellActivationKey*"></a>
+  <h4 id="Terminal_Gui_TableView_CellActivationKey" data-uid="Terminal.Gui.TableView.CellActivationKey">CellActivationKey</h4>
+  <div class="markdown level1 summary">
+The key which when pressed should trigger <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_CellActivated">CellActivated</a> event.  Defaults to Enter.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Key CellActivationKey { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Key.html">Key</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_ColumnOffset_" data-uid="Terminal.Gui.TableView.ColumnOffset*"></a>
+  <h4 id="Terminal_Gui_TableView_ColumnOffset" data-uid="Terminal.Gui.TableView.ColumnOffset">ColumnOffset</h4>
+  <div class="markdown level1 summary">
+Horizontal scroll offset.  The index of the first column in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> to display when when rendering the view.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int ColumnOffset { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 id="Terminal_Gui_TableView_ColumnOffset_remarks">Remarks</h5>
+  <div class="markdown level1 remarks">This property allows very wide tables to be rendered with horizontal scrolling</div>
+  
+  
+  <a id="Terminal_Gui_TableView_FullRowSelect_" data-uid="Terminal.Gui.TableView.FullRowSelect*"></a>
+  <h4 id="Terminal_Gui_TableView_FullRowSelect" data-uid="Terminal.Gui.TableView.FullRowSelect">FullRowSelect</h4>
+  <div class="markdown level1 summary">
+True to select the entire row at once.  False to select individual cells.  Defaults to false
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool FullRowSelect { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_MaxCellWidth_" data-uid="Terminal.Gui.TableView.MaxCellWidth*"></a>
+  <h4 id="Terminal_Gui_TableView_MaxCellWidth" data-uid="Terminal.Gui.TableView.MaxCellWidth">MaxCellWidth</h4>
+  <div class="markdown level1 summary">
+The maximum number of characters to render in any given column.  This prevents one long column from pushing out all the others
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int MaxCellWidth { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_MultiSelect_" data-uid="Terminal.Gui.TableView.MultiSelect*"></a>
+  <h4 id="Terminal_Gui_TableView_MultiSelect" data-uid="Terminal.Gui.TableView.MultiSelect">MultiSelect</h4>
+  <div class="markdown level1 summary">
+True to allow regions to be selected 
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool MultiSelect { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_MultiSelectedRegions_" data-uid="Terminal.Gui.TableView.MultiSelectedRegions*"></a>
+  <h4 id="Terminal_Gui_TableView_MultiSelectedRegions" data-uid="Terminal.Gui.TableView.MultiSelectedRegions">MultiSelectedRegions</h4>
+  <div class="markdown level1 summary">
+When <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelect">MultiSelect</a> is enabled this property contain all rectangles of selected cells.  Rectangles describe column/rows selected in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> (not screen coordinates)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Stack&lt;TableSelection&gt; MultiSelectedRegions { get; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.Stack</span>&lt;<a class="xref" href="Terminal.Gui.TableSelection.html">TableSelection</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_NullSymbol_" data-uid="Terminal.Gui.TableView.NullSymbol*"></a>
+  <h4 id="Terminal_Gui_TableView_NullSymbol" data-uid="Terminal.Gui.TableView.NullSymbol">NullSymbol</h4>
+  <div class="markdown level1 summary">
+The text representation that should be rendered for cells with the value <span class="xref">System.DBNull.Value</span>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public string NullSymbol { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.String</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_RowOffset_" data-uid="Terminal.Gui.TableView.RowOffset*"></a>
+  <h4 id="Terminal_Gui_TableView_RowOffset" data-uid="Terminal.Gui.TableView.RowOffset">RowOffset</h4>
+  <div class="markdown level1 summary">
+Vertical scroll offset.  The index of the first row in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> to display in the first non header line of the control when rendering the view.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int RowOffset { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_SelectedColumn_" data-uid="Terminal.Gui.TableView.SelectedColumn*"></a>
+  <h4 id="Terminal_Gui_TableView_SelectedColumn" data-uid="Terminal.Gui.TableView.SelectedColumn">SelectedColumn</h4>
+  <div class="markdown level1 summary">
+The index of <span class="xref">System.Data.DataTable.Columns</span> in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> that the user has currently selected
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int SelectedColumn { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_SelectedRow_" data-uid="Terminal.Gui.TableView.SelectedRow*"></a>
+  <h4 id="Terminal_Gui_TableView_SelectedRow" data-uid="Terminal.Gui.TableView.SelectedRow">SelectedRow</h4>
+  <div class="markdown level1 summary">
+The index of <span class="xref">System.Data.DataTable.Rows</span> in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> that the user has currently selected
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public int SelectedRow { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_SeparatorSymbol_" data-uid="Terminal.Gui.TableView.SeparatorSymbol*"></a>
+  <h4 id="Terminal_Gui_TableView_SeparatorSymbol" data-uid="Terminal.Gui.TableView.SeparatorSymbol">SeparatorSymbol</h4>
+  <div class="markdown level1 summary">
+The symbol to add after each cell value and header value to visually seperate values (if not using vertical gridlines)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public char SeparatorSymbol { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Char</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_Style_" data-uid="Terminal.Gui.TableView.Style*"></a>
+  <h4 id="Terminal_Gui_TableView_Style" data-uid="Terminal.Gui.TableView.Style">Style</h4>
+  <div class="markdown level1 summary">
+Contains options for changing how the table is rendered
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public TableStyle Style { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.TableStyle.html">TableStyle</a></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_Table_" data-uid="Terminal.Gui.TableView.Table*"></a>
+  <h4 id="Terminal_Gui_TableView_Table" data-uid="Terminal.Gui.TableView.Table">Table</h4>
+  <div class="markdown level1 summary">
+The data table to render in the view.  Setting this property automatically updates and redraws the control.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public DataTable Table { get; set; }</code></pre>
+  </div>
+  <h5 class="propertyValue">Property Value</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Data.DataTable</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Terminal_Gui_TableView_CellToScreen_" data-uid="Terminal.Gui.TableView.CellToScreen*"></a>
+  <h4 id="Terminal_Gui_TableView_CellToScreen_System_Int32_System_Int32_" data-uid="Terminal.Gui.TableView.CellToScreen(System.Int32,System.Int32)">CellToScreen(Int32, Int32)</h4>
+  <div class="markdown level1 summary">
+Returns the screen position (relative to the control client area) that the given cell is rendered or null if it is outside the current scroll area or no table is loaded
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Point? CellToScreen(int tableColumn, int tableRow)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">tableColumn</span></td>
+        <td>The index of the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> column you are looking for, use <span class="xref">System.Data.DataColumn.Ordinal</span></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">tableRow</span></td>
+        <td>The index of the row in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> that you are looking for</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Nullable</span>&lt;<a class="xref" href="Terminal.Gui.Point.html">Point</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_ChangeSelectionByOffset_" data-uid="Terminal.Gui.TableView.ChangeSelectionByOffset*"></a>
+  <h4 id="Terminal_Gui_TableView_ChangeSelectionByOffset_System_Int32_System_Int32_System_Boolean_" data-uid="Terminal.Gui.TableView.ChangeSelectionByOffset(System.Int32,System.Int32,System.Boolean)">ChangeSelectionByOffset(Int32, Int32, Boolean)</h4>
+  <div class="markdown level1 summary">
+Moves the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedRow">SelectedRow</a> and <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedColumn">SelectedColumn</a> by the provided offsets. Optionally starting a box selection (see <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelect">MultiSelect</a>)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void ChangeSelectionByOffset(int offsetX, int offsetY, bool extendExistingSelection)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">offsetX</span></td>
+        <td>Offset in number of columns</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">offsetY</span></td>
+        <td>Offset in number of rows</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><span class="parametername">extendExistingSelection</span></td>
+        <td>True to create a multi cell selection or adjust an existing one</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_EnsureSelectedCellIsVisible_" data-uid="Terminal.Gui.TableView.EnsureSelectedCellIsVisible*"></a>
+  <h4 id="Terminal_Gui_TableView_EnsureSelectedCellIsVisible" data-uid="Terminal.Gui.TableView.EnsureSelectedCellIsVisible">EnsureSelectedCellIsVisible()</h4>
+  <div class="markdown level1 summary">
+Updates scroll offsets to ensure that the selected cell is visible.  Has no effect if <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> has not been set.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void EnsureSelectedCellIsVisible()</code></pre>
+  </div>
+  <h5 id="Terminal_Gui_TableView_EnsureSelectedCellIsVisible_remarks">Remarks</h5>
+  <div class="markdown level1 remarks">Changes will not be immediately visible in the display until you call <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">SetNeedsDisplay()</a></div>
+  
+  
+  <a id="Terminal_Gui_TableView_EnsureValidScrollOffsets_" data-uid="Terminal.Gui.TableView.EnsureValidScrollOffsets*"></a>
+  <h4 id="Terminal_Gui_TableView_EnsureValidScrollOffsets" data-uid="Terminal.Gui.TableView.EnsureValidScrollOffsets">EnsureValidScrollOffsets()</h4>
+  <div class="markdown level1 summary">
+Updates <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_ColumnOffset">ColumnOffset</a> and <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_RowOffset">RowOffset</a> where they are outside the bounds of the table (by adjusting them to the nearest existing cell).  Has no effect if <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> has not been set.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void EnsureValidScrollOffsets()</code></pre>
+  </div>
+  <h5 id="Terminal_Gui_TableView_EnsureValidScrollOffsets_remarks">Remarks</h5>
+  <div class="markdown level1 remarks">Changes will not be immediately visible in the display until you call <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">SetNeedsDisplay()</a></div>
+  
+  
+  <a id="Terminal_Gui_TableView_EnsureValidSelection_" data-uid="Terminal.Gui.TableView.EnsureValidSelection*"></a>
+  <h4 id="Terminal_Gui_TableView_EnsureValidSelection" data-uid="Terminal.Gui.TableView.EnsureValidSelection">EnsureValidSelection()</h4>
+  <div class="markdown level1 summary">
+Updates <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedColumn">SelectedColumn</a>, <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedRow">SelectedRow</a> and <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelectedRegions">MultiSelectedRegions</a> where they are outside the bounds of the table (by adjusting them to the nearest existing cell).  Has no effect if <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> has not been set.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void EnsureValidSelection()</code></pre>
+  </div>
+  <h5 id="Terminal_Gui_TableView_EnsureValidSelection_remarks">Remarks</h5>
+  <div class="markdown level1 remarks">Changes will not be immediately visible in the display until you call <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">SetNeedsDisplay()</a></div>
+  
+  
+  <a id="Terminal_Gui_TableView_GetAllSelectedCells_" data-uid="Terminal.Gui.TableView.GetAllSelectedCells*"></a>
+  <h4 id="Terminal_Gui_TableView_GetAllSelectedCells" data-uid="Terminal.Gui.TableView.GetAllSelectedCells">GetAllSelectedCells()</h4>
+  <div class="markdown level1 summary">
+Returns all cells in any <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelectedRegions">MultiSelectedRegions</a> (if <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelect">MultiSelect</a> is enabled) and the selected cell
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public IEnumerable&lt;Point&gt; GetAllSelectedCells()</code></pre>
+  </div>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Collections.Generic.IEnumerable</span>&lt;<a class="xref" href="Terminal.Gui.Point.html">Point</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_IsSelected_" data-uid="Terminal.Gui.TableView.IsSelected*"></a>
+  <h4 id="Terminal_Gui_TableView_IsSelected_System_Int32_System_Int32_" data-uid="Terminal.Gui.TableView.IsSelected(System.Int32,System.Int32)">IsSelected(Int32, Int32)</h4>
+  <div class="markdown level1 summary">
+Returns true if the given cell is selected either because it is the active cell or part of a multi cell selection (e.g. <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_FullRowSelect">FullRowSelect</a>)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool IsSelected(int col, int row)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">col</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">row</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_MouseEvent_" data-uid="Terminal.Gui.TableView.MouseEvent*"></a>
+  <h4 id="Terminal_Gui_TableView_MouseEvent_Terminal_Gui_MouseEvent_" data-uid="Terminal.Gui.TableView.MouseEvent(Terminal.Gui.MouseEvent)">MouseEvent(MouseEvent)</h4>
+  <div class="markdown level1 summary">
+Method invoked when a mouse event is generated
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool MouseEvent(MouseEvent me)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.MouseEvent.html">MouseEvent</a></td>
+        <td><span class="parametername">me</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><code>true</code>, if the event was handled, <code>false</code> otherwise.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</a></div>
+  
+  
+  <a id="Terminal_Gui_TableView_OnCellActivated_" data-uid="Terminal.Gui.TableView.OnCellActivated*"></a>
+  <h4 id="Terminal_Gui_TableView_OnCellActivated_Terminal_Gui_CellActivatedEventArgs_" data-uid="Terminal.Gui.TableView.OnCellActivated(Terminal.Gui.CellActivatedEventArgs)">OnCellActivated(CellActivatedEventArgs)</h4>
+  <div class="markdown level1 summary">
+Invokes the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_CellActivated">CellActivated</a> event
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected virtual void OnCellActivated(CellActivatedEventArgs args)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.CellActivatedEventArgs.html">CellActivatedEventArgs</a></td>
+        <td><span class="parametername">args</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_OnSelectedCellChanged_" data-uid="Terminal.Gui.TableView.OnSelectedCellChanged*"></a>
+  <h4 id="Terminal_Gui_TableView_OnSelectedCellChanged_Terminal_Gui_SelectedCellChangedEventArgs_" data-uid="Terminal.Gui.TableView.OnSelectedCellChanged(Terminal.Gui.SelectedCellChangedEventArgs)">OnSelectedCellChanged(SelectedCellChangedEventArgs)</h4>
+  <div class="markdown level1 summary">
+Invokes the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedCellChanged">SelectedCellChanged</a> event
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">protected virtual void OnSelectedCellChanged(SelectedCellChangedEventArgs args)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.SelectedCellChangedEventArgs.html">SelectedCellChangedEventArgs</a></td>
+        <td><span class="parametername">args</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_PositionCursor_" data-uid="Terminal.Gui.TableView.PositionCursor*"></a>
+  <h4 id="Terminal_Gui_TableView_PositionCursor" data-uid="Terminal.Gui.TableView.PositionCursor">PositionCursor()</h4>
+  <div class="markdown level1 summary">
+Positions the cursor in the area of the screen in which the start of the active cell is rendered.  Calls base implementation if active cell is not visible due to scrolling or table is loaded etc
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override void PositionCursor()</code></pre>
+  </div>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_PositionCursor">View.PositionCursor()</a></div>
+  
+  
+  <a id="Terminal_Gui_TableView_ProcessKey_" data-uid="Terminal.Gui.TableView.ProcessKey*"></a>
+  <h4 id="Terminal_Gui_TableView_ProcessKey_Terminal_Gui_KeyEvent_" data-uid="Terminal.Gui.TableView.ProcessKey(Terminal.Gui.KeyEvent)">ProcessKey(KeyEvent)</h4>
+  <div class="markdown level1 summary">
+If the view is focused, gives the view a
+chance to process the keystroke.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override bool ProcessKey(KeyEvent keyEvent)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.KeyEvent.html">KeyEvent</a></td>
+        <td><span class="parametername">keyEvent</span></td>
+        <td>Contains the details about the key that produced the event.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ProcessKey_Terminal_Gui_KeyEvent_">View.ProcessKey(KeyEvent)</a></div>
+  <h5 id="Terminal_Gui_TableView_ProcessKey_Terminal_Gui_KeyEvent__remarks">Remarks</h5>
+  <div class="markdown level1 remarks">
+<p>
+  Views can override this method if they are
+  interested in processing the given keystroke.
+  If they consume the keystroke, they must
+  return true to stop the keystroke from being
+  processed by other widgets or consumed by the
+  widget engine.    If they return false, the
+  keystroke will be passed using the ProcessColdKey
+  method to other views to process.
+</p>
+<p>
+  The View implementation does nothing but return false,
+  so it is not necessary to call base.ProcessKey if you
+  derive directly from View, but you should if you derive
+  other View subclasses.
+</p>
+</div>
+  
+  
+  <a id="Terminal_Gui_TableView_Redraw_" data-uid="Terminal.Gui.TableView.Redraw*"></a>
+  <h4 id="Terminal_Gui_TableView_Redraw_Terminal_Gui_Rect_" data-uid="Terminal.Gui.TableView.Redraw(Terminal.Gui.Rect)">Redraw(Rect)</h4>
+  <div class="markdown level1 summary">
+Redraws this view and its subviews; only redraws the views that have been flagged for a re-display.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public override void Redraw(Rect bounds)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><a class="xref" href="Terminal.Gui.Rect.html">Rect</a></td>
+        <td><span class="parametername">bounds</span></td>
+        <td>The bounds (view-relative region) to redraw.</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="overrides">Overrides</h5>
+  <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Redraw_Terminal_Gui_Rect_">View.Redraw(Rect)</a></div>
+  <h5 id="Terminal_Gui_TableView_Redraw_Terminal_Gui_Rect__remarks">Remarks</h5>
+  <div class="markdown level1 remarks">
+<p>
+   Always use <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Bounds">Bounds</a> (view-relative) when calling <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Redraw_Terminal_Gui_Rect_">Redraw(Rect)</a>, NOT <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Frame">Frame</a> (superview-relative).
+</p>
+<p>
+   Views should set the color that they want to use on entry, as otherwise this will inherit
+   the last color that was set globally on the driver.
+</p>
+<p>
+   Overrides of <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Redraw_Terminal_Gui_Rect_">Redraw(Rect)</a> must ensure they do not set <code>Driver.Clip</code> to a clip region
+   larger than the <code>region</code> parameter.
+</p>
+</div>
+  
+  
+  <a id="Terminal_Gui_TableView_ScreenToCell_" data-uid="Terminal.Gui.TableView.ScreenToCell*"></a>
+  <h4 id="Terminal_Gui_TableView_ScreenToCell_System_Int32_System_Int32_" data-uid="Terminal.Gui.TableView.ScreenToCell(System.Int32,System.Int32)">ScreenToCell(Int32, Int32)</h4>
+  <div class="markdown level1 summary">
+Returns the column and row of <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> that corresponds to a given point on the screen (relative to the control client area).  Returns null if the point is in the header, no table is loaded or outside the control bounds
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public Point? ScreenToCell(int clientX, int clientY)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">clientX</span></td>
+        <td>X offset from the top left of the control</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">clientY</span></td>
+        <td>Y offset from the top left of the control</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 class="returns">Returns</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Nullable</span>&lt;<a class="xref" href="Terminal.Gui.Point.html">Point</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_SelectAll_" data-uid="Terminal.Gui.TableView.SelectAll*"></a>
+  <h4 id="Terminal_Gui_TableView_SelectAll" data-uid="Terminal.Gui.TableView.SelectAll">SelectAll()</h4>
+  <div class="markdown level1 summary">
+When <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelect">MultiSelect</a> is on, creates selection over all cells in the table (replacing any old selection regions)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void SelectAll()</code></pre>
+  </div>
+  
+  
+  <a id="Terminal_Gui_TableView_SetSelection_" data-uid="Terminal.Gui.TableView.SetSelection*"></a>
+  <h4 id="Terminal_Gui_TableView_SetSelection_System_Int32_System_Int32_System_Boolean_" data-uid="Terminal.Gui.TableView.SetSelection(System.Int32,System.Int32,System.Boolean)">SetSelection(Int32, Int32, Boolean)</h4>
+  <div class="markdown level1 summary">
+Moves the <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedRow">SelectedRow</a> and <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_SelectedColumn">SelectedColumn</a> to the given col/row in <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a>. Optionally starting a box selection (see <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_MultiSelect">MultiSelect</a>)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void SetSelection(int col, int row, bool extendExistingSelection)</code></pre>
+  </div>
+  <h5 class="parameters">Parameters</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Name</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">col</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Int32</span></td>
+        <td><span class="parametername">row</span></td>
+        <td></td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Boolean</span></td>
+        <td><span class="parametername">extendExistingSelection</span></td>
+        <td>True to create a multi cell selection or adjust an existing one</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_TableView_Update_" data-uid="Terminal.Gui.TableView.Update*"></a>
+  <h4 id="Terminal_Gui_TableView_Update" data-uid="Terminal.Gui.TableView.Update">Update()</h4>
+  <div class="markdown level1 summary">
+Updates the view to reflect changes to <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_Table">Table</a> and to (<a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_ColumnOffset">ColumnOffset</a> / <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_RowOffset">RowOffset</a>) etc
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void Update()</code></pre>
+  </div>
+  <h5 id="Terminal_Gui_TableView_Update_remarks">Remarks</h5>
+  <div class="markdown level1 remarks">This always calls <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_SetNeedsDisplay">SetNeedsDisplay()</a></div>
+  <h3 id="events">Events
+  </h3>
+  
+  
+  <h4 id="Terminal_Gui_TableView_CellActivated" data-uid="Terminal.Gui.TableView.CellActivated">CellActivated</h4>
+  <div class="markdown level1 summary">
+This event is raised when a cell is activated e.g. by double clicking or pressing <a class="xref" href="Terminal.Gui.TableView.html#Terminal_Gui_TableView_CellActivationKey">CellActivationKey</a>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public event Action&lt;CellActivatedEventArgs&gt; CellActivated</code></pre>
+  </div>
+  <h5 class="eventType">Event Type</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Action</span>&lt;<a class="xref" href="Terminal.Gui.CellActivatedEventArgs.html">CellActivatedEventArgs</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <h4 id="Terminal_Gui_TableView_SelectedCellChanged" data-uid="Terminal.Gui.TableView.SelectedCellChanged">SelectedCellChanged</h4>
+  <div class="markdown level1 summary">
+This event is raised when the selected cell in the table changes.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public event Action&lt;SelectedCellChangedEventArgs&gt; SelectedCellChanged</code></pre>
+  </div>
+  <h5 class="eventType">Event Type</h5>
+  <table class="table table-bordered table-striped table-condensed">
+    <thead>
+      <tr>
+        <th>Type</th>
+        <th>Description</th>
+      </tr>
+    </thead>
+    <tbody>
+      <tr>
+        <td><span class="xref">System.Action</span>&lt;<a class="xref" href="Terminal.Gui.SelectedCellChangedEventArgs.html">SelectedCellChangedEventArgs</a>&gt;</td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="implements">Implements</h3>
+  <div>
+      <span class="xref">System.IDisposable</span>
+  </div>
+  <div>
+      <span class="xref">System.ComponentModel.ISupportInitializeNotification</span>
+  </div>
+  <div>
+      <span class="xref">System.ComponentModel.ISupportInitialize</span>
+  </div>
+</article>
+          </div>
+          
+          <div class="hidden-sm col-md-2" role="complementary">
+            <div class="sideaffix">
+              <div class="contribution">
+                <ul class="nav">
+                </ul>
+              </div>
+              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
+                <h5>In This Article</h5>
+                <div></div>
+              </nav>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <footer>
+        <div class="grad-bottom"></div>
+        <div class="footer">
+          <div class="container">
+            <span class="pull-right">
+              <a href="#top">Back to top</a>
+            </span>
+            
+            <span>Generated by <strong>DocFX</strong></span>
+          </div>
+        </div>
+      </footer>
+    </div>
+    
+    <script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
+    <script type="text/javascript" src="../../styles/docfx.js"></script>
+    <script type="text/javascript" src="../../styles/main.js"></script>
+  </body>
+</html>

+ 5 - 4
docs/api/Terminal.Gui/Terminal.Gui.TextAlignment.html

@@ -10,7 +10,7 @@
     <meta name="viewport" content="width=device-width">
     <meta name="title" content="Enum TextAlignment
    ">
-    <meta name="generator" content="docfx 2.56.2.0">
+    <meta name="generator" content="docfx 2.56.6.0">
     
     <link rel="shortcut icon" href="../../favicon.ico">
     <link rel="stylesheet" href="../../styles/docfx.vendor.css">
@@ -61,11 +61,11 @@
       <div class="container body-content">
         
         <div id="search-results">
-          <div class="search-list"></div>
+          <div class="search-list">Search Results for <span></span></div>
           <div class="sr-items">
             <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
           </div>
-          <ul id="pagination"></ul>
+          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
         </div>
       </div>
       <div role="main" class="container body-content hide-when-search">
@@ -139,7 +139,8 @@ Aligns the text to the right side of the frame.
                 </ul>
               </div>
               <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
-              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+                <h5>In This Article</h5>
+                <div></div>
               </nav>
             </div>
           </div>

Some files were not shown because too many files changed in this diff