miguel 7 anni fa
parent
commit
d0af3ea3f1

+ 165 - 0
docfx/api/Mono.Terminal/Mono.Terminal.IMainLoopDriver.yml

@@ -0,0 +1,165 @@
+### YamlMime:ManagedReference
+items:
+- uid: Mono.Terminal.IMainLoopDriver
+  id: IMainLoopDriver
+  children:
+  - Mono.Terminal.IMainLoopDriver.EventsPending(System.Boolean)
+  - Mono.Terminal.IMainLoopDriver.MainIteration
+  - Mono.Terminal.IMainLoopDriver.Setup(Mono.Terminal.MainLoop)
+  - Mono.Terminal.IMainLoopDriver.Wakeup
+  langs:
+  - csharp
+  name: IMainLoopDriver
+  nameWithType: IMainLoopDriver
+  fullName: Mono.Terminal.IMainLoopDriver
+  type: Interface
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Public interface to create your own platform specific main loop driver.
+  syntax:
+    content: public interface IMainLoopDriver
+  derivedClasses:
+  - Mono.Terminal.UnixMainLoop
+  implements: []
+- uid: Mono.Terminal.IMainLoopDriver.EventsPending(System.Boolean)
+  id: EventsPending(System.Boolean)
+  parent: Mono.Terminal.IMainLoopDriver
+  langs:
+  - csharp
+  name: EventsPending(Boolean)
+  nameWithType: IMainLoopDriver.EventsPending(Boolean)
+  fullName: IMainLoopDriver.EventsPending(Boolean)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Must report whether there are any events pending, or even block waiting for events.
+  syntax:
+    content: public bool EventsPending (bool wait);
+    parameters:
+    - id: wait
+      type: System.Boolean
+      description: If set to <code>true</code> wait until an event is available, otherwise return immediately.
+    return:
+      type: System.Boolean
+      description: <code>true</code>, if there were pending events, <code>false</code> otherwise.
+  overload: Mono.Terminal.IMainLoopDriver.EventsPending*
+  exceptions: []
+- uid: Mono.Terminal.IMainLoopDriver.MainIteration
+  id: MainIteration
+  parent: Mono.Terminal.IMainLoopDriver
+  langs:
+  - csharp
+  name: MainIteration()
+  nameWithType: IMainLoopDriver.MainIteration()
+  fullName: IMainLoopDriver.MainIteration()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: public void MainIteration ();
+    parameters: []
+  overload: Mono.Terminal.IMainLoopDriver.MainIteration*
+  exceptions: []
+- uid: Mono.Terminal.IMainLoopDriver.Setup(Mono.Terminal.MainLoop)
+  id: Setup(Mono.Terminal.MainLoop)
+  parent: Mono.Terminal.IMainLoopDriver
+  langs:
+  - csharp
+  name: Setup(MainLoop)
+  nameWithType: IMainLoopDriver.Setup(MainLoop)
+  fullName: IMainLoopDriver.Setup(MainLoop)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Initializes the main loop driver, gets the calling main loop for the initialization.
+  syntax:
+    content: public void Setup (Mono.Terminal.MainLoop mainLoop);
+    parameters:
+    - id: mainLoop
+      type: Mono.Terminal.MainLoop
+      description: Main loop.
+  overload: Mono.Terminal.IMainLoopDriver.Setup*
+  exceptions: []
+- uid: Mono.Terminal.IMainLoopDriver.Wakeup
+  id: Wakeup
+  parent: Mono.Terminal.IMainLoopDriver
+  langs:
+  - csharp
+  name: Wakeup()
+  nameWithType: IMainLoopDriver.Wakeup()
+  fullName: IMainLoopDriver.Wakeup()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Wakes up the mainloop that might be waiting on input, must be thread safe.
+  syntax:
+    content: public void Wakeup ();
+    parameters: []
+  overload: Mono.Terminal.IMainLoopDriver.Wakeup*
+  exceptions: []
+references:
+- uid: Mono.Terminal.IMainLoopDriver.EventsPending(System.Boolean)
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: EventsPending(Boolean)
+  nameWithType: IMainLoopDriver.EventsPending(Boolean)
+  fullName: IMainLoopDriver.EventsPending(Boolean)
+- uid: System.Boolean
+  parent: System
+  isExternal: true
+  name: Boolean
+  nameWithType: Boolean
+  fullName: System.Boolean
+- uid: Mono.Terminal.IMainLoopDriver.MainIteration
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: MainIteration()
+  nameWithType: IMainLoopDriver.MainIteration()
+  fullName: IMainLoopDriver.MainIteration()
+- uid: Mono.Terminal.IMainLoopDriver.Setup(Mono.Terminal.MainLoop)
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: Setup(MainLoop)
+  nameWithType: IMainLoopDriver.Setup(MainLoop)
+  fullName: IMainLoopDriver.Setup(MainLoop)
+- uid: Mono.Terminal.MainLoop
+  parent: Mono.Terminal
+  isExternal: false
+  name: MainLoop
+  nameWithType: MainLoop
+  fullName: Mono.Terminal.MainLoop
+- uid: Mono.Terminal.IMainLoopDriver.Wakeup
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: Wakeup()
+  nameWithType: IMainLoopDriver.Wakeup()
+  fullName: IMainLoopDriver.Wakeup()
+- uid: Mono.Terminal.IMainLoopDriver.EventsPending*
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: EventsPending
+  nameWithType: IMainLoopDriver.EventsPending
+  fullName: IMainLoopDriver.EventsPending
+- uid: Mono.Terminal.IMainLoopDriver.MainIteration*
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: MainIteration
+  nameWithType: IMainLoopDriver.MainIteration
+  fullName: IMainLoopDriver.MainIteration
+- uid: Mono.Terminal.IMainLoopDriver.Setup*
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: Setup
+  nameWithType: IMainLoopDriver.Setup
+  fullName: IMainLoopDriver.Setup
+- uid: Mono.Terminal.IMainLoopDriver.Wakeup*
+  parent: Mono.Terminal.IMainLoopDriver
+  isExternal: false
+  name: Wakeup
+  nameWithType: IMainLoopDriver.Wakeup
+  fullName: IMainLoopDriver.Wakeup

+ 193 - 0
docfx/api/Mono.Terminal/Mono.Terminal.UnixMainLoop.Condition.yml

@@ -0,0 +1,193 @@
+### YamlMime:ManagedReference
+items:
+- uid: Mono.Terminal.UnixMainLoop.Condition
+  id: UnixMainLoop.Condition
+  children:
+  - Mono.Terminal.UnixMainLoop.Condition.PollErr
+  - Mono.Terminal.UnixMainLoop.Condition.PollHup
+  - Mono.Terminal.UnixMainLoop.Condition.PollIn
+  - Mono.Terminal.UnixMainLoop.Condition.PollNval
+  - Mono.Terminal.UnixMainLoop.Condition.PollOut
+  - Mono.Terminal.UnixMainLoop.Condition.PollPri
+  langs:
+  - csharp
+  name: UnixMainLoop.Condition
+  nameWithType: UnixMainLoop.Condition
+  fullName: Mono.Terminal.UnixMainLoop.Condition
+  type: Enum
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Condition on which to wake up from file descriptor activity.  These match the Linux/BSD poll definitions.
+  syntax:
+    content: >-
+      [System.Flags]
+
+      public enum UnixMainLoop.Condition
+  inheritance:
+  - System.Enum
+  attributes:
+  - type: System.Flags
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollErr
+  id: PollErr
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollErr
+  nameWithType: UnixMainLoop.Condition.PollErr
+  fullName: UnixMainLoop.Condition.PollErr
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Error condition on output
+  syntax:
+    content: PollErr
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollHup
+  id: PollHup
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollHup
+  nameWithType: UnixMainLoop.Condition.PollHup
+  fullName: UnixMainLoop.Condition.PollHup
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Hang-up on output
+  syntax:
+    content: PollHup
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollIn
+  id: PollIn
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollIn
+  nameWithType: UnixMainLoop.Condition.PollIn
+  fullName: UnixMainLoop.Condition.PollIn
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: There is data to read
+  syntax:
+    content: PollIn
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollNval
+  id: PollNval
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollNval
+  nameWithType: UnixMainLoop.Condition.PollNval
+  fullName: UnixMainLoop.Condition.PollNval
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: File descriptor is not open.
+  syntax:
+    content: PollNval
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollOut
+  id: PollOut
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollOut
+  nameWithType: UnixMainLoop.Condition.PollOut
+  fullName: UnixMainLoop.Condition.PollOut
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Writing to the specified descriptor will not block
+  syntax:
+    content: PollOut
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollPri
+  id: PollPri
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  langs:
+  - csharp
+  name: PollPri
+  nameWithType: UnixMainLoop.Condition.PollPri
+  fullName: UnixMainLoop.Condition.PollPri
+  type: Field
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: There is urgent data to read
+  syntax:
+    content: PollPri
+    return:
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+  exceptions: []
+references:
+- uid: System.Enum
+  parent: System
+  isExternal: true
+  name: Enum
+  nameWithType: Enum
+  fullName: System.Enum
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollErr
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollErr
+  nameWithType: UnixMainLoop.Condition.PollErr
+  fullName: UnixMainLoop.Condition.PollErr
+- uid: Mono.Terminal.UnixMainLoop
+  parent: Mono.Terminal
+  isExternal: false
+  name: UnixMainLoop
+  nameWithType: UnixMainLoop
+  fullName: Mono.Terminal.UnixMainLoop+Condition
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollHup
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollHup
+  nameWithType: UnixMainLoop.Condition.PollHup
+  fullName: UnixMainLoop.Condition.PollHup
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollIn
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollIn
+  nameWithType: UnixMainLoop.Condition.PollIn
+  fullName: UnixMainLoop.Condition.PollIn
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollNval
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollNval
+  nameWithType: UnixMainLoop.Condition.PollNval
+  fullName: UnixMainLoop.Condition.PollNval
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollOut
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollOut
+  nameWithType: UnixMainLoop.Condition.PollOut
+  fullName: UnixMainLoop.Condition.PollOut
+- uid: Mono.Terminal.UnixMainLoop.Condition.PollPri
+  parent: Mono.Terminal.UnixMainLoop.Condition
+  isExternal: false
+  name: PollPri
+  nameWithType: UnixMainLoop.Condition.PollPri
+  fullName: UnixMainLoop.Condition.PollPri

+ 332 - 0
docfx/api/Mono.Terminal/Mono.Terminal.UnixMainLoop.yml

@@ -0,0 +1,332 @@
+### YamlMime:ManagedReference
+items:
+- uid: Mono.Terminal.UnixMainLoop
+  id: UnixMainLoop
+  children:
+  - Mono.Terminal.UnixMainLoop.#ctor
+  - Mono.Terminal.UnixMainLoop.AddWatch(System.Int32,Mono.Terminal.UnixMainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})
+  - Mono.Terminal.UnixMainLoop.RemoveWatch(System.Object)
+  - Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending(System.Boolean)
+  - Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration
+  - Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup(Mono.Terminal.MainLoop)
+  - Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup
+  langs:
+  - csharp
+  name: UnixMainLoop
+  nameWithType: UnixMainLoop
+  fullName: Mono.Terminal.UnixMainLoop
+  type: Class
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Unix main loop, suitable for using on Posix systems
+  remarks: >-
+    In addition to the general functions of the mainloop, the Unix version
+                can watch file descriptors using the AddWatch methods.
+  syntax:
+    content: 'public class UnixMainLoop : Mono.Terminal.IMainLoopDriver'
+  inheritance:
+  - System.Object
+  implements:
+  - Mono.Terminal.IMainLoopDriver
+  inheritedMembers: []
+- uid: Mono.Terminal.UnixMainLoop.#ctor
+  id: '#ctor'
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: UnixMainLoop()
+  nameWithType: UnixMainLoop.UnixMainLoop()
+  fullName: UnixMainLoop.UnixMainLoop()
+  type: Constructor
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: public UnixMainLoop ();
+    parameters: []
+  overload: Mono.Terminal.UnixMainLoop.#ctor*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.AddWatch(System.Int32,Mono.Terminal.UnixMainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})
+  id: AddWatch(System.Int32,Mono.Terminal.UnixMainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+  nameWithType: UnixMainLoop.AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+  fullName: UnixMainLoop.AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Watches a file descriptor for activity.
+  remarks: "When the condition is met, the provided callback\n              is invoked.  If the callback returns false, the\n              watch is automatically removed.\n            \n              The return value is a token that represents this watch, you can\n              use this token to remove the watch by calling RemoveWatch."
+  syntax:
+    content: public object AddWatch (int fileDescriptor, Mono.Terminal.UnixMainLoop.Condition condition, Func<Mono.Terminal.MainLoop,bool> callback);
+    parameters:
+    - id: fileDescriptor
+      type: System.Int32
+      description: To be added.
+    - id: condition
+      type: Mono.Terminal.UnixMainLoop+Condition
+      description: To be added.
+    - id: callback
+      type: System.Func{Mono.Terminal.MainLoop,System.Boolean}
+      description: To be added.
+    return:
+      type: System.Object
+      description: To be added.
+  overload: Mono.Terminal.UnixMainLoop.AddWatch*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.RemoveWatch(System.Object)
+  id: RemoveWatch(System.Object)
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: RemoveWatch(Object)
+  nameWithType: UnixMainLoop.RemoveWatch(Object)
+  fullName: UnixMainLoop.RemoveWatch(Object)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  summary: Removes an active watch from the mainloop.
+  remarks: The token parameter is the value returned from AddWatch
+  syntax:
+    content: public void RemoveWatch (object token);
+    parameters:
+    - id: token
+      type: System.Object
+      description: To be added.
+  overload: Mono.Terminal.UnixMainLoop.RemoveWatch*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending(System.Boolean)
+  id: Mono#Terminal#IMainLoopDriver#EventsPending(System.Boolean)
+  isEii: true
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: IMainLoopDriver.EventsPending(Boolean)
+  nameWithType: UnixMainLoop.IMainLoopDriver.EventsPending(Boolean)
+  fullName: UnixMainLoop.IMainLoopDriver.EventsPending(Boolean)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: bool IMainLoopDriver.EventsPending (bool wait);
+    parameters:
+    - id: wait
+      type: System.Boolean
+      description: To be added.
+    return:
+      type: System.Boolean
+      description: To be added.
+  overload: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration
+  id: Mono#Terminal#IMainLoopDriver#MainIteration
+  isEii: true
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: IMainLoopDriver.MainIteration()
+  nameWithType: UnixMainLoop.IMainLoopDriver.MainIteration()
+  fullName: UnixMainLoop.IMainLoopDriver.MainIteration()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: void IMainLoopDriver.MainIteration ();
+    parameters: []
+  overload: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup(Mono.Terminal.MainLoop)
+  id: Mono#Terminal#IMainLoopDriver#Setup(Mono.Terminal.MainLoop)
+  isEii: true
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: IMainLoopDriver.Setup(MainLoop)
+  nameWithType: UnixMainLoop.IMainLoopDriver.Setup(MainLoop)
+  fullName: UnixMainLoop.IMainLoopDriver.Setup(MainLoop)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: void IMainLoopDriver.Setup (Mono.Terminal.MainLoop mainLoop);
+    parameters:
+    - id: mainLoop
+      type: Mono.Terminal.MainLoop
+      description: To be added.
+  overload: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup*
+  exceptions: []
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup
+  id: Mono#Terminal#IMainLoopDriver#Wakeup
+  isEii: true
+  parent: Mono.Terminal.UnixMainLoop
+  langs:
+  - csharp
+  name: IMainLoopDriver.Wakeup()
+  nameWithType: UnixMainLoop.IMainLoopDriver.Wakeup()
+  fullName: UnixMainLoop.IMainLoopDriver.Wakeup()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Mono.Terminal
+  syntax:
+    content: void IMainLoopDriver.Wakeup ();
+    parameters: []
+  overload: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup*
+  exceptions: []
+references:
+- uid: System.Object
+  parent: System
+  isExternal: true
+  name: Object
+  nameWithType: Object
+  fullName: System.Object
+- uid: Mono.Terminal.UnixMainLoop.#ctor
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: UnixMainLoop()
+  nameWithType: UnixMainLoop.UnixMainLoop()
+  fullName: UnixMainLoop.UnixMainLoop()
+- uid: Mono.Terminal.UnixMainLoop.AddWatch(System.Int32,Mono.Terminal.UnixMainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+  nameWithType: UnixMainLoop.AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+  fullName: UnixMainLoop.AddWatch(Int32, UnixMainLoop+Condition, Func<MainLoop,Boolean>)
+- uid: System.Int32
+  parent: System
+  isExternal: true
+  name: Int32
+  nameWithType: Int32
+  fullName: System.Int32
+- uid: Mono.Terminal.UnixMainLoop
+  parent: Mono.Terminal
+  isExternal: false
+  name: UnixMainLoop
+  nameWithType: UnixMainLoop
+  fullName: Mono.Terminal.UnixMainLoop+Condition
+- uid: System.Func`2
+  name: Func
+  nameWithType: Func
+  fullName: System.Func
+- uid: Mono.Terminal.MainLoop
+  name: MainLoop
+  nameWithType: MainLoop
+  fullName: Mono.Terminal.MainLoop
+- uid: System.Boolean
+  name: Boolean
+  nameWithType: Boolean
+  fullName: System.Boolean
+- uid: System.Func{Mono.Terminal.MainLoop,System.Boolean}
+  parent: System
+  isExternal: true
+  name: Func<MainLoop,Boolean>
+  nameWithType: Func<MainLoop,Boolean>
+  fullName: System.Func<Mono.Terminal.MainLoop,System.Boolean>
+  spec.csharp:
+  - uid: System.Func`2
+    name: Func
+    nameWithType: Func
+    fullName: System.Func
+  - name: <
+    nameWithType: <
+    fullName: <
+  - uid: Mono.Terminal.MainLoop
+    name: MainLoop
+    nameWithType: MainLoop
+    fullName: Mono.Terminal.MainLoop
+  - name: ','
+    nameWithType: ','
+    fullName: ','
+  - uid: System.Boolean
+    name: Boolean
+    nameWithType: Boolean
+    fullName: System.Boolean
+  - name: '>'
+    nameWithType: '>'
+    fullName: '>'
+- uid: Mono.Terminal.UnixMainLoop.RemoveWatch(System.Object)
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: RemoveWatch(Object)
+  nameWithType: UnixMainLoop.RemoveWatch(Object)
+  fullName: UnixMainLoop.RemoveWatch(Object)
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending(System.Boolean)
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: IMainLoopDriver.EventsPending(Boolean)
+  nameWithType: UnixMainLoop.IMainLoopDriver.EventsPending(Boolean)
+  fullName: UnixMainLoop.IMainLoopDriver.EventsPending(Boolean)
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: IMainLoopDriver.MainIteration()
+  nameWithType: UnixMainLoop.IMainLoopDriver.MainIteration()
+  fullName: UnixMainLoop.IMainLoopDriver.MainIteration()
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup(Mono.Terminal.MainLoop)
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: IMainLoopDriver.Setup(MainLoop)
+  nameWithType: UnixMainLoop.IMainLoopDriver.Setup(MainLoop)
+  fullName: UnixMainLoop.IMainLoopDriver.Setup(MainLoop)
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: IMainLoopDriver.Wakeup()
+  nameWithType: UnixMainLoop.IMainLoopDriver.Wakeup()
+  fullName: UnixMainLoop.IMainLoopDriver.Wakeup()
+- uid: Mono.Terminal.UnixMainLoop.#ctor*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: UnixMainLoop
+  nameWithType: UnixMainLoop.UnixMainLoop
+  fullName: UnixMainLoop.UnixMainLoop
+- uid: Mono.Terminal.UnixMainLoop.AddWatch*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: AddWatch
+  nameWithType: UnixMainLoop.AddWatch
+  fullName: UnixMainLoop.AddWatch
+- uid: Mono.Terminal.UnixMainLoop.RemoveWatch*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: RemoveWatch
+  nameWithType: UnixMainLoop.RemoveWatch
+  fullName: UnixMainLoop.RemoveWatch
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: Mono.Terminal.IMainLoopDriver.EventsPending
+  nameWithType: UnixMainLoop.Mono.Terminal.IMainLoopDriver.EventsPending
+  fullName: UnixMainLoop.Mono.Terminal.IMainLoopDriver.EventsPending
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: Mono.Terminal.IMainLoopDriver.MainIteration
+  nameWithType: UnixMainLoop.Mono.Terminal.IMainLoopDriver.MainIteration
+  fullName: UnixMainLoop.Mono.Terminal.IMainLoopDriver.MainIteration
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: Mono.Terminal.IMainLoopDriver.Setup
+  nameWithType: UnixMainLoop.Mono.Terminal.IMainLoopDriver.Setup
+  fullName: UnixMainLoop.Mono.Terminal.IMainLoopDriver.Setup
+- uid: Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup*
+  parent: Mono.Terminal.UnixMainLoop
+  isExternal: false
+  name: Mono.Terminal.IMainLoopDriver.Wakeup
+  nameWithType: UnixMainLoop.Mono.Terminal.IMainLoopDriver.Wakeup
+  fullName: UnixMainLoop.Mono.Terminal.IMainLoopDriver.Wakeup
+- uid: Mono.Terminal.IMainLoopDriver
+  parent: Mono.Terminal
+  isExternal: false
+  name: IMainLoopDriver
+  nameWithType: IMainLoopDriver
+  fullName: Mono.Terminal.IMainLoopDriver

+ 748 - 0
docfx/api/Terminal.Gui/Terminal.Gui.HexView.yml

@@ -0,0 +1,748 @@
+### YamlMime:ManagedReference
+items:
+- uid: Terminal.Gui.HexView
+  id: HexView
+  children:
+  - Terminal.Gui.HexView.#ctor(System.IO.Stream)
+  - Terminal.Gui.HexView.AllowEdits
+  - Terminal.Gui.HexView.ApplyEdits
+  - Terminal.Gui.HexView.DisplayStart
+  - Terminal.Gui.HexView.Edits
+  - Terminal.Gui.HexView.Frame
+  - Terminal.Gui.HexView.PositionCursor
+  - Terminal.Gui.HexView.ProcessKey(Terminal.Gui.KeyEvent)
+  - Terminal.Gui.HexView.Redraw(Terminal.Gui.Rect)
+  - Terminal.Gui.HexView.Source
+  langs:
+  - csharp
+  name: HexView
+  nameWithType: HexView
+  fullName: Terminal.Gui.HexView
+  type: Class
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: An Hex viewer an editor view over a System.IO.Stream
+  remarks: "<p>\n            This provides a hex editor on top of a seekable stream with the left side showing an hex\n            dump of the values in the stream and the right side showing the contents (filterd to \n            non-control sequence ascii characters).    \n            </p>\n    <p>\n            Users can switch from one side to the other by using the tab key.  \n            </p>\n    <p>\n            If you want to enable editing, set the AllowsEdits property, once that is done, the user\n            can make changes to the hexadecimal values of the stream.   Any changes done are tracked\n            in the Edits property which is a sorted dictionary indicating the position where the \n            change was made and the new value.    A convenience ApplyEdits method can be used to c\n            apply the methods to the underlying stream.\n            </p>\n    <p>\n            It is possible to control the first byte shown by setting the DisplayStart property \n            to the offset that you want to start viewing.\n            </p>"
+  syntax:
+    content: 'public class HexView : Terminal.Gui.View'
+  inheritance:
+  - System.Object
+  - Terminal.Gui.Responder
+  - Terminal.Gui.View
+  implements: []
+  inheritedMembers:
+  - Terminal.Gui.Responder.CanFocus
+  - Terminal.Gui.Responder.MouseEvent(Terminal.Gui.MouseEvent)
+  - Terminal.Gui.View.Add(Terminal.Gui.View)
+  - Terminal.Gui.View.Add(Terminal.Gui.View[])
+  - Terminal.Gui.View.AddRune(System.Int32,System.Int32,System.Rune)
+  - Terminal.Gui.View.Bounds
+  - Terminal.Gui.View.ChildNeedsDisplay
+  - Terminal.Gui.View.Clear
+  - Terminal.Gui.View.Clear(Terminal.Gui.Rect)
+  - Terminal.Gui.View.ClearNeedsDisplay
+  - Terminal.Gui.View.ClipToBounds
+  - Terminal.Gui.View.ColorScheme
+  - Terminal.Gui.View.DrawFrame(Terminal.Gui.Rect,System.Int32,System.Boolean)
+  - Terminal.Gui.View.DrawHotString(NStack.ustring,System.Boolean,Terminal.Gui.ColorScheme)
+  - Terminal.Gui.View.DrawHotString(NStack.ustring,Terminal.Gui.Attribute,Terminal.Gui.Attribute)
+  - Terminal.Gui.View.Driver
+  - Terminal.Gui.View.EnsureFocus
+  - Terminal.Gui.View.Focused
+  - Terminal.Gui.View.FocusFirst
+  - Terminal.Gui.View.FocusLast
+  - Terminal.Gui.View.FocusNext
+  - Terminal.Gui.View.FocusPrev
+  - Terminal.Gui.View.GetEnumerator
+  - Terminal.Gui.View.HasFocus
+  - Terminal.Gui.View.Height
+  - Terminal.Gui.View.Id
+  - Terminal.Gui.View.LayoutStyle
+  - Terminal.Gui.View.LayoutSubviews
+  - Terminal.Gui.View.MostFocused
+  - Terminal.Gui.View.Move(System.Int32,System.Int32)
+  - Terminal.Gui.View.ProcessColdKey(Terminal.Gui.KeyEvent)
+  - Terminal.Gui.View.ProcessHotKey(Terminal.Gui.KeyEvent)
+  - Terminal.Gui.View.Remove(Terminal.Gui.View)
+  - Terminal.Gui.View.RemoveAll
+  - Terminal.Gui.View.ScreenToView(System.Int32,System.Int32)
+  - Terminal.Gui.View.SetClip(Terminal.Gui.Rect)
+  - Terminal.Gui.View.SetFocus(Terminal.Gui.View)
+  - Terminal.Gui.View.SetNeedsDisplay
+  - Terminal.Gui.View.SetNeedsDisplay(Terminal.Gui.Rect)
+  - Terminal.Gui.View.Subviews
+  - Terminal.Gui.View.SuperView
+  - Terminal.Gui.View.ToString
+  - Terminal.Gui.View.WantMousePositionReports
+  - Terminal.Gui.View.Width
+  - Terminal.Gui.View.X
+  - Terminal.Gui.View.Y
+- uid: Terminal.Gui.HexView.#ctor(System.IO.Stream)
+  id: '#ctor(System.IO.Stream)'
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: HexView(Stream)
+  nameWithType: HexView.HexView(Stream)
+  fullName: HexView.HexView(Stream)
+  type: Constructor
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Creates and instance of the HexView that will render a seekable stream in hex on the allocated view region.
+  syntax:
+    content: public HexView (System.IO.Stream source);
+    parameters:
+    - id: source
+      type: System.IO.Stream
+      description: Source stream, this stream should support seeking, or this will raise an exceotion.
+  overload: Terminal.Gui.HexView.#ctor*
+  exceptions: []
+- uid: Terminal.Gui.HexView.AllowEdits
+  id: AllowEdits
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: AllowEdits
+  nameWithType: HexView.AllowEdits
+  fullName: HexView.AllowEdits
+  type: Property
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Gets or sets a value indicating whether this <xref href="Terminal.Gui.HexView"></xref> allow editing of the contents of the underlying stream.
+  syntax:
+    content: public bool AllowEdits { get; set; }
+    return:
+      type: System.Boolean
+      description: <code>true</code> if allow edits; otherwise, <code>false</code>.
+  overload: Terminal.Gui.HexView.AllowEdits*
+  exceptions: []
+- uid: Terminal.Gui.HexView.ApplyEdits
+  id: ApplyEdits
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: ApplyEdits()
+  nameWithType: HexView.ApplyEdits()
+  fullName: HexView.ApplyEdits()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: This method applies the edits to the stream and resets the contents of the Edits property
+  syntax:
+    content: public void ApplyEdits ();
+    parameters: []
+  overload: Terminal.Gui.HexView.ApplyEdits*
+  exceptions: []
+- uid: Terminal.Gui.HexView.DisplayStart
+  id: DisplayStart
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: DisplayStart
+  nameWithType: HexView.DisplayStart
+  fullName: HexView.DisplayStart
+  type: Property
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Configures the initial offset to be displayed at the top
+  syntax:
+    content: public long DisplayStart { get; set; }
+    return:
+      type: System.Int64
+      description: The display start.
+  overload: Terminal.Gui.HexView.DisplayStart*
+  exceptions: []
+- uid: Terminal.Gui.HexView.Edits
+  id: Edits
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: Edits
+  nameWithType: HexView.Edits
+  fullName: HexView.Edits
+  type: Property
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Gets a list of the edits done to the buffer which is a sorted dictionary with the positions where the edit took place and the value that was set.
+  syntax:
+    content: public System.Collections.Generic.IReadOnlyDictionary<long,byte> Edits { get; }
+    return:
+      type: System.Collections.Generic.IReadOnlyDictionary{System.Int64,System.Byte}
+      description: The edits.
+  overload: Terminal.Gui.HexView.Edits*
+  exceptions: []
+- uid: Terminal.Gui.HexView.Frame
+  id: Frame
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: Frame
+  nameWithType: HexView.Frame
+  fullName: HexView.Frame
+  type: Property
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  syntax:
+    content: public override Terminal.Gui.Rect Frame { get; set; }
+    return:
+      type: Terminal.Gui.Rect
+      description: To be added.
+  overload: Terminal.Gui.HexView.Frame*
+  exceptions: []
+- uid: Terminal.Gui.HexView.PositionCursor
+  id: PositionCursor
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: PositionCursor()
+  nameWithType: HexView.PositionCursor()
+  fullName: HexView.PositionCursor()
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: Positions the cursor based for the hex view
+  syntax:
+    content: public override void PositionCursor ();
+    parameters: []
+  overload: Terminal.Gui.HexView.PositionCursor*
+  exceptions: []
+- uid: Terminal.Gui.HexView.ProcessKey(Terminal.Gui.KeyEvent)
+  id: ProcessKey(Terminal.Gui.KeyEvent)
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: ProcessKey(KeyEvent)
+  nameWithType: HexView.ProcessKey(KeyEvent)
+  fullName: HexView.ProcessKey(KeyEvent)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  syntax:
+    content: public override bool ProcessKey (Terminal.Gui.KeyEvent keyEvent);
+    parameters:
+    - id: keyEvent
+      type: Terminal.Gui.KeyEvent
+      description: To be added.
+    return:
+      type: System.Boolean
+      description: To be added.
+  overload: Terminal.Gui.HexView.ProcessKey*
+  exceptions: []
+- uid: Terminal.Gui.HexView.Redraw(Terminal.Gui.Rect)
+  id: Redraw(Terminal.Gui.Rect)
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: Redraw(Rect)
+  nameWithType: HexView.Redraw(Rect)
+  fullName: HexView.Redraw(Rect)
+  type: Method
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  syntax:
+    content: public override void Redraw (Terminal.Gui.Rect region);
+    parameters:
+    - id: region
+      type: Terminal.Gui.Rect
+      description: To be added.
+  overload: Terminal.Gui.HexView.Redraw*
+  exceptions: []
+- uid: Terminal.Gui.HexView.Source
+  id: Source
+  parent: Terminal.Gui.HexView
+  langs:
+  - csharp
+  name: Source
+  nameWithType: HexView.Source
+  fullName: HexView.Source
+  type: Property
+  assemblies:
+  - Terminal.Gui
+  namespace: Terminal.Gui
+  summary: The source stream to display on the hex view, the stream should support seeking.
+  syntax:
+    content: public System.IO.Stream Source { get; set; }
+    return:
+      type: System.IO.Stream
+      description: The source.
+  overload: Terminal.Gui.HexView.Source*
+  exceptions: []
+references:
+- uid: Terminal.Gui.View
+  parent: Terminal.Gui
+  isExternal: false
+  name: View
+  nameWithType: View
+  fullName: Terminal.Gui.View
+- uid: Terminal.Gui.HexView.#ctor(System.IO.Stream)
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: HexView(Stream)
+  nameWithType: HexView.HexView(Stream)
+  fullName: HexView.HexView(Stream)
+- uid: System.IO.Stream
+  parent: System.IO
+  isExternal: true
+  name: Stream
+  nameWithType: Stream
+  fullName: System.IO.Stream
+- uid: Terminal.Gui.HexView.AllowEdits
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: AllowEdits
+  nameWithType: HexView.AllowEdits
+  fullName: HexView.AllowEdits
+- uid: System.Boolean
+  parent: System
+  isExternal: true
+  name: Boolean
+  nameWithType: Boolean
+  fullName: System.Boolean
+- uid: Terminal.Gui.HexView.ApplyEdits
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: ApplyEdits()
+  nameWithType: HexView.ApplyEdits()
+  fullName: HexView.ApplyEdits()
+- uid: Terminal.Gui.HexView.DisplayStart
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: DisplayStart
+  nameWithType: HexView.DisplayStart
+  fullName: HexView.DisplayStart
+- uid: System.Int64
+  parent: System
+  isExternal: true
+  name: Int64
+  nameWithType: Int64
+  fullName: System.Int64
+- uid: Terminal.Gui.HexView.Edits
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Edits
+  nameWithType: HexView.Edits
+  fullName: HexView.Edits
+- uid: System.Collections.Generic.IReadOnlyDictionary`2
+  name: IReadOnlyDictionary
+  nameWithType: IReadOnlyDictionary
+  fullName: System.Collections.Generic.IReadOnlyDictionary
+- uid: System.Byte
+  name: Byte
+  nameWithType: Byte
+  fullName: System.Byte
+- uid: System.Collections.Generic.IReadOnlyDictionary{System.Int64,System.Byte}
+  parent: System.Collections.Generic
+  isExternal: true
+  name: IReadOnlyDictionary<Int64,Byte>
+  nameWithType: IReadOnlyDictionary<Int64,Byte>
+  fullName: System.Collections.Generic.IReadOnlyDictionary<System.Int64,System.Byte>
+  spec.csharp:
+  - uid: System.Collections.Generic.IReadOnlyDictionary`2
+    name: IReadOnlyDictionary
+    nameWithType: IReadOnlyDictionary
+    fullName: System.Collections.Generic.IReadOnlyDictionary
+  - name: <
+    nameWithType: <
+    fullName: <
+  - uid: System.Int64
+    name: Int64
+    nameWithType: Int64
+    fullName: System.Int64
+  - name: ','
+    nameWithType: ','
+    fullName: ','
+  - uid: System.Byte
+    name: Byte
+    nameWithType: Byte
+    fullName: System.Byte
+  - name: '>'
+    nameWithType: '>'
+    fullName: '>'
+- uid: Terminal.Gui.HexView.Frame
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Frame
+  nameWithType: HexView.Frame
+  fullName: HexView.Frame
+- uid: Terminal.Gui.Rect
+  parent: Terminal.Gui
+  isExternal: false
+  name: Rect
+  nameWithType: Rect
+  fullName: Terminal.Gui.Rect
+- uid: Terminal.Gui.HexView.PositionCursor
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: PositionCursor()
+  nameWithType: HexView.PositionCursor()
+  fullName: HexView.PositionCursor()
+- uid: Terminal.Gui.HexView.ProcessKey(Terminal.Gui.KeyEvent)
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: ProcessKey(KeyEvent)
+  nameWithType: HexView.ProcessKey(KeyEvent)
+  fullName: HexView.ProcessKey(KeyEvent)
+- uid: Terminal.Gui.KeyEvent
+  parent: Terminal.Gui
+  isExternal: false
+  name: KeyEvent
+  nameWithType: KeyEvent
+  fullName: Terminal.Gui.KeyEvent
+- uid: Terminal.Gui.HexView.Redraw(Terminal.Gui.Rect)
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Redraw(Rect)
+  nameWithType: HexView.Redraw(Rect)
+  fullName: HexView.Redraw(Rect)
+- uid: Terminal.Gui.HexView.Source
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Source
+  nameWithType: HexView.Source
+  fullName: HexView.Source
+- uid: Terminal.Gui.HexView.#ctor*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: HexView
+  nameWithType: HexView.HexView
+  fullName: HexView.HexView
+- uid: Terminal.Gui.HexView.AllowEdits*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: AllowEdits
+  nameWithType: HexView.AllowEdits
+  fullName: HexView.AllowEdits
+- uid: Terminal.Gui.HexView.ApplyEdits*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: ApplyEdits
+  nameWithType: HexView.ApplyEdits
+  fullName: HexView.ApplyEdits
+- uid: Terminal.Gui.HexView.DisplayStart*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: DisplayStart
+  nameWithType: HexView.DisplayStart
+  fullName: HexView.DisplayStart
+- uid: Terminal.Gui.HexView.Edits*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Edits
+  nameWithType: HexView.Edits
+  fullName: HexView.Edits
+- uid: Terminal.Gui.HexView.Frame*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Frame
+  nameWithType: HexView.Frame
+  fullName: HexView.Frame
+- uid: Terminal.Gui.HexView.PositionCursor*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: PositionCursor
+  nameWithType: HexView.PositionCursor
+  fullName: HexView.PositionCursor
+- uid: Terminal.Gui.HexView.ProcessKey*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: ProcessKey
+  nameWithType: HexView.ProcessKey
+  fullName: HexView.ProcessKey
+- uid: Terminal.Gui.HexView.Redraw*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Redraw
+  nameWithType: HexView.Redraw
+  fullName: HexView.Redraw
+- uid: Terminal.Gui.HexView.Source*
+  parent: Terminal.Gui.HexView
+  isExternal: false
+  name: Source
+  nameWithType: HexView.Source
+  fullName: HexView.Source
+- uid: Terminal.Gui.Responder.CanFocus
+  parent: Terminal.Gui.Responder
+  isExternal: false
+  name: CanFocus
+  nameWithType: Responder.CanFocus
+  fullName: Responder.CanFocus
+- uid: Terminal.Gui.View.HasFocus
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: HasFocus
+  nameWithType: View.HasFocus
+  fullName: View.HasFocus
+- uid: Terminal.Gui.Responder.MouseEvent(Terminal.Gui.MouseEvent)
+  parent: Terminal.Gui.Responder
+  isExternal: false
+  name: MouseEvent(MouseEvent)
+  nameWithType: Responder.MouseEvent(MouseEvent)
+  fullName: Responder.MouseEvent(MouseEvent)
+- uid: Terminal.Gui.View.ProcessColdKey(Terminal.Gui.KeyEvent)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ProcessColdKey(KeyEvent)
+  nameWithType: View.ProcessColdKey(KeyEvent)
+  fullName: View.ProcessColdKey(KeyEvent)
+- uid: Terminal.Gui.View.ProcessHotKey(Terminal.Gui.KeyEvent)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ProcessHotKey(KeyEvent)
+  nameWithType: View.ProcessHotKey(KeyEvent)
+  fullName: View.ProcessHotKey(KeyEvent)
+- uid: Terminal.Gui.View.Add(Terminal.Gui.View)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Add(View)
+  nameWithType: View.Add(View)
+  fullName: View.Add(View)
+- uid: Terminal.Gui.View.Add(Terminal.Gui.View[])
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Add(View[])
+  nameWithType: View.Add(View[])
+  fullName: View.Add(View[])
+- uid: Terminal.Gui.View.AddRune(System.Int32,System.Int32,System.Rune)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: AddRune(Int32, Int32, Rune)
+  nameWithType: View.AddRune(Int32, Int32, Rune)
+  fullName: View.AddRune(Int32, Int32, Rune)
+- uid: Terminal.Gui.View.Bounds
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Bounds
+  nameWithType: View.Bounds
+  fullName: View.Bounds
+- uid: Terminal.Gui.View.ChildNeedsDisplay
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ChildNeedsDisplay()
+  nameWithType: View.ChildNeedsDisplay()
+  fullName: View.ChildNeedsDisplay()
+- uid: Terminal.Gui.View.Clear
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Clear()
+  nameWithType: View.Clear()
+  fullName: View.Clear()
+- uid: Terminal.Gui.View.Clear(Terminal.Gui.Rect)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Clear(Rect)
+  nameWithType: View.Clear(Rect)
+  fullName: View.Clear(Rect)
+- uid: Terminal.Gui.View.ClearNeedsDisplay
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ClearNeedsDisplay()
+  nameWithType: View.ClearNeedsDisplay()
+  fullName: View.ClearNeedsDisplay()
+- uid: Terminal.Gui.View.ClipToBounds
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ClipToBounds()
+  nameWithType: View.ClipToBounds()
+  fullName: View.ClipToBounds()
+- uid: Terminal.Gui.View.ColorScheme
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ColorScheme
+  nameWithType: View.ColorScheme
+  fullName: View.ColorScheme
+- uid: Terminal.Gui.View.DrawFrame(Terminal.Gui.Rect,System.Int32,System.Boolean)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: DrawFrame(Rect, Int32, Boolean)
+  nameWithType: View.DrawFrame(Rect, Int32, Boolean)
+  fullName: View.DrawFrame(Rect, Int32, Boolean)
+- uid: Terminal.Gui.View.DrawHotString(NStack.ustring,System.Boolean,Terminal.Gui.ColorScheme)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: DrawHotString(ustring, Boolean, ColorScheme)
+  nameWithType: View.DrawHotString(ustring, Boolean, ColorScheme)
+  fullName: View.DrawHotString(ustring, Boolean, ColorScheme)
+- uid: Terminal.Gui.View.DrawHotString(NStack.ustring,Terminal.Gui.Attribute,Terminal.Gui.Attribute)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: DrawHotString(ustring, Attribute, Attribute)
+  nameWithType: View.DrawHotString(ustring, Attribute, Attribute)
+  fullName: View.DrawHotString(ustring, Attribute, Attribute)
+- uid: Terminal.Gui.View.Driver
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Driver
+  nameWithType: View.Driver
+  fullName: View.Driver
+- uid: Terminal.Gui.View.EnsureFocus
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: EnsureFocus()
+  nameWithType: View.EnsureFocus()
+  fullName: View.EnsureFocus()
+- uid: Terminal.Gui.View.Focused
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Focused
+  nameWithType: View.Focused
+  fullName: View.Focused
+- uid: Terminal.Gui.View.FocusFirst
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: FocusFirst()
+  nameWithType: View.FocusFirst()
+  fullName: View.FocusFirst()
+- uid: Terminal.Gui.View.FocusLast
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: FocusLast()
+  nameWithType: View.FocusLast()
+  fullName: View.FocusLast()
+- uid: Terminal.Gui.View.FocusNext
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: FocusNext()
+  nameWithType: View.FocusNext()
+  fullName: View.FocusNext()
+- uid: Terminal.Gui.View.FocusPrev
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: FocusPrev()
+  nameWithType: View.FocusPrev()
+  fullName: View.FocusPrev()
+- uid: Terminal.Gui.View.GetEnumerator
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: GetEnumerator()
+  nameWithType: View.GetEnumerator()
+  fullName: View.GetEnumerator()
+- uid: Terminal.Gui.View.Height
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Height
+  nameWithType: View.Height
+  fullName: View.Height
+- uid: Terminal.Gui.View.Id
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Id
+  nameWithType: View.Id
+  fullName: View.Id
+- uid: Terminal.Gui.View.LayoutStyle
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: LayoutStyle
+  nameWithType: View.LayoutStyle
+  fullName: View.LayoutStyle
+- uid: Terminal.Gui.View.LayoutSubviews
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: LayoutSubviews()
+  nameWithType: View.LayoutSubviews()
+  fullName: View.LayoutSubviews()
+- uid: Terminal.Gui.View.MostFocused
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: MostFocused
+  nameWithType: View.MostFocused
+  fullName: View.MostFocused
+- uid: Terminal.Gui.View.Move(System.Int32,System.Int32)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Move(Int32, Int32)
+  nameWithType: View.Move(Int32, Int32)
+  fullName: View.Move(Int32, Int32)
+- uid: Terminal.Gui.View.Remove(Terminal.Gui.View)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Remove(View)
+  nameWithType: View.Remove(View)
+  fullName: View.Remove(View)
+- uid: Terminal.Gui.View.RemoveAll
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: RemoveAll()
+  nameWithType: View.RemoveAll()
+  fullName: View.RemoveAll()
+- uid: Terminal.Gui.View.ScreenToView(System.Int32,System.Int32)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ScreenToView(Int32, Int32)
+  nameWithType: View.ScreenToView(Int32, Int32)
+  fullName: View.ScreenToView(Int32, Int32)
+- uid: Terminal.Gui.View.SetClip(Terminal.Gui.Rect)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: SetClip(Rect)
+  nameWithType: View.SetClip(Rect)
+  fullName: View.SetClip(Rect)
+- uid: Terminal.Gui.View.SetFocus(Terminal.Gui.View)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: SetFocus(View)
+  nameWithType: View.SetFocus(View)
+  fullName: View.SetFocus(View)
+- uid: Terminal.Gui.View.SetNeedsDisplay
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: SetNeedsDisplay()
+  nameWithType: View.SetNeedsDisplay()
+  fullName: View.SetNeedsDisplay()
+- uid: Terminal.Gui.View.SetNeedsDisplay(Terminal.Gui.Rect)
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: SetNeedsDisplay(Rect)
+  nameWithType: View.SetNeedsDisplay(Rect)
+  fullName: View.SetNeedsDisplay(Rect)
+- uid: Terminal.Gui.View.Subviews
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Subviews
+  nameWithType: View.Subviews
+  fullName: View.Subviews
+- uid: Terminal.Gui.View.SuperView
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: SuperView
+  nameWithType: View.SuperView
+  fullName: View.SuperView
+- uid: Terminal.Gui.View.ToString
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: ToString()
+  nameWithType: View.ToString()
+  fullName: View.ToString()
+- uid: Terminal.Gui.View.WantMousePositionReports
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: WantMousePositionReports
+  nameWithType: View.WantMousePositionReports
+  fullName: View.WantMousePositionReports
+- uid: Terminal.Gui.View.Width
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Width
+  nameWithType: View.Width
+  fullName: View.Width
+- uid: Terminal.Gui.View.X
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: X
+  nameWithType: View.X
+  fullName: View.X
+- uid: Terminal.Gui.View.Y
+  parent: Terminal.Gui.View
+  isExternal: false
+  name: Y
+  nameWithType: View.Y
+  fullName: View.Y

+ 217 - 0
docs/api/Mono.Terminal/Mono.Terminal.IMainLoopDriver.html

@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Interface IMainLoopDriver
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Interface IMainLoopDriver
+   ">
+    <meta name="generator" content="docfx 2.18.2.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="">
+    <meta property="docfx:tocrel" content="../toc.html">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../../logo.svg" 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 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="Mono.Terminal.IMainLoopDriver">
+  
+  
+  <h1 id="Mono_Terminal_IMainLoopDriver" data-uid="Mono.Terminal.IMainLoopDriver">Interface IMainLoopDriver
+  </h1>
+  <div class="markdown level0 summary"><p>Public interface to create your own platform specific main loop driver.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+      <div class="level1"><a class="xref" href="Mono.Terminal.UnixMainLoop.html">UnixMainLoop</a></div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="../Mono.Terminal.html">Mono.Terminal</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Mono_Terminal_IMainLoopDriver_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public interface IMainLoopDriver</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Mono_Terminal_IMainLoopDriver_EventsPending_" data-uid="Mono.Terminal.IMainLoopDriver.EventsPending*"></a>
+  <h4 id="Mono_Terminal_IMainLoopDriver_EventsPending_System_Boolean_" data-uid="Mono.Terminal.IMainLoopDriver.EventsPending(System.Boolean)">EventsPending(Boolean)</h4>
+  <div class="markdown level1 summary"><p>Must report whether there are any events pending, or even block waiting for events.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool EventsPending (bool wait);</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.Boolean</span></td>
+        <td><span class="parametername">wait</span></td>
+        <td><p>If set to <code>true</code> wait until an event is available, otherwise return immediately.</p>
+</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><p><code>true</code>, if there were pending events, <code>false</code> otherwise.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Mono_Terminal_IMainLoopDriver_MainIteration_" data-uid="Mono.Terminal.IMainLoopDriver.MainIteration*"></a>
+  <h4 id="Mono_Terminal_IMainLoopDriver_MainIteration" data-uid="Mono.Terminal.IMainLoopDriver.MainIteration">MainIteration()</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 void MainIteration ();</code></pre>
+  </div>
+  
+  
+  <a id="Mono_Terminal_IMainLoopDriver_Setup_" data-uid="Mono.Terminal.IMainLoopDriver.Setup*"></a>
+  <h4 id="Mono_Terminal_IMainLoopDriver_Setup_Mono_Terminal_MainLoop_" data-uid="Mono.Terminal.IMainLoopDriver.Setup(Mono.Terminal.MainLoop)">Setup(MainLoop)</h4>
+  <div class="markdown level1 summary"><p>Initializes the main loop driver, gets the calling main loop for the initialization.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void Setup (Mono.Terminal.MainLoop mainLoop);</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="Mono.Terminal.MainLoop.html">MainLoop</a></td>
+        <td><span class="parametername">mainLoop</span></td>
+        <td><p>Main loop.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Mono_Terminal_IMainLoopDriver_Wakeup_" data-uid="Mono.Terminal.IMainLoopDriver.Wakeup*"></a>
+  <h4 id="Mono_Terminal_IMainLoopDriver_Wakeup" data-uid="Mono.Terminal.IMainLoopDriver.Wakeup">Wakeup()</h4>
+  <div class="markdown level1 summary"><p>Wakes up the mainloop that might be waiting on input, must be thread safe.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void Wakeup ();</code></pre>
+  </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">
+              <!-- <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>Copyright © 2015-2017 Microsoft<br>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>

+ 162 - 0
docs/api/Mono.Terminal/Mono.Terminal.UnixMainLoop.Condition.html

@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Enum UnixMainLoop.Condition
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Enum UnixMainLoop.Condition
+   ">
+    <meta name="generator" content="docfx 2.18.2.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="">
+    <meta property="docfx:tocrel" content="../toc.html">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../../logo.svg" 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 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="Mono.Terminal.UnixMainLoop.Condition">
+  
+  
+  <h1 id="Mono_Terminal_UnixMainLoop_Condition" data-uid="Mono.Terminal.UnixMainLoop.Condition">Enum UnixMainLoop.Condition
+  </h1>
+  <div class="markdown level0 summary"><p>Condition on which to wake up from file descriptor activity.  These match the Linux/BSD poll definitions.</p>
+</div>
+  <div class="markdown level0 conceptual"></div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="../Mono.Terminal.html">Mono.Terminal</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Mono_Terminal_UnixMainLoop_Condition_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">[System.Flags]
+public enum UnixMainLoop.Condition</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="Mono_Terminal_UnixMainLoop_Condition_PollErr">PollErr</td>
+        <td><p>Error condition on output</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Mono_Terminal_UnixMainLoop_Condition_PollHup">PollHup</td>
+        <td><p>Hang-up on output</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Mono_Terminal_UnixMainLoop_Condition_PollIn">PollIn</td>
+        <td><p>There is data to read</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Mono_Terminal_UnixMainLoop_Condition_PollNval">PollNval</td>
+        <td><p>File descriptor is not open.</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Mono_Terminal_UnixMainLoop_Condition_PollOut">PollOut</td>
+        <td><p>Writing to the specified descriptor will not block</p>
+</td>
+      </tr>
+      <tr>
+        <td id="Mono_Terminal_UnixMainLoop_Condition_PollPri">PollPri</td>
+        <td><p>There is urgent data to read</p>
+</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">
+              <!-- <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>Copyright © 2015-2017 Microsoft<br>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>

+ 332 - 0
docs/api/Mono.Terminal/Mono.Terminal.UnixMainLoop.html

@@ -0,0 +1,332 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class UnixMainLoop
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class UnixMainLoop
+   ">
+    <meta name="generator" content="docfx 2.18.2.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="">
+    <meta property="docfx:tocrel" content="../toc.html">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../../logo.svg" 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 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="Mono.Terminal.UnixMainLoop">
+  
+  
+  <h1 id="Mono_Terminal_UnixMainLoop" data-uid="Mono.Terminal.UnixMainLoop">Class UnixMainLoop
+  </h1>
+  <div class="markdown level0 summary"><p>Unix main loop, suitable for using on Posix systems</p>
+</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">UnixMainLoop</span></div>
+  </div>
+  <h6><strong>Namespace</strong>: <a class="xref" href="../Mono.Terminal.html">Mono.Terminal</a></h6>
+  <h6><strong>Assembly</strong>: Terminal.Gui.dll</h6>
+  <h5 id="Mono_Terminal_UnixMainLoop_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class UnixMainLoop : Mono.Terminal.IMainLoopDriver</code></pre>
+  </div>
+  <h5 id="Mono_Terminal_UnixMainLoop_remarks"><strong>Remarks</strong></h5>
+  <div class="markdown level0 remarks"><p>In addition to the general functions of the mainloop, the Unix version
+            can watch file descriptors using the AddWatch methods.</p>
+</div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop__ctor_" data-uid="Mono.Terminal.UnixMainLoop.#ctor*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop__ctor" data-uid="Mono.Terminal.UnixMainLoop.#ctor">UnixMainLoop()</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 UnixMainLoop ();</code></pre>
+  </div>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_AddWatch_" data-uid="Mono.Terminal.UnixMainLoop.AddWatch*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_AddWatch_System_Int32_Mono_Terminal_UnixMainLoop_Condition_System_Func_Mono_Terminal_MainLoop_System_Boolean__" data-uid="Mono.Terminal.UnixMainLoop.AddWatch(System.Int32,Mono.Terminal.UnixMainLoop.Condition,System.Func{Mono.Terminal.MainLoop,System.Boolean})">AddWatch(Int32, UnixMainLoop+Condition, Func&lt;MainLoop,Boolean&gt;)</h4>
+  <div class="markdown level1 summary"><p>Watches a file descriptor for activity.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public object AddWatch (int fileDescriptor, Mono.Terminal.UnixMainLoop.Condition condition, Func&lt;Mono.Terminal.MainLoop,bool&gt; callback);</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">fileDescriptor</span></td>
+        <td><p>To be added.</p>
+</td>
+      </tr>
+      <tr>
+        <td></td>
+        <td><span class="parametername">condition</span></td>
+        <td><p>To be added.</p>
+</td>
+      </tr>
+      <tr>
+        <td><span class="xref">System.Func</span>&lt;<a class="xref" href="Mono.Terminal.MainLoop.html">MainLoop</a>,<span class="xref">System.Boolean</span>&gt;</td>
+        <td><span class="parametername">callback</span></td>
+        <td><p>To be added.</p>
+</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.Object</span></td>
+        <td><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 id="Mono_Terminal_UnixMainLoop_AddWatch_System_Int32_Mono_Terminal_UnixMainLoop_Condition_System_Func_Mono_Terminal_MainLoop_System_Boolean___remarks">Remarks</h5>
+  <div class="markdown level1 remarks"><p>When the condition is met, the provided callback
+              is invoked.  If the callback returns false, the
+              watch is automatically removed.</p>
+<pre><code>          The return value is a token that represents this watch, you can
+          use this token to remove the watch by calling RemoveWatch.
+</code></pre></div>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_RemoveWatch_" data-uid="Mono.Terminal.UnixMainLoop.RemoveWatch*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_RemoveWatch_System_Object_" data-uid="Mono.Terminal.UnixMainLoop.RemoveWatch(System.Object)">RemoveWatch(Object)</h4>
+  <div class="markdown level1 summary"><p>Removes an active watch from the mainloop.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void RemoveWatch (object token);</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">token</span></td>
+        <td><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h5 id="Mono_Terminal_UnixMainLoop_RemoveWatch_System_Object__remarks">Remarks</h5>
+  <div class="markdown level1 remarks"><p>The token parameter is the value returned from AddWatch</p>
+</div>
+  <h3 id="eii">Explicit Interface Implementations
+  </h3>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_EventsPending_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#EventsPending*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_EventsPending_System_Boolean_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#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>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">bool IMainLoopDriver.EventsPending (bool wait);</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.Boolean</span></td>
+        <td><span class="parametername">wait</span></td>
+        <td><p>To be added.</p>
+</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><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_MainIteration_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_MainIteration" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#MainIteration">IMainLoopDriver.MainIteration()</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">void IMainLoopDriver.MainIteration ();</code></pre>
+  </div>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_Setup_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_Setup_Mono_Terminal_MainLoop_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Setup(Mono.Terminal.MainLoop)">IMainLoopDriver.Setup(MainLoop)</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">void IMainLoopDriver.Setup (Mono.Terminal.MainLoop mainLoop);</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="Mono.Terminal.MainLoop.html">MainLoop</a></td>
+        <td><span class="parametername">mainLoop</span></td>
+        <td><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_Wakeup_" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup*"></a>
+  <h4 id="Mono_Terminal_UnixMainLoop_Mono_Terminal_IMainLoopDriver_Wakeup" data-uid="Mono.Terminal.UnixMainLoop.Mono#Terminal#IMainLoopDriver#Wakeup">IMainLoopDriver.Wakeup()</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">void IMainLoopDriver.Wakeup ();</code></pre>
+  </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">
+              <!-- <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>Copyright © 2015-2017 Microsoft<br>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>

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

@@ -0,0 +1,548 @@
+<!DOCTYPE html>
+<!--[if IE]><![endif]-->
+<html>
+  
+  <head>
+    <meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <title>Class HexView
+   </title>
+    <meta name="viewport" content="width=device-width">
+    <meta name="title" content="Class HexView
+   ">
+    <meta name="generator" content="docfx 2.18.2.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="">
+    <meta property="docfx:tocrel" content="../toc.html">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../../logo.svg" 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 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.HexView">
+  
+  
+  <h1 id="Terminal_Gui_HexView" data-uid="Terminal.Gui.HexView">Class HexView
+  </h1>
+  <div class="markdown level0 summary"><p>An Hex viewer an editor view over a System.IO.Stream</p>
+</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">HexView</span></div>
+  </div>
+  <div class="inheritedMembers">
+    <h5>Inherited Members</h5>
+    <div>
+      <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_CanFocus">Responder.CanFocus</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.Responder.html#Terminal_Gui_Responder_MouseEvent_Terminal_Gui_MouseEvent_">Responder.MouseEvent(MouseEvent)</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_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_Bounds">View.Bounds</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_ChildNeedsDisplay">View.ChildNeedsDisplay()</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_ClearNeedsDisplay">View.ClearNeedsDisplay()</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_ColorScheme">View.ColorScheme</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_System_Boolean_Terminal_Gui_ColorScheme_">View.DrawHotString(ustring, Boolean, ColorScheme)</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_Driver">View.Driver</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_Focused">View.Focused</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_FocusNext">View.FocusNext()</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_GetEnumerator">View.GetEnumerator()</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_Height">View.Height</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_LayoutStyle">View.LayoutStyle</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_MostFocused">View.MostFocused</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_ProcessColdKey_Terminal_Gui_KeyEvent_">View.ProcessColdKey(KeyEvent)</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_Remove_Terminal_Gui_View_">View.Remove(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_ScreenToView_System_Int32_System_Int32_">View.ScreenToView(Int32, Int32)</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_SetFocus_Terminal_Gui_View_">View.SetFocus(View)</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_SetNeedsDisplay_Terminal_Gui_Rect_">View.SetNeedsDisplay(Rect)</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_SuperView">View.SuperView</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_WantMousePositionReports">View.WantMousePositionReports</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_X">View.X</a>
+    </div>
+    <div>
+      <a class="xref" href="Terminal.Gui.View.html#Terminal_Gui_View_Y">View.Y</a>
+    </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_HexView_syntax">Syntax</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public class HexView : Terminal.Gui.View</code></pre>
+  </div>
+  <h5 id="Terminal_Gui_HexView_remarks"><strong>Remarks</strong></h5>
+  <div class="markdown level0 remarks"><p>
+            This provides a hex editor on top of a seekable stream with the left side showing an hex
+            dump of the values in the stream and the right side showing the contents (filterd to 
+            non-control sequence ascii characters).<br>            </p>
+    <p>
+            Users can switch from one side to the other by using the tab key.<br>            </p>
+    <p>
+            If you want to enable editing, set the AllowsEdits property, once that is done, the user
+            can make changes to the hexadecimal values of the stream.   Any changes done are tracked
+            in the Edits property which is a sorted dictionary indicating the position where the 
+            change was made and the new value.    A convenience ApplyEdits method can be used to c
+            apply the methods to the underlying stream.
+            </p>
+    <p>
+            It is possible to control the first byte shown by setting the DisplayStart property 
+            to the offset that you want to start viewing.
+            </p></div>
+  <h3 id="constructors">Constructors
+  </h3>
+  
+  
+  <a id="Terminal_Gui_HexView__ctor_" data-uid="Terminal.Gui.HexView.#ctor*"></a>
+  <h4 id="Terminal_Gui_HexView__ctor_System_IO_Stream_" data-uid="Terminal.Gui.HexView.#ctor(System.IO.Stream)">HexView(Stream)</h4>
+  <div class="markdown level1 summary"><p>Creates and instance of the HexView that will render a seekable stream in hex on the allocated view region.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public HexView (System.IO.Stream source);</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.IO.Stream</span></td>
+        <td><span class="parametername">source</span></td>
+        <td><p>Source stream, this stream should support seeking, or this will raise an exceotion.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="properties">Properties
+  </h3>
+  
+  
+  <a id="Terminal_Gui_HexView_AllowEdits_" data-uid="Terminal.Gui.HexView.AllowEdits*"></a>
+  <h4 id="Terminal_Gui_HexView_AllowEdits" data-uid="Terminal.Gui.HexView.AllowEdits">AllowEdits</h4>
+  <div class="markdown level1 summary"><p>Gets or sets a value indicating whether this <a class="xref" href="Terminal.Gui.HexView.html">HexView</a> allow editing of the contents of the underlying stream.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public bool AllowEdits { 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><p><code>true</code> if allow edits; otherwise, <code>false</code>.</p>
+</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"><p>Configures the initial offset to be displayed at the top</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public long DisplayStart { 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.Int64</span></td>
+        <td><p>The display start.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_HexView_Edits_" data-uid="Terminal.Gui.HexView.Edits*"></a>
+  <h4 id="Terminal_Gui_HexView_Edits" data-uid="Terminal.Gui.HexView.Edits">Edits</h4>
+  <div class="markdown level1 summary"><p>Gets a list of the edits done to the buffer which is a sorted dictionary with the positions where the edit took place and the value that was set.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public System.Collections.Generic.IReadOnlyDictionary&lt;long,byte&gt; Edits { 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.IReadOnlyDictionary</span>&lt;<span class="xref">System.Int64</span>,<span class="xref">System.Byte</span>&gt;</td>
+        <td><p>The edits.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_HexView_Frame_" data-uid="Terminal.Gui.HexView.Frame*"></a>
+  <h4 id="Terminal_Gui_HexView_Frame" data-uid="Terminal.Gui.HexView.Frame">Frame</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 Terminal.Gui.Rect Frame { 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><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_HexView_Source_" data-uid="Terminal.Gui.HexView.Source*"></a>
+  <h4 id="Terminal_Gui_HexView_Source" data-uid="Terminal.Gui.HexView.Source">Source</h4>
+  <div class="markdown level1 summary"><p>The source stream to display on the hex view, the stream should support seeking.</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public System.IO.Stream Source { 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.IO.Stream</span></td>
+        <td><p>The source.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  <h3 id="methods">Methods
+  </h3>
+  
+  
+  <a id="Terminal_Gui_HexView_ApplyEdits_" data-uid="Terminal.Gui.HexView.ApplyEdits*"></a>
+  <h4 id="Terminal_Gui_HexView_ApplyEdits" data-uid="Terminal.Gui.HexView.ApplyEdits">ApplyEdits()</h4>
+  <div class="markdown level1 summary"><p>This method applies the edits to the stream and resets the contents of the Edits property</p>
+</div>
+  <div class="markdown level1 conceptual"></div>
+  <h5 class="decalaration">Declaration</h5>
+  <div class="codewrapper">
+    <pre><code class="lang-csharp hljs">public void ApplyEdits ();</code></pre>
+  </div>
+  
+  
+  <a id="Terminal_Gui_HexView_PositionCursor_" data-uid="Terminal.Gui.HexView.PositionCursor*"></a>
+  <h4 id="Terminal_Gui_HexView_PositionCursor" data-uid="Terminal.Gui.HexView.PositionCursor">PositionCursor()</h4>
+  <div class="markdown level1 summary"><p>Positions the cursor based for the hex view</p>
+</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>
+  
+  
+  <a id="Terminal_Gui_HexView_ProcessKey_" data-uid="Terminal.Gui.HexView.ProcessKey*"></a>
+  <h4 id="Terminal_Gui_HexView_ProcessKey_Terminal_Gui_KeyEvent_" data-uid="Terminal.Gui.HexView.ProcessKey(Terminal.Gui.KeyEvent)">ProcessKey(KeyEvent)</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 ProcessKey (Terminal.Gui.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><p>To be added.</p>
+</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><p>To be added.</p>
+</td>
+      </tr>
+    </tbody>
+  </table>
+  
+  
+  <a id="Terminal_Gui_HexView_Redraw_" data-uid="Terminal.Gui.HexView.Redraw*"></a>
+  <h4 id="Terminal_Gui_HexView_Redraw_Terminal_Gui_Rect_" data-uid="Terminal.Gui.HexView.Redraw(Terminal.Gui.Rect)">Redraw(Rect)</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 void Redraw (Terminal.Gui.Rect region);</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">region</span></td>
+        <td><p>To be added.</p>
+</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">
+              <!-- <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>Copyright © 2015-2017 Microsoft<br>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>

+ 129 - 0
docs/articles/keyboard.html

@@ -0,0 +1,129 @@
+<!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.18.2.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="">
+    <meta property="docfx:tocrel" content="">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../logo.svg" 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 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">
+                  <li>
+                    <a href="https://github.com/migueldeicaza/gui.cs/blob/master/docfx/articles/keyboard.md/#L1" class="contribution-link">Improve this Doc</a>
+                  </li>
+                </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>Copyright © 2015-2017 Microsoft<br>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>

+ 212 - 0
docs/articles/mainloop.html

@@ -0,0 +1,212 @@
+<!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.18.2.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="">
+    <meta property="docfx:tocrel" content="">
+    
+    
+  </head>
+  <body data-spy="scroll" data-target="#affix">
+    <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="../logo.svg" 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 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="docs/api/Mono.Terminal/Mono.Terminal.MainLoop.html"><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
+<code>Toplevel</code>[../api/Terminal.Gui/Terminal.Gui.Toplevel.html] 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="https://migueldeicaza.github.io/gui.cs/api/Mono.Terminal/Mono.Terminal.MainLoop.html#Mono_Terminal_MainLoop_AddTimeout_System_TimeSpan_System_Func_Mono_Terminal_MainLoop_System_Boolean__"><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="https://migueldeicaza.github.io/gui.cs/api/Mono.Terminal/Mono.Terminal.MainLoop.html#Mono_Terminal_MainLoop_AddIdle_System_Func_System_Boolean__"><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="docs/api/Mono.Terminal/Mono.Terminal.UnixMainLoop.html"><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">
+                  <li>
+                    <a href="https://github.com/migueldeicaza/gui.cs/blob/master/docfx/articles/mainloop.md/#L1" class="contribution-link">Improve this Doc</a>
+                  </li>
+                </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>Copyright © 2015-2017 Microsoft<br>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>

+ 95 - 0
ecmadocs/en/Mono.Terminal/IMainLoopDriver.xml

@@ -0,0 +1,95 @@
+<Type Name="IMainLoopDriver" FullName="Mono.Terminal.IMainLoopDriver">
+  <TypeSignature Language="C#" Value="public interface IMainLoopDriver" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IMainLoopDriver" />
+  <AssemblyInfo>
+    <AssemblyName>Terminal.Gui</AssemblyName>
+    <AssemblyVersion>1.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>
+            Public interface to create your own platform specific main loop driver.
+            </summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="EventsPending">
+      <MemberSignature Language="C#" Value="public bool EventsPending (bool wait);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool EventsPending(bool wait) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="wait" Type="System.Boolean" />
+      </Parameters>
+      <Docs>
+        <param name="wait">If set to <c>true</c> wait until an event is available, otherwise return immediately.</param>
+        <summary>
+            Must report whether there are any events pending, or even block waiting for events.
+            </summary>
+        <returns>
+          <c>true</c>, if there were pending events, <c>false</c> otherwise.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="MainIteration">
+      <MemberSignature Language="C#" Value="public void MainIteration ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void MainIteration() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Setup">
+      <MemberSignature Language="C#" Value="public void Setup (Mono.Terminal.MainLoop mainLoop);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Setup(class Mono.Terminal.MainLoop mainLoop) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="mainLoop" Type="Mono.Terminal.MainLoop" />
+      </Parameters>
+      <Docs>
+        <param name="mainLoop">Main loop.</param>
+        <summary>
+            Initializes the main loop driver, gets the calling main loop for the initialization.
+            </summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Wakeup">
+      <MemberSignature Language="C#" Value="public void Wakeup ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Wakeup() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>
+            Wakes up the mainloop that might be waiting on input, must be thread safe.
+            </summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>

+ 120 - 0
ecmadocs/en/Mono.Terminal/UnixMainLoop+Condition.xml

@@ -0,0 +1,120 @@
+<Type Name="UnixMainLoop+Condition" FullName="Mono.Terminal.UnixMainLoop+Condition">
+  <TypeSignature Language="C#" Value="public enum UnixMainLoop.Condition" />
+  <TypeSignature Language="ILAsm" Value=".class nested public auto ansi sealed UnixMainLoop/Condition extends System.Enum" />
+  <AssemblyInfo>
+    <AssemblyName>Terminal.Gui</AssemblyName>
+    <AssemblyVersion>1.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Enum</BaseTypeName>
+  </Base>
+  <Attributes>
+    <Attribute>
+      <AttributeName>System.Flags</AttributeName>
+    </Attribute>
+  </Attributes>
+  <Docs>
+    <summary>
+              Condition on which to wake up from file descriptor activity.  These match the Linux/BSD poll definitions.
+            </summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="PollErr">
+      <MemberSignature Language="C#" Value="PollErr" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollErr = int16(8)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+             Error condition on output
+            </summary>
+      </Docs>
+    </Member>
+    <Member MemberName="PollHup">
+      <MemberSignature Language="C#" Value="PollHup" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollHup = int16(16)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            Hang-up on output
+            </summary>
+      </Docs>
+    </Member>
+    <Member MemberName="PollIn">
+      <MemberSignature Language="C#" Value="PollIn" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollIn = int16(1)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            There is data to read
+            </summary>
+      </Docs>
+    </Member>
+    <Member MemberName="PollNval">
+      <MemberSignature Language="C#" Value="PollNval" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollNval = int16(32)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            File descriptor is not open.
+            </summary>
+      </Docs>
+    </Member>
+    <Member MemberName="PollOut">
+      <MemberSignature Language="C#" Value="PollOut" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollOut = int16(4)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            Writing to the specified descriptor will not block
+            </summary>
+      </Docs>
+    </Member>
+    <Member MemberName="PollPri">
+      <MemberSignature Language="C#" Value="PollPri" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Mono.Terminal.UnixMainLoop/Condition PollPri = int16(2)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Mono.Terminal.UnixMainLoop+Condition</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            There is urgent data to read
+            </summary>
+      </Docs>
+    </Member>
+  </Members>
+</Type>

+ 167 - 0
ecmadocs/en/Mono.Terminal/UnixMainLoop.xml

@@ -0,0 +1,167 @@
+<Type Name="UnixMainLoop" FullName="Mono.Terminal.UnixMainLoop">
+  <TypeSignature Language="C#" Value="public class UnixMainLoop : Mono.Terminal.IMainLoopDriver" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit UnixMainLoop extends System.Object implements class Mono.Terminal.IMainLoopDriver" />
+  <AssemblyInfo>
+    <AssemblyName>Terminal.Gui</AssemblyName>
+    <AssemblyVersion>1.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces>
+    <Interface>
+      <InterfaceName>Mono.Terminal.IMainLoopDriver</InterfaceName>
+    </Interface>
+  </Interfaces>
+  <Docs>
+    <summary>
+            Unix main loop, suitable for using on Posix systems
+            </summary>
+    <remarks>
+            In addition to the general functions of the mainloop, the Unix version
+            can watch file descriptors using the AddWatch methods.
+            </remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public UnixMainLoop ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="AddWatch">
+      <MemberSignature Language="C#" Value="public object AddWatch (int fileDescriptor, Mono.Terminal.UnixMainLoop.Condition condition, Func&lt;Mono.Terminal.MainLoop,bool&gt; callback);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object AddWatch(int32 fileDescriptor, valuetype Mono.Terminal.UnixMainLoop/Condition condition, class System.Func`2&lt;class Mono.Terminal.MainLoop, bool&gt; callback) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Object</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="fileDescriptor" Type="System.Int32" />
+        <Parameter Name="condition" Type="Mono.Terminal.UnixMainLoop+Condition" />
+        <Parameter Name="callback" Type="System.Func&lt;Mono.Terminal.MainLoop,System.Boolean&gt;" />
+      </Parameters>
+      <Docs>
+        <param name="fileDescriptor">To be added.</param>
+        <param name="condition">To be added.</param>
+        <param name="callback">To be added.</param>
+        <summary>
+              Watches a file descriptor for activity.
+             </summary>
+        <returns>To be added.</returns>
+        <remarks>
+              When the condition is met, the provided callback
+              is invoked.  If the callback returns false, the
+              watch is automatically removed.
+            
+              The return value is a token that represents this watch, you can
+              use this token to remove the watch by calling RemoveWatch.
+             </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Mono.Terminal.IMainLoopDriver.EventsPending">
+      <MemberSignature Language="C#" Value="bool IMainLoopDriver.EventsPending (bool wait);" />
+      <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool Mono.Terminal.IMainLoopDriver.EventsPending(bool wait) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="wait" Type="System.Boolean" />
+      </Parameters>
+      <Docs>
+        <param name="wait">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Mono.Terminal.IMainLoopDriver.MainIteration">
+      <MemberSignature Language="C#" Value="void IMainLoopDriver.MainIteration ();" />
+      <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Mono.Terminal.IMainLoopDriver.MainIteration() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Mono.Terminal.IMainLoopDriver.Setup">
+      <MemberSignature Language="C#" Value="void IMainLoopDriver.Setup (Mono.Terminal.MainLoop mainLoop);" />
+      <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Mono.Terminal.IMainLoopDriver.Setup(class Mono.Terminal.MainLoop mainLoop) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="mainLoop" Type="Mono.Terminal.MainLoop" />
+      </Parameters>
+      <Docs>
+        <param name="mainLoop">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Mono.Terminal.IMainLoopDriver.Wakeup">
+      <MemberSignature Language="C#" Value="void IMainLoopDriver.Wakeup ();" />
+      <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Mono.Terminal.IMainLoopDriver.Wakeup() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="RemoveWatch">
+      <MemberSignature Language="C#" Value="public void RemoveWatch (object token);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void RemoveWatch(object token) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="token" Type="System.Object" />
+      </Parameters>
+      <Docs>
+        <param name="token">To be added.</param>
+        <summary>
+              Removes an active watch from the mainloop.
+            </summary>
+        <remarks>
+              The token parameter is the value returned from AddWatch
+            </remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>

+ 222 - 0
ecmadocs/en/Terminal.Gui/HexView.xml

@@ -0,0 +1,222 @@
+<Type Name="HexView" FullName="Terminal.Gui.HexView">
+  <TypeSignature Language="C#" Value="public class HexView : Terminal.Gui.View" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit HexView extends Terminal.Gui.View" />
+  <AssemblyInfo>
+    <AssemblyName>Terminal.Gui</AssemblyName>
+    <AssemblyVersion>1.0.0.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>Terminal.Gui.View</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>
+            An Hex viewer an editor view over a System.IO.Stream
+            </summary>
+    <remarks>
+      <para>
+            This provides a hex editor on top of a seekable stream with the left side showing an hex
+            dump of the values in the stream and the right side showing the contents (filterd to 
+            non-control sequence ascii characters).    
+            </para>
+      <para>
+            Users can switch from one side to the other by using the tab key.  
+            </para>
+      <para>
+            If you want to enable editing, set the AllowsEdits property, once that is done, the user
+            can make changes to the hexadecimal values of the stream.   Any changes done are tracked
+            in the Edits property which is a sorted dictionary indicating the position where the 
+            change was made and the new value.    A convenience ApplyEdits method can be used to c
+            apply the methods to the underlying stream.
+            </para>
+      <para>
+            It is possible to control the first byte shown by setting the DisplayStart property 
+            to the offset that you want to start viewing.
+            </para>
+    </remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="public HexView (System.IO.Stream source);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.IO.Stream source) cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters>
+        <Parameter Name="source" Type="System.IO.Stream" />
+      </Parameters>
+      <Docs>
+        <param name="source">Source stream, this stream should support seeking, or this will raise an exceotion.</param>
+        <summary>
+            Creates and instance of the HexView that will render a seekable stream in hex on the allocated view region.
+            </summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="AllowEdits">
+      <MemberSignature Language="C#" Value="public bool AllowEdits { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool AllowEdits" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            Gets or sets a value indicating whether this <see cref="T:Terminal.Gui.HexView" /> allow editing of the contents of the underlying stream.
+            </summary>
+        <value>
+          <c>true</c> if allow edits; otherwise, <c>false</c>.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="ApplyEdits">
+      <MemberSignature Language="C#" Value="public void ApplyEdits ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void ApplyEdits() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>
+            This method applies the edits to the stream and resets the contents of the Edits property
+            </summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="DisplayStart">
+      <MemberSignature Language="C#" Value="public long DisplayStart { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance int64 DisplayStart" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Int64</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            Configures the initial offset to be displayed at the top
+            </summary>
+        <value>The display start.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Edits">
+      <MemberSignature Language="C#" Value="public System.Collections.Generic.IReadOnlyDictionary&lt;long,byte&gt; Edits { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class System.Collections.Generic.IReadOnlyDictionary`2&lt;int64, unsigned int8&gt; Edits" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Collections.Generic.IReadOnlyDictionary&lt;System.Int64,System.Byte&gt;</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            Gets a list of the edits done to the buffer which is a sorted dictionary with the positions where the edit took place and the value that was set.
+            </summary>
+        <value>The edits.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Frame">
+      <MemberSignature Language="C#" Value="public override Terminal.Gui.Rect Frame { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype Terminal.Gui.Rect Frame" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Terminal.Gui.Rect</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="PositionCursor">
+      <MemberSignature Language="C#" Value="public override void PositionCursor ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void PositionCursor() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>
+            Positions the cursor based for the hex view
+            </summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="ProcessKey">
+      <MemberSignature Language="C#" Value="public override bool ProcessKey (Terminal.Gui.KeyEvent keyEvent);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool ProcessKey(valuetype Terminal.Gui.KeyEvent keyEvent) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="keyEvent" Type="Terminal.Gui.KeyEvent" />
+      </Parameters>
+      <Docs>
+        <param name="keyEvent">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Redraw">
+      <MemberSignature Language="C#" Value="public override void Redraw (Terminal.Gui.Rect region);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance void Redraw(valuetype Terminal.Gui.Rect region) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="region" Type="Terminal.Gui.Rect" />
+      </Parameters>
+      <Docs>
+        <param name="region">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Source">
+      <MemberSignature Language="C#" Value="public System.IO.Stream Source { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class System.IO.Stream Source" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>1.0.0.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.IO.Stream</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>
+            The source stream to display on the hex view, the stream should support seeking.
+            </summary>
+        <value>The source.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>