Browse Source

that previous PR had nothing in it

Charlie Kindel 5 years ago
parent
commit
bb4ebc1dc7
32 changed files with 1305 additions and 49 deletions
  1. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.Button.html
  2. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.CheckBox.html
  3. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.ComboBox.html
  4. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.DateField.html
  5. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.Dialog.html
  6. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.FileDialog.html
  7. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.FrameView.html
  8. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.HexView.html
  9. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.Label.html
  10. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.ListView.html
  11. 37 10
      docs/api/Terminal.Gui/Terminal.Gui.MenuBar.html
  12. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.OpenDialog.html
  13. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.ProgressBar.html
  14. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.html
  15. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.SaveDialog.html
  16. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.ScrollBarView.html
  17. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.ScrollView.html
  18. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.StatusBar.html
  19. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.TextField.html
  20. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.TextView.html
  21. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.TimeField.html
  22. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.Toplevel.html
  23. 27 0
      docs/api/Terminal.Gui/Terminal.Gui.View.html
  24. 3 0
      docs/api/Terminal.Gui/Terminal.Gui.Window.html
  25. 115 0
      docs/articles/index.html
  26. 137 0
      docs/articles/keyboard.html
  27. 220 0
      docs/articles/mainloop.html
  28. 436 0
      docs/articles/overview.html
  29. 117 0
      docs/articles/views.html
  30. 0 0
      docs/index.json
  31. 98 26
      docs/manifest.json
  32. 52 13
      docs/xrefmap.yml

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.Button.html

@@ -121,6 +121,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.CheckBox.html

@@ -121,6 +121,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.ComboBox.html

@@ -121,6 +121,9 @@ ComboBox control
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.DateField.html

@@ -176,6 +176,9 @@ Date editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.Dialog.html

@@ -170,6 +170,9 @@ or more <a class="xref" href="Terminal.Gui.Button.html">Button</a>. It defaults
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.FileDialog.html

@@ -177,6 +177,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.FrameView.html

@@ -122,6 +122,9 @@ a GroupBox in Windows.
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.HexView.html

@@ -121,6 +121,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.Label.html

@@ -121,6 +121,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.ListView.html

@@ -121,6 +121,9 @@ 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_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>

+ 37 - 10
docs/api/Terminal.Gui/Terminal.Gui.MenuBar.html

@@ -121,6 +121,9 @@ The MenuBar provides a menu for Terminal.Gui applications.
     <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>
@@ -352,15 +355,15 @@ Initializes a new instance of the <a class="xref" href="Terminal.Gui.MenuBar.htm
   </h3>
   
   
-  <a id="Terminal_Gui_MenuBar_LastFocused_" data-uid="Terminal.Gui.MenuBar.LastFocused*"></a>
-  <h4 id="Terminal_Gui_MenuBar_LastFocused" data-uid="Terminal.Gui.MenuBar.LastFocused">LastFocused</h4>
+  <a id="Terminal_Gui_MenuBar_IsMenuOpen_" data-uid="Terminal.Gui.MenuBar.IsMenuOpen*"></a>
+  <h4 id="Terminal_Gui_MenuBar_IsMenuOpen" data-uid="Terminal.Gui.MenuBar.IsMenuOpen">IsMenuOpen</h4>
   <div class="markdown level1 summary">
-Get the lasted focused view before open the menu.
+True if the menu is open; otherwise false.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public View LastFocused { get; }</code></pre>
+    <pre><code class="lang-csharp hljs">public bool IsMenuOpen { get; protected set; }</code></pre>
   </div>
   <h5 class="propertyValue">Property Value</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -372,22 +375,22 @@ Get the lasted focused view before open the menu.
     </thead>
     <tbody>
       <tr>
-        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
+        <td><span class="xref">System.Boolean</span></td>
         <td></td>
       </tr>
     </tbody>
   </table>
   
   
-  <a id="Terminal_Gui_MenuBar_MenuOpen_" data-uid="Terminal.Gui.MenuBar.MenuOpen*"></a>
-  <h4 id="Terminal_Gui_MenuBar_MenuOpen" data-uid="Terminal.Gui.MenuBar.MenuOpen">MenuOpen</h4>
+  <a id="Terminal_Gui_MenuBar_LastFocused_" data-uid="Terminal.Gui.MenuBar.LastFocused*"></a>
+  <h4 id="Terminal_Gui_MenuBar_LastFocused" data-uid="Terminal.Gui.MenuBar.LastFocused">LastFocused</h4>
   <div class="markdown level1 summary">
-True of the menu is open; otherwise false.
+Get the lasted focused view before open the menu.
 </div>
   <div class="markdown level1 conceptual"></div>
   <h5 class="decalaration">Declaration</h5>
   <div class="codewrapper">
-    <pre><code class="lang-csharp hljs">public bool MenuOpen { get; set; }</code></pre>
+    <pre><code class="lang-csharp hljs">public View LastFocused { get; }</code></pre>
   </div>
   <h5 class="propertyValue">Property Value</h5>
   <table class="table table-bordered table-striped table-condensed">
@@ -399,7 +402,7 @@ True of the menu is open; otherwise false.
     </thead>
     <tbody>
       <tr>
-        <td><span class="xref">System.Boolean</span></td>
+        <td><a class="xref" href="Terminal.Gui.View.html">View</a></td>
         <td></td>
       </tr>
     </tbody>
@@ -462,6 +465,18 @@ Used for change the navigation key style.
   </h3>
   
   
+  <a id="Terminal_Gui_MenuBar_CloseMenu_" data-uid="Terminal.Gui.MenuBar.CloseMenu*"></a>
+  <h4 id="Terminal_Gui_MenuBar_CloseMenu" data-uid="Terminal.Gui.MenuBar.CloseMenu">CloseMenu()</h4>
+  <div class="markdown level1 summary">
+Closes the current Menu programatically, if open.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void CloseMenu()</code></pre>
+  </div>
+  
+  
   <a id="Terminal_Gui_MenuBar_MouseEvent_" data-uid="Terminal.Gui.MenuBar.MouseEvent*"></a>
   <h4 id="Terminal_Gui_MenuBar_MouseEvent_Terminal_Gui_MouseEvent_" data-uid="Terminal.Gui.MenuBar.MouseEvent(Terminal.Gui.MouseEvent)">MouseEvent(MouseEvent)</h4>
   <div class="markdown level1 summary"></div>
@@ -594,6 +609,18 @@ Used for change the navigation key style.
   <div><a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_OnKeyUp_Terminal_Gui_KeyEvent_">View.OnKeyUp(KeyEvent)</a></div>
   
   
+  <a id="Terminal_Gui_MenuBar_OpenMenu_" data-uid="Terminal.Gui.MenuBar.OpenMenu*"></a>
+  <h4 id="Terminal_Gui_MenuBar_OpenMenu" data-uid="Terminal.Gui.MenuBar.OpenMenu">OpenMenu()</h4>
+  <div class="markdown level1 summary">
+Opens the current Menu programatically.
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void OpenMenu()</code></pre>
+  </div>
+  
+  
   <a id="Terminal_Gui_MenuBar_PositionCursor_" data-uid="Terminal.Gui.MenuBar.PositionCursor*"></a>
   <h4 id="Terminal_Gui_MenuBar_PositionCursor" data-uid="Terminal.Gui.MenuBar.PositionCursor">PositionCursor()</h4>
   <div class="markdown level1 summary"></div>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.OpenDialog.html

@@ -209,6 +209,9 @@ 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_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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.ProgressBar.html

@@ -121,6 +121,9 @@ A Progress Bar view that can indicate progress of an activity visually.
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.RadioGroup.html

@@ -121,6 +121,9 @@
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.SaveDialog.html

@@ -210,6 +210,9 @@ save.
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.ScrollBarView.html

@@ -121,6 +121,9 @@ ScrollBarViews are views that display a 1-character scrollbar, either horizontal
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.ScrollView.html

@@ -121,6 +121,9 @@ Scrollviews are views that present a window into a virtual space where children
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.StatusBar.html

@@ -124,6 +124,9 @@ So for each context must be a new instance of a statusbar.
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.TextField.html

@@ -123,6 +123,9 @@ Single-line text entry <a class="xref" href="Terminal.Gui.View.html">View</a>
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.TextView.html

@@ -121,6 +121,9 @@ Multi-line text editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.TimeField.html

@@ -176,6 +176,9 @@ Time editing <a class="xref" href="Terminal.Gui.View.html">View</a>
     <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>

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.Toplevel.html

@@ -122,6 +122,9 @@ Toplevel views can be modally executed.
     <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>

+ 27 - 0
docs/api/Terminal.Gui/Terminal.Gui.View.html

@@ -488,6 +488,33 @@ Gets or sets an identifier for the view;
   </table>
   
   
+  <a id="Terminal_Gui_View_IsCurrentTop_" data-uid="Terminal.Gui.View.IsCurrentTop*"></a>
+  <h4 id="Terminal_Gui_View_IsCurrentTop" data-uid="Terminal.Gui.View.IsCurrentTop">IsCurrentTop</h4>
+  <div class="markdown level1 summary">
+Returns a value indicating if this View is currently on Top (Active)
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool IsCurrentTop { 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.Boolean</span></td>
+        <td></td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
   <a id="Terminal_Gui_View_LayoutStyle_" data-uid="Terminal.Gui.View.LayoutStyle*"></a>
   <h4 id="Terminal_Gui_View_LayoutStyle" data-uid="Terminal.Gui.View.LayoutStyle">LayoutStyle</h4>
   <div class="markdown level1 summary">

+ 3 - 0
docs/api/Terminal.Gui/Terminal.Gui.Window.html

@@ -150,6 +150,9 @@ A <a class="xref" href="Terminal.Gui.Toplevel.html">Toplevel</a> <a class="xref"
     <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>

+ 115 - 0
docs/articles/index.html

@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Conceptual Documentation </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Conceptual Documentation ">
+    <meta name="generator" content="docfx 2.53.1.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">
+    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+    <meta property="docfx:navrel" content="">
+    <meta property="docfx:tocrel" content="">
+    
+    <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"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        <div class="article row grid">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="">
+<h1 id="conceptual-documentation">Conceptual Documentation</h1>
+
+<ul>
+<li><a href="overview.html">Terminal.Gui Overview</a></li>
+<li><a href="keyboard.html">Keyboard Event Processing</a></li>
+<li><a href="mainloop.html">Event Processing and the Application Main Loop</a></li>
+</ul>
+</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">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </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>

+ 137 - 0
docs/articles/keyboard.html

@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Keyboard Event Processing </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Keyboard Event Processing ">
+    <meta name="generator" content="docfx 2.53.1.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">
+    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+    <meta property="docfx:navrel" content="">
+    <meta property="docfx:tocrel" content="">
+    
+    <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"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        <div class="article row grid">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="">
+<h1 id="keyboard-event-processing">Keyboard Event Processing</h1>
+
+<p>Keyboard events are sent by the <a href="mainloop.html">Main Loop</a> to the
+Application class for processing.  The keyboard events are sent
+exclusively to the current <code>Toplevel</code>, this being either the default
+that is created when you call <code>Application.Init</code>, or one that you
+created an passed to <code>Application.Run(Toplevel)</code>. </p>
+<h2 id="flow">Flow</h2>
+<p>Keystrokes are first processes as hotkeys, then as regular keys, and
+there is a final cold post-processing event that is invoked if no view
+processed the key.</p>
+<h2 id="hotkey-processing">HotKey Processing</h2>
+<p>Events are first send to all views as a &quot;HotKey&quot;, this means that the
+<code>View.ProcessHotKey</code> method is invoked on the current toplevel, which
+in turns propagates this to all the views in the hierarchy.  If any
+view decides to process the event, no further processing takes place.</p>
+<p>This is how hotkeys for buttons are implemented.  For example, the
+keystroke &quot;Alt-A&quot; is handled by Buttons that have a hot-letter &quot;A&quot; to
+activate the button.</p>
+<h2 id="regular-processing">Regular Processing</h2>
+<p>Unlike the hotkey processing, the regular processing is only sent to
+the currently focused view in the focus chain.</p>
+<p>The regular key processing is only invoked if no hotkey was caught.</p>
+<h2 id="cold-key-processing">Cold-key Processing</h2>
+<p>This stage only is executed if the focused view did not process the
+event, and is broadcast to all the views in the Toplevel.</p>
+<p>This method can be overwritten by views that want to provide
+accelerator functionality (Alt-key for example), but without
+interefering with normal ProcessKey behavior.</p>
+</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">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </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>

+ 220 - 0
docs/articles/mainloop.html

@@ -0,0 +1,220 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Event Processing and the Application Main Loop </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Event Processing and the Application Main Loop ">
+    <meta name="generator" content="docfx 2.53.1.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">
+    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+    <meta property="docfx:navrel" content="">
+    <meta property="docfx:tocrel" content="">
+    
+    <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"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        <div class="article row grid">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="">
+<h1 id="event-processing-and-the-application-main-loop">Event Processing and the Application Main Loop</h1>
+
+<p>The method <code>Application.Run</code> that we covered before will wait for
+events from either the keyboard or mouse and route those events to the
+proper view.</p>
+<p>The job of waiting for events and dispatching them in the
+<code>Application</code> is implemented by an instance of the
+<a href=""><code>MainLoop</code></a>
+class.</p>
+<p>Mainloops are a common idiom in many user interface toolkits so many
+of the concepts will be familiar to you if you have used other
+toolkits before.</p>
+<p>This class provides the following capabilities:</p>
+<ul>
+<li>Keyboard and mouse processing</li>
+<li>.NET Async support</li>
+<li>Timers processing</li>
+<li>Invoking of UI code from a background thread</li>
+<li>Idle processing handlers</li>
+<li>Possibility of integration with other mainloops.</li>
+<li>On Unix systems, it can monitor file descriptors for readability or writability.</li>
+</ul>
+<p>The <code>MainLoop</code> property in the the
+<a href="../api/Terminal.Gui/Terminal.Gui.Application.html"><code>Application</code></a>
+provides access to these functions.</p>
+<p>When your code invokes <code>Application.Run (Toplevel)</code>, the application
+will prepare the current
+<a href="../api/Terminal.Gui/Terminal.Gui.Toplevel.html"><code>Toplevel</code></a> instance by
+redrawing the screen appropriately and then calling the mainloop to
+run.    </p>
+<p>You can configure the Mainloop before calling Application.Run, or you
+can configure the MainLoop in response to events during the execution.</p>
+<p>The keyboard inputs is dispatched by the application class to the
+current TopLevel window this is covered in more detail in the
+<a href="keyboard.html">Keyboard Event Processing</a> document.</p>
+<h2 id="async-execution">Async Execution</h2>
+<p>On startup, the <code>Application</code> class configured the .NET Asynchronous
+machinery to allow you to use the <code>await</code> keyword to run tasks in the
+background and have the execution of those tasks resume on the context
+of the main thread running the main loop.</p>
+<p>Once you invoke <code>Application.Main</code> the async machinery will be ready
+to use, and you can merely call methods using <code>await</code> from your main
+thread, and the awaited code will resume execution on the main
+thread. </p>
+<h2 id="timers-processing">Timers Processing</h2>
+<p>You can register timers to be executed at specified intervals by
+calling the <a href=""><code>AddTimeout</code></a> method, like this:</p>
+<pre><code class="lang-csharp">void UpdateTimer ()
+{
+    time.Text = DateTime.Now.ToString ();
+}
+
+var token = Application.MainLoop.AddTimeout (TimeSpan.FromSeconds (20), UpdateTimer);
+</code></pre><p>The return value from AddTimeout is a token value that you can use if
+you desire to cancel the timer before it runs:</p>
+<pre><code class="lang-csharup">Application.MainLoop.RemoveTimeout (token);
+</code></pre><h2 id="idle-handlers">Idle Handlers</h2>
+<p>You can register code to be executed when the application is idling
+and there are no events to process by calling the
+<a href=""><code>AddIdle</code></a>
+method.  This method takes as a parameter a function that will be
+invoked when the application is idling.  </p>
+<p>Idle functions should return <code>true</code> if they should be invoked again,
+and <code>false</code> if the idle invocations should stop.</p>
+<p>Like the timer APIs, the return value is a token that can be used to
+cancel the scheduled idle function from being executed.</p>
+<h2 id="threading">Threading</h2>
+<p>Like other UI toolkits, Terminal.Gui is generally not thread safe.
+You should avoid calling methods in the UI classes from a background
+thread as there is no guarantee that they will not corrupt the state
+of the UI application.  </p>
+<p>Generally, as there is not much state, you will get lucky, but the
+application will not behave properly.</p>
+<p>You will be served better off by using C# async machinery and the
+various APIs in the <code>System.Threading.Tasks.Task</code> APIs.   But if you
+absolutely must work with threads on your own you should only invoke
+APIs in Terminal.Gui from the main thread.</p>
+<p>To make this simple, you can use the <code>Application.MainLoop.Invoke</code>
+method and pass an <code>Action</code>.  This action will be queued for execution
+on the main thread at an appropriate time and will run your code
+there.</p>
+<p>For example, the following shows how to properly update a label from a
+background thread:</p>
+<pre><code>void BackgroundThreadUpdateProgress ()
+{
+    Application.MainLoop.Invoke (() =&gt; {
+        progress.Text = $&quot;Progress: {bytesDownloaded/totalBytes}&quot;;
+        });
+}
+</code></pre><h2 id="integration-with-other-main-loop-drivers">Integration With Other Main Loop Drivers</h2>
+<p>It is possible to run the main loop in a way that it does not take
+over control of your application, but rather in a cooperative way.</p>
+<p>To do this, you must use the lower-level APIs in <code>Application</code>: the
+<code>Begin</code> method to prepare a toplevel for execution, followed by calls
+to <code>MainLoop.EventsPending</code> to determine whether the events must be
+processed, and in that case, calling <code>RunLoop</code> method and finally
+completing the process  by calling <code>End</code>.</p>
+<p>The method <code>Run</code> is implemented like this:</p>
+<pre><code>void Run (Toplevel top)
+{
+    var runToken = Begin (view);
+    RunLoop (runToken);
+    End (runToken);
+}
+</code></pre><h2 id="unix-file-descriptor-monitoring">Unix File Descriptor Monitoring</h2>
+<p>On Unix, it is possible to monitor file descriptors for input being
+available, or for the file descriptor being available for data to be
+written without blocking the application.</p>
+<p>To do this, you on Unix, you can cast the <code>MainLoop</code> instance to a
+<a href=""><code>UnixMainLoop</code></a>
+and use the <code>AddWatch</code> method to register an interest on a particular
+condition.</p>
+</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">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </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>

+ 436 - 0
docs/articles/overview.html

@@ -0,0 +1,436 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Terminal.Gui API Overview </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Terminal.Gui API Overview ">
+    <meta name="generator" content="docfx 2.53.1.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">
+    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+    <meta property="docfx:navrel" content="">
+    <meta property="docfx:tocrel" content="">
+    
+    <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"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        <div class="article row grid">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="">
+<h1 id="terminalgui-api-overview">Terminal.Gui API Overview</h1>
+
+<p><code>Terminal.Gui</code> is a library intended to create console-based
+applications using C#. The framework has been designed to make it
+easy to write applications that will work on monochrome terminals, as
+well as modern color terminals with mouse support.</p>
+<p>This library works across Windows, Linux and MacOS.</p>
+<p>This library provides a text-based toolkit as works in a way similar
+to graphic toolkits.   There are many controls that can be used to
+create your applications and it is event based, meaning that you
+create the user interface, hook up various events and then let the
+a processing loop run your application, and your code is invoked via
+one or more callbacks.</p>
+<p>The simplest application looks like this:</p>
+<pre><code class="lang-csharp">using Terminal.Gui;
+
+class Demo {
+    static int Main ()
+    {
+        Application.Init ();
+
+        var n = MessageBox.Query (50, 7, 
+            &quot;Question&quot;, &quot;Do you like console apps?&quot;, &quot;Yes&quot;, &quot;No&quot;);
+
+        return n;
+    }
+}
+</code></pre><p>This example shows a prompt and returns an integer value depending on
+which value was selected by the user (Yes, No, or if they use chose
+not to make a decision and instead pressed the ESC key).</p>
+<p>More interesting user interfaces can be created by composing some of
+the various views that are included.   In the following sections, you
+will see how applications are put together.</p>
+<p>In the example above, you can see that we have initialized the runtime by calling the 
+<a href="../api/Terminal.Gui/Terminal.Gui.Application.html#Terminal_Gui_Application_Init"><code>Init</code></a> method in the Application class - this sets up the environment, initializes the color
+schemes available for your application and clears the screen to start your application.</p>
+<p>The <a href="../api/Terminal.Gui/Terminal.Gui.Application.html"><code>Application</code></a> class, additionally creates an instance of the [Toplevel]((../api/Terminal.Gui/Terminal.Gui.Toplevel.html) class that is ready to be consumed, 
+this instance is available in the <code>Application.Top</code> property, and can be used like this:</p>
+<pre><code class="lang-csharp">using Terminal.Gui;
+
+class Demo {
+    static int Main ()
+    {
+        Application.Init ();
+
+        var label = new Label (&quot;Hello World&quot;) {
+            X = Pos.Center (),
+            Y = Pos.Center (),
+            Height = 1,
+        };
+        Application.Top.Add (label);
+        Application.Run ();
+    }
+}
+</code></pre><p>Typically, you will want your application to have more than a label, you might
+want a menu, and a region for your application to live in, the following code
+does this:</p>
+<pre><code class="lang-csharp">using Terminal.Gui;
+
+class Demo {
+    static int Main ()
+    {
+        Application.Init ();
+        var menu = new MenuBar (new MenuBarItem [] {
+            new MenuBarItem (&quot;_File&quot;, new MenuItem [] {
+                new MenuItem (&quot;_Quit&quot;, &quot;&quot;, () =&gt; { 
+                    Application.RequestStop (); 
+                })
+            }),
+        });
+
+        var win = new Window (&quot;Hello&quot;) {
+            X = 0,
+            Y = 1,
+            Width = Dim.Fill (),
+            Height = Dim.Fill () - 1
+        };
+
+        // Add both menu and win in a single call
+        Application.Top.Add (menu, win);
+        Application.Run ();
+    }
+}
+</code></pre><h1 id="views">Views</h1>
+<p>All visible elements on a Terminal.Gui application are implemented as
+<a href="../api/Terminal.Gui/Terminal.Gui.View.html">Views</a>.   Views are self-contained
+objects that take care of displaying themselves, can receive keyboard and mouse
+input and participate in the focus mechanism.</p>
+<p>Every view can contain an arbitrary number of children views.   These are called
+the Subviews.   You can add a view to an existing view, by calling the 
+<a href="../api/Terminal.Gui/Terminal.Gui.View.html#Terminal_Gui_View_Add_Terminal_Gui_View_"><code>Add</code></a> method, for example, to add a couple of buttons to a UI, you can do this:</p>
+<pre><code class="lang-csharp">void SetupMyView (View myView)
+{
+    var label = new Label (&quot;Username: &quot;) {
+        X = 1,
+        Y = 1,
+        Width = 20,
+        Height = 1
+    };
+    myView.Add (label);
+
+    var username = new TextField (&quot;&quot;) {
+        X = 1,
+        Y = 2,
+        Width = 30,
+        Height = 1
+    };
+    myView.Add (username);
+}
+</code></pre><p>The container of a given view is called the <code>SuperView</code> and it is a property of every
+View.</p>
+<p>There are many views that you can use to spice up your application:</p>
+<p><a href="../api/Terminal.Gui/Terminal.Gui.Button.html">Buttons</a>, <a href="../api/Terminal.Gui/Terminal.Gui.Label.html">Labels</a>, <a href="../api/Terminal.Gui/Terminal.Gui.TextField.html">Text entry</a>, <a href="../api/Terminal.Gui/Terminal.Gui.TextView.html">Text view</a>, <a href="../api/Terminal.Gui/Terminal.Gui.RadioGroup.html">Radio buttons</a>, <a href="../api/Terminal.Gui/Terminal.Gui.CheckBox.html">Checkboxes</a>, <a href="../api/Terminal.Gui/Terminal.Gui.Dialog.html">Dialog boxes</a>, <a href="../api/Terminal.Gui/Terminal.Gui.MessageBox.html">Message boxes</a>, <a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Windows</a>, <a href="../api/Terminal.Gui/Terminal.Gui.MenuBar.html">Menus</a>, <a href="../api/Terminal.Gui/Terminal.Gui.ListView.html">ListViews</a>, <a href="../api/Terminal.Gui/Terminal.Gui.FrameView.html">Frames</a>, <a href="../api/Terminal.Gui/Terminal.Gui.ProgressBar.html">ProgressBars</a>, <a href="../api/Terminal.Gui/Terminal.Gui.ScrollView.html">Scroll views</a> and <a href="../api/Terminal.Gui/Terminal.Gui.ScrollBarView.html">Scrollbars</a>.</p>
+<h2 id="layout">Layout</h2>
+<p><code>Terminal.Gui</code> supports two different layout systems, absolute and computed \
+(controlled by the <a href="../api/Terminal.Gui/Terminal.Gui.LayoutStyle.html"><code>LayoutStyle</code></a>
+property on the view.</p>
+<p>The absolute system is used when you want the view to be positioned exactly in
+one location and want to manually control where the view is.   This is done
+by invoking your View constructor with an argument of type <a href="../api/Terminal.Gui/Terminal.Gui.Rect.html"><code>Rect</code></a>.   When you do this, to change the
+position of the View, you can change the <code>Frame</code> property on the View.</p>
+<p>The computed layout system offers a few additional capabilities, like automatic
+centering, expanding of dimensions and a handful of other features.  To use
+this you construct your object without an initial <code>Frame</code>, but set the 
+ <code>X</code>, <code>Y</code>, <code>Width</code> and <code>Height</code> properties after the object has been created.</p>
+<p>Examples:</p>
+<pre><code class="lang-csharp">
+// Dynamically computed
+var label = new Label (&quot;Hello&quot;) {
+    X = 1,
+    Y = Pos.Center (),
+    Width = Dim.Fill (),
+    Height = 1
+};
+
+// Absolute position using the provided rectangle
+var label2 = new Label (new Rect (1, 2, 20, 1), &quot;World&quot;)
+</code></pre><p>The computed layout system does not take integers, instead the <code>X</code> and <code>Y</code> properties are of type <a href="../api/Terminal.Gui/Terminal.Gui.Pos.html"><code>Pos</code></a> and the <code>Width</code> and <code>Height</code> properties are of type <a href="../api/Terminal.Gui/Terminal.Gui.Dim.html"><code>Dim</code></a> both which can be created implicitly from integer values.</p>
+<h3 id="the-pos-type">The <code>Pos</code> Type</h3>
+<p>The <code>Pos</code> type on <code>X</code> and <code>Y</code> offers a few options:</p>
+<ul>
+<li>Absolute position, by passing an integer</li>
+<li>Percentage of the parent&#39;s view size - <code>Pos.Percent(n)</code></li>
+<li>Anchored from the end of the dimension - <code>AnchorEnd(int margin=0)</code></li>
+<li>Centered, using <code>Center()</code></li>
+<li>Reference the Left (X), Top (Y), Bottom, Right positions of another view</li>
+</ul>
+<p>The <code>Pos</code> values can be added or subtracted, like this:</p>
+<pre><code class="lang-csharp">// Set the X coordinate to 10 characters left from the center
+view.X = Pos.Center () - 10;
+
+view.Y = Pos.Percent (20);
+
+anotherView.X = AnchorEnd (10);
+anotherView.Width = 9;
+
+myView.X = Pos.X (view);
+myView.Y = Pos.Bottom (anotherView);
+</code></pre><h3 id="the-dim-type">The <code>Dim</code> Type</h3>
+<p>The <code>Dim</code> type is used for the <code>Width</code> and <code>Height</code> properties on the View and offers
+the following options:</p>
+<ul>
+<li>Absolute size, by passing an integer</li>
+<li>Percentage of the parent&#39;s view size - <code>Dim.Percent(n)</code></li>
+<li>Fill to the end - <code>Dim.Fill ()</code></li>
+<li>Reference the Width or Height of another view</li>
+</ul>
+<p>Like, <code>Pos</code>, objects of type <code>Dim</code> can be added an subtracted, like this:</p>
+<pre><code class="lang-csharp">// Set the Width to be 10 characters less than filling 
+// the remaining portion of the screen
+view.Width = Dim.Fill () - 10;
+
+view.Height = Dim.Percent(20) - 1;
+
+anotherView.Height = Dim.Height (view)+1
+</code></pre><h1 id="toplevels-windows-and-dialogs">TopLevels, Windows and Dialogs.</h1>
+<p>Among the many kinds of views, you typically will create a <a href="../api/Terminal.Gui/Terminal.Gui.Toplevel.html">Toplevel</a> view (or any of its subclasses,
+like <a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Window</a> or <a href="../api/Terminal.Gui/Terminal.Gui.Dialog.html">Dialog</a> which is special kind of views
+that can be executed modally - that is, the view can take over all input and returns
+only when the user chooses to complete their work there.   </p>
+<p>The following sections cover the differences.</p>
+<h2 id="toplevel-views">TopLevel Views</h2>
+<p><a href="../api/Terminal.Gui/Terminal.Gui.Toplevel.html">Toplevel</a> views have no visible user interface elements and occupy an arbitrary portion of the screen.</p>
+<p>You would use a toplevel Modal view for example to launch an entire new experience in your application, one where you would have a new top-level menu for example.   You 
+typically would add a Menu and a Window to your Toplevel, it would look like this:</p>
+<pre><code class="lang-csharp">using Terminal.Gui;
+
+class Demo {
+    static void Edit (string filename)
+    {
+        var top = new Toplevel () { 
+            X = 0, 
+            Y = 0, 
+            Width = Dim.Fill (), 
+            Height = Dim.Fill () 
+        };
+        var menu = new MenuBar (new MenuBarItem [] {
+            new MenuBarItem (&quot;_File&quot;, new MenuItem [] {
+                new MenuItem (&quot;_Close&quot;, &quot;&quot;, () =&gt; { 
+                    Application.RequestStop ();
+                })
+            }),
+        });
+
+        // nest a window for the editor
+        var win = new Window (filename) {
+            X = 0,
+            Y = 1,
+            Width = Dim.Fill (),
+            Height = Dim.Fill () - 1
+        };
+
+        var editor = new TextView () {
+            X = 0, 
+            Y = 0,
+            Width = Dim.Fill (),
+            Height = Dim.Fill ()
+        };
+        editor.Text = System.IO.File.ReadAllText (filename);
+        win.Add (editor);
+
+        // Add both menu and win in a single call
+        top.Add (win, menu);
+        Application.Run (top);
+    }
+}
+</code></pre><h2 id="window-views">Window Views</h2>
+<p><a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Window</a> views extend the Toplevel view by providing a frame and a title around the toplevel - and can be moved on the screen with the mouse (caveat: code is currently disabled)</p>
+<p>From a user interface perspective, you might have more than one Window on the screen at a given time.</p>
+<h2 id="dialogs">Dialogs</h2>
+<p><a href="../api/Terminal.Gui/Terminal.Gui.Dialog.html">Dialog</a> are <a href="../api/Terminal.Gui/Terminal.Gui.Window.html">Window</a> objects that happen to be centered in the middle of the screen.</p>
+<p>Dialogs are instances of a Window that are centered in the screen, and are intended
+to be used modally - that is, they run, and they are expected to return a result 
+before resuming execution of your application.</p>
+<p>Dialogs are a subclass of <code>Window</code> and additionally expose the 
+<a href="https://migueldeicaza.github.io/gui.cs/api/Terminal.Gui/Terminal.Gui.Dialog.html#Terminal_Gui_Dialog_AddButton_Terminal_Gui_Button_"><code>AddButton</code></a> API which manages the layout
+of any button passed to it, ensuring that the buttons are at the bottom of the dialog.</p>
+<p>Example:</p>
+<pre><code class="lang-csharp">bool okpressed = false;
+var ok = new Button(&quot;Ok&quot;);
+var cancel = new Button(&quot;Cancel&quot;);
+var dialog = new Dialog (&quot;Quit&quot;, 60, 7, ok, cancel);
+</code></pre><p>Which will show something like this:</p>
+<pre><code>+- Quit -----------------------------------------------+
+|                                                      |
+|                                                      |
+|                  [ Ok ] [ Cancel ]                   |
++------------------------------------------------------+
+</code></pre><h2 id="running-modally">Running Modally</h2>
+<p>To run your Dialog, Window or Toplevel modally, you will invoke the <code>Application.Run</code>
+method on the toplevel.   It is up to your code and event handlers to invoke the <code>Application.RequestStop()</code> method to terminate the modal execution.</p>
+<pre><code class="lang-csharp">bool okpressed = false;
+var ok = new Button(3, 14, &quot;Ok&quot;) { 
+    Clicked = () =&gt; { Application.RequestStop (); okpressed = true; }
+};
+var cancel = new Button(10, 14, &quot;Cancel&quot;) {
+    Clicked = () =&gt; Application.RequestStop () 
+};
+var dialog = new Dialog (&quot;Login&quot;, 60, 18, ok, cancel);
+
+var entry = new TextField () {
+    X = 1, 
+    Y = 1,
+    Width = Dim.Fill (),
+    Height = 1
+};
+dialog.Add (entry);
+Application.Run (dialog);
+if (okpressed)
+    Console.WriteLine (&quot;The user entered: &quot; + entry.Text);
+</code></pre><p>There is no return value from running modally, so your code will need to have a mechanism
+of indicating the reason that the execution of the modal dialog was completed, in the 
+case above, the <code>okpressed</code> value is set to true if the user pressed or selected the Ok button.</p>
+<h1 id="input-handling">Input Handling</h1>
+<p>Every view has a focused view, and if that view has nested views, one of those is 
+the focused view.   This is called the focus chain, and at any given time, only one
+View has the focus.   </p>
+<p>The library binds the key Tab to focus the next logical view,
+and the Shift-Tab combination to focus the previous logical view.   </p>
+<p>Keyboard processing is divided in three stages: HotKey processing, regular processing and
+cold key processing.   </p>
+<ul>
+<li><p>Hot key processing happens first, and it gives all the views in the current
+toplevel a chance to monitor whether the key needs to be treated specially.  This
+for example handles the scenarios where the user pressed Alt-o, and a view with a 
+highlighted &quot;o&quot; is being displayed.</p>
+</li>
+<li><p>If no view processed the hotkey, then the key is sent to the currently focused
+view.</p>
+</li>
+<li><p>If the key was not processed by the normal processing, all views are given 
+a chance to process the keystroke in their cold processing stage.  Examples
+include the processing of the &quot;return&quot; key in a dialog when a button in the
+dialog has been flagged as the &quot;default&quot; action.</p>
+</li>
+</ul>
+<p>The most common case is the normal processing, which sends the keystrokes to the
+currently focused view.</p>
+<p>Mouse events are processed in visual order, and the event will be sent to the
+view on the screen.   The only exception is that no mouse events are delivered
+to background views when a modal view is running.   </p>
+<p>More details are available on the <a href="keyboard.html"><code>Keyboard Event Processing</code></a> document.</p>
+<h1 id="colors-and-color-schemes">Colors and Color Schemes</h1>
+<p>All views have been configured with a color scheme that will work both in color
+terminals as well as the more limited black and white terminals.   </p>
+<p>The various styles are captured in the <a href="../api/Terminal.Gui/Terminal.Gui.Colors.html"><code>Colors</code></a> class which defined color schemes for
+the normal views, the menu bar, popup dialog boxes and error dialog boxes, that you can use like this:</p>
+<ul>
+<li><code>Colors.Base</code></li>
+<li><code>Colors.Menu</code></li>
+<li><code>Colors.Dialog</code></li>
+<li><code>Colors.Error</code></li>
+</ul>
+<p>You can use them for example like this to set the colors for a new Window:</p>
+<pre><code>var w = new Window (&quot;Hello&quot;);
+w.ColorScheme = Colors.Error
+</code></pre><p>The <a href="../api/Terminal.Gui/Terminal.Gui.ColorScheme.html"><code>ColorScheme</code></a> represents
+four values, the color used for Normal text, the color used for normal text when
+a view is focused an the colors for the hot-keys both in focused and unfocused modes.</p>
+<p>By using <code>ColorSchemes</code> you ensure that your application will work correctbly both
+in color and black and white terminals.</p>
+<p>Some views support setting individual color attributes, you create an
+attribute for a particular pair of Foreground/Background like this:</p>
+<pre><code>var myColor = Application.Driver.MakeAttribute (Color.Blue, Color.Red);
+var label = new Label (...);
+label.TextColor = myColor
+</code></pre><h1 id="mainloop-threads-and-input-handling">MainLoop, Threads and Input Handling</h1>
+<p>Detailed description of the mainlop is described on the <a href="mainloop.html">Event Processing and the Application Main Loop</a> document.</p>
+</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">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </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>

+ 117 - 0
docs/articles/views.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Views </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Views ">
+    <meta name="generator" content="docfx 2.53.1.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">
+    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet"> 
+    <meta property="docfx:navrel" content="">
+    <meta property="docfx:tocrel" content="">
+    
+    <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"></div>
+          <div class="sr-items">
+            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
+          </div>
+          <ul id="pagination"></ul>
+        </div>
+      </div>
+      <div role="main" class="container body-content hide-when-search">
+        <div class="article row grid">
+          <div class="col-md-10">
+            <article class="content wrap" id="_content" data-uid="">
+<h1 id="views">Views</h1>
+
+<h1 id="layout">Layout</h1>
+<h1 id="creating-custom-views">Creating Custom Views</h1>
+<h2 id="constructor">Constructor</h2>
+<h2 id="rendering">Rendering</h2>
+<h3 id="using-custom-colors">Using Custom Colors</h3>
+<h2 id="keyboard-processing">Keyboard processing</h2>
+<h2 id="mouse-event-processing">Mouse event processing</h2>
+</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">
+              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
+              </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>

File diff suppressed because it is too large
+ 0 - 0
docs/index.json


+ 98 - 26
docs/manifest.json

@@ -126,7 +126,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.Button.html",
-          "hash": "ilXNdpYPiE1OJCU7+1lCLw=="
+          "hash": "DPqk1YW7zWdTAHdKvgrmvQ=="
         }
       },
       "is_incremental": false,
@@ -138,7 +138,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.CheckBox.html",
-          "hash": "Cbl89aC2ejrTf8zNOtzcsQ=="
+          "hash": "h+TxnYmO2bL74EKIthAV0g=="
         }
       },
       "is_incremental": false,
@@ -198,7 +198,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.ComboBox.html",
-          "hash": "Zey5Xu3k3/8vfC9a59sA1A=="
+          "hash": "NEaAt7h3dfVr/0lmWoixpA=="
         }
       },
       "is_incremental": false,
@@ -234,7 +234,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.DateField.html",
-          "hash": "nS+Bsuzc9GCUQmhtTiTIUg=="
+          "hash": "SVdI9shNZqsipNelRy2yUQ=="
         }
       },
       "is_incremental": false,
@@ -246,7 +246,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.Dialog.html",
-          "hash": "UWcJ7RMX29z1JpnA32IqKg=="
+          "hash": "xNXXfNqW1djDbbTFnuWvLw=="
         }
       },
       "is_incremental": false,
@@ -270,7 +270,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.FileDialog.html",
-          "hash": "EVTb/fhVHCrjyS0UqJm29w=="
+          "hash": "4jK2oHF8nhAics9kABKnvg=="
         }
       },
       "is_incremental": false,
@@ -282,7 +282,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.FrameView.html",
-          "hash": "ajN8HLD+4gKgcE/B2X3Wwg=="
+          "hash": "WhXoplCWivxd919cExe0fg=="
         }
       },
       "is_incremental": false,
@@ -294,7 +294,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.HexView.html",
-          "hash": "XPJ46K0S8RlS8a5UiDZEsw=="
+          "hash": "UieMUUEcCS+KaMcfttPYXw=="
         }
       },
       "is_incremental": false,
@@ -342,7 +342,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.Label.html",
-          "hash": "pwVeTei/vdIDxK8K+3ctqQ=="
+          "hash": "OwQ94j2YlYvHBNouV5VysQ=="
         }
       },
       "is_incremental": false,
@@ -366,7 +366,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.ListView.html",
-          "hash": "oKA/PNKQmL7qMGo5iadfjg=="
+          "hash": "6fNA37R4D3IRokJF8ei2Pg=="
         }
       },
       "is_incremental": false,
@@ -402,7 +402,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.MenuBar.html",
-          "hash": "beoKZaYWneiHnW2E9LOBqg=="
+          "hash": "Y4x1nboKWkISg6Scs4LoGw=="
         }
       },
       "is_incremental": false,
@@ -474,7 +474,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.OpenDialog.html",
-          "hash": "v4Pfg2yez0022e2feoDdtw=="
+          "hash": "BO7HL76h2mZ99N6SRtFSvA=="
         }
       },
       "is_incremental": false,
@@ -510,7 +510,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.ProgressBar.html",
-          "hash": "fQWxwtZ0AVgcay8u9u6QpQ=="
+          "hash": "iJqqparpcjqV9fiKTr6Z6g=="
         }
       },
       "is_incremental": false,
@@ -522,7 +522,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.RadioGroup.html",
-          "hash": "hk+Y0f+VWxqssH/yAOr9hg=="
+          "hash": "jTPFAiG8vUOLUGLLV+N/oQ=="
         }
       },
       "is_incremental": false,
@@ -558,7 +558,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.SaveDialog.html",
-          "hash": "Nm53mGgn8p5uNbeL+iG40g=="
+          "hash": "Jp6X+FExiw9UP8AWeBox6A=="
         }
       },
       "is_incremental": false,
@@ -570,7 +570,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.ScrollBarView.html",
-          "hash": "LIXjdf5ZVUrqPHIVnEDBcQ=="
+          "hash": "u1YykBL/tVQc7oWusxKk9A=="
         }
       },
       "is_incremental": false,
@@ -582,7 +582,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.ScrollView.html",
-          "hash": "/xOGZCuJ9iEc42rmfp559w=="
+          "hash": "DZ8owPSpQpS9D+TZL9utNg=="
         }
       },
       "is_incremental": false,
@@ -618,7 +618,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.StatusBar.html",
-          "hash": "V4K1vnnvRm7Om1LYnPFSVw=="
+          "hash": "eJTIklLmCvFJAU7G2Ai3zA=="
         }
       },
       "is_incremental": false,
@@ -654,7 +654,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.TextField.html",
-          "hash": "KAYeokUuA+aZhsNWqQ4bdA=="
+          "hash": "RZOjetrqKbvCH6RwwnxovA=="
         }
       },
       "is_incremental": false,
@@ -666,7 +666,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.TextView.html",
-          "hash": "2iTqEaYkGQviPo6yqEdDxQ=="
+          "hash": "VbIUZ5fUvyoA+mF620tOvg=="
         }
       },
       "is_incremental": false,
@@ -678,7 +678,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.TimeField.html",
-          "hash": "H+wxXjEnHuTT4geNf3eGjg=="
+          "hash": "qHj8zJzjpju3K87ib+wioQ=="
         }
       },
       "is_incremental": false,
@@ -690,7 +690,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.Toplevel.html",
-          "hash": "FI3Z1qb9QgaDxJPWU5xczA=="
+          "hash": "tBSiS1Y23Fj1qMUA/SF08g=="
         }
       },
       "is_incremental": false,
@@ -714,7 +714,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.View.html",
-          "hash": "aT9vupbHNZ6NO0LI3e9ZgQ=="
+          "hash": "sTbbY0w9ioS2fxDSOWT5Xg=="
         }
       },
       "is_incremental": false,
@@ -726,7 +726,7 @@
       "output": {
         ".html": {
           "relative_path": "api/Terminal.Gui/Terminal.Gui.Window.html",
-          "hash": "7bWJ7tjWH8J9nKg+ypKQCQ=="
+          "hash": "0VBLxR7lZU3IQKbubTD+FA=="
         }
       },
       "is_incremental": false,
@@ -888,6 +888,78 @@
       "is_incremental": false,
       "version": ""
     },
+    {
+      "log_codes": [
+        "InvalidFileLink"
+      ],
+      "type": "Conceptual",
+      "source_relative_path": "articles/index.md",
+      "output": {
+        ".html": {
+          "relative_path": "articles/index.html",
+          "hash": "u5MbFvWPgaLbF3dmQPptFQ=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "log_codes": [
+        "InvalidFileLink"
+      ],
+      "type": "Conceptual",
+      "source_relative_path": "articles/keyboard.md",
+      "output": {
+        ".html": {
+          "relative_path": "articles/keyboard.html",
+          "hash": "9TB/0rhbNFDq23mWiPMmlQ=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "log_codes": [
+        "InvalidFileLink"
+      ],
+      "type": "Conceptual",
+      "source_relative_path": "articles/mainloop.md",
+      "output": {
+        ".html": {
+          "relative_path": "articles/mainloop.html",
+          "hash": "UbzMNAse3jLWLOxEnm2tog=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "log_codes": [
+        "InvalidFileLink"
+      ],
+      "type": "Conceptual",
+      "source_relative_path": "articles/overview.md",
+      "output": {
+        ".html": {
+          "relative_path": "articles/overview.html",
+          "hash": "ZuXXiSy4n3r3tDlv7/OjRw=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
+    {
+      "type": "Conceptual",
+      "source_relative_path": "articles/views.md",
+      "output": {
+        ".html": {
+          "relative_path": "articles/views.html",
+          "hash": "VM8NCSAPSFlqb7aMLHxn+A=="
+        }
+      },
+      "is_incremental": false,
+      "version": ""
+    },
     {
       "type": "Resource",
       "source_relative_path": "images/logo.png",
@@ -938,8 +1010,8 @@
         "ConceptualDocumentProcessor": {
           "can_incremental": true,
           "incrementalPhase": "build",
-          "total_file_count": 1,
-          "skipped_file_count": 1
+          "total_file_count": 6,
+          "skipped_file_count": 6
         },
         "ManagedReferenceDocumentProcessor": {
           "can_incremental": true,

+ 52 - 13
docs/xrefmap.yml

@@ -3759,6 +3759,32 @@ references:
   isSpec: "True"
   fullName: Terminal.Gui.MenuBar.MenuBar
   nameWithType: MenuBar.MenuBar
+- uid: Terminal.Gui.MenuBar.CloseMenu
+  name: CloseMenu()
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_CloseMenu
+  commentId: M:Terminal.Gui.MenuBar.CloseMenu
+  fullName: Terminal.Gui.MenuBar.CloseMenu()
+  nameWithType: MenuBar.CloseMenu()
+- uid: Terminal.Gui.MenuBar.CloseMenu*
+  name: CloseMenu
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_CloseMenu_
+  commentId: Overload:Terminal.Gui.MenuBar.CloseMenu
+  isSpec: "True"
+  fullName: Terminal.Gui.MenuBar.CloseMenu
+  nameWithType: MenuBar.CloseMenu
+- uid: Terminal.Gui.MenuBar.IsMenuOpen
+  name: IsMenuOpen
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_IsMenuOpen
+  commentId: P:Terminal.Gui.MenuBar.IsMenuOpen
+  fullName: Terminal.Gui.MenuBar.IsMenuOpen
+  nameWithType: MenuBar.IsMenuOpen
+- uid: Terminal.Gui.MenuBar.IsMenuOpen*
+  name: IsMenuOpen
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_IsMenuOpen_
+  commentId: Overload:Terminal.Gui.MenuBar.IsMenuOpen
+  isSpec: "True"
+  fullName: Terminal.Gui.MenuBar.IsMenuOpen
+  nameWithType: MenuBar.IsMenuOpen
 - uid: Terminal.Gui.MenuBar.LastFocused
   name: LastFocused
   href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_LastFocused
@@ -3772,19 +3798,6 @@ references:
   isSpec: "True"
   fullName: Terminal.Gui.MenuBar.LastFocused
   nameWithType: MenuBar.LastFocused
-- uid: Terminal.Gui.MenuBar.MenuOpen
-  name: MenuOpen
-  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_MenuOpen
-  commentId: P:Terminal.Gui.MenuBar.MenuOpen
-  fullName: Terminal.Gui.MenuBar.MenuOpen
-  nameWithType: MenuBar.MenuOpen
-- uid: Terminal.Gui.MenuBar.MenuOpen*
-  name: MenuOpen
-  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_MenuOpen_
-  commentId: Overload:Terminal.Gui.MenuBar.MenuOpen
-  isSpec: "True"
-  fullName: Terminal.Gui.MenuBar.MenuOpen
-  nameWithType: MenuBar.MenuOpen
 - uid: Terminal.Gui.MenuBar.Menus
   name: Menus
   href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_Menus
@@ -3849,6 +3862,19 @@ references:
   commentId: E:Terminal.Gui.MenuBar.OnOpenMenu
   fullName: Terminal.Gui.MenuBar.OnOpenMenu
   nameWithType: MenuBar.OnOpenMenu
+- uid: Terminal.Gui.MenuBar.OpenMenu
+  name: OpenMenu()
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_OpenMenu
+  commentId: M:Terminal.Gui.MenuBar.OpenMenu
+  fullName: Terminal.Gui.MenuBar.OpenMenu()
+  nameWithType: MenuBar.OpenMenu()
+- uid: Terminal.Gui.MenuBar.OpenMenu*
+  name: OpenMenu
+  href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_OpenMenu_
+  commentId: Overload:Terminal.Gui.MenuBar.OpenMenu
+  isSpec: "True"
+  fullName: Terminal.Gui.MenuBar.OpenMenu
+  nameWithType: MenuBar.OpenMenu
 - uid: Terminal.Gui.MenuBar.PositionCursor
   name: PositionCursor()
   href: api/Terminal.Gui/Terminal.Gui.MenuBar.html#Terminal_Gui_MenuBar_PositionCursor
@@ -7410,6 +7436,19 @@ references:
   isSpec: "True"
   fullName: Terminal.Gui.View.Id
   nameWithType: View.Id
+- uid: Terminal.Gui.View.IsCurrentTop
+  name: IsCurrentTop
+  href: api/Terminal.Gui/Terminal.Gui.View.html#Terminal_Gui_View_IsCurrentTop
+  commentId: P:Terminal.Gui.View.IsCurrentTop
+  fullName: Terminal.Gui.View.IsCurrentTop
+  nameWithType: View.IsCurrentTop
+- uid: Terminal.Gui.View.IsCurrentTop*
+  name: IsCurrentTop
+  href: api/Terminal.Gui/Terminal.Gui.View.html#Terminal_Gui_View_IsCurrentTop_
+  commentId: Overload:Terminal.Gui.View.IsCurrentTop
+  isSpec: "True"
+  fullName: Terminal.Gui.View.IsCurrentTop
+  nameWithType: View.IsCurrentTop
 - uid: Terminal.Gui.View.KeyDown
   name: KeyDown
   href: api/Terminal.Gui/Terminal.Gui.View.html#Terminal_Gui_View_KeyDown

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