Class ConsoleDriver
ConsoleDriver is an abstract class that defines the requirements for a console driver.
There are currently three implementations: Terminal.Gui.CursesDriver (for Unix and Mac), Terminal.Gui.WindowsDriver, and Terminal.Gui.NetDriver that uses the .NET Console API.
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Terminal.Gui
Assembly: Terminal.Gui.dll
Syntax
public abstract class ConsoleDriver
Fields
BlocksMeterSegment
Blocks Segment indicator for meter views (e.g. ProgressBar.
Declaration
public Rune BlocksMeterSegment
Field Value
| Type | Description |
|---|---|
| System.Rune |
BottomTee
The bottom tee.
Declaration
public Rune BottomTee
Field Value
| Type | Description |
|---|---|
| System.Rune |
Checked
Checkmark.
Declaration
public Rune Checked
Field Value
| Type | Description |
|---|---|
| System.Rune |
ContinuousMeterSegment
Continuous Segment indicator for meter views (e.g. ProgressBar.
Declaration
public Rune ContinuousMeterSegment
Field Value
| Type | Description |
|---|---|
| System.Rune |
Diamond
Diamond character
Declaration
public Rune Diamond
Field Value
| Type | Description |
|---|---|
| System.Rune |
DownArrow
Down Arrow.
Declaration
public Rune DownArrow
Field Value
| Type | Description |
|---|---|
| System.Rune |
HDLine
Horizontal double line character.
Declaration
public Rune HDLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
HLine
Horizontal line character.
Declaration
public Rune HLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
HRLine
Horizontal line character for rounded corners.
Declaration
public Rune HRLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
LeftArrow
Left Arrow.
Declaration
public Rune LeftArrow
Field Value
| Type | Description |
|---|---|
| System.Rune |
LeftBracket
Left frame/bracket (e.g. '[' for Button).
Declaration
public Rune LeftBracket
Field Value
| Type | Description |
|---|---|
| System.Rune |
LeftDefaultIndicator
Left indicator for default action (e.g. for Button).
Declaration
public Rune LeftDefaultIndicator
Field Value
| Type | Description |
|---|---|
| System.Rune |
LeftTee
Left tee
Declaration
public Rune LeftTee
Field Value
| Type | Description |
|---|---|
| System.Rune |
LLCorner
Lower left corner
Declaration
public Rune LLCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
LLDCorner
Lower left double corner
Declaration
public Rune LLDCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
LLRCorner
Lower left rounded corner
Declaration
public Rune LLRCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
LRCorner
Lower right corner
Declaration
public Rune LRCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
LRDCorner
Lower right double corner
Declaration
public Rune LRDCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
LRRCorner
Lower right rounded corner
Declaration
public Rune LRRCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
RightArrow
Right Arrow.
Declaration
public Rune RightArrow
Field Value
| Type | Description |
|---|---|
| System.Rune |
RightBracket
Right frame/bracket (e.g. ']' for Button).
Declaration
public Rune RightBracket
Field Value
| Type | Description |
|---|---|
| System.Rune |
RightDefaultIndicator
Right indicator for default action (e.g. for Button).
Declaration
public Rune RightDefaultIndicator
Field Value
| Type | Description |
|---|---|
| System.Rune |
RightTee
Right tee
Declaration
public Rune RightTee
Field Value
| Type | Description |
|---|---|
| System.Rune |
Selected
Selected mark.
Declaration
public Rune Selected
Field Value
| Type | Description |
|---|---|
| System.Rune |
Stipple
Stipple pattern
Declaration
public Rune Stipple
Field Value
| Type | Description |
|---|---|
| System.Rune |
TerminalResized
The handler fired when the terminal is resized.
Declaration
protected Action TerminalResized
Field Value
| Type | Description |
|---|---|
| System.Action |
TopTee
Top tee
Declaration
public Rune TopTee
Field Value
| Type | Description |
|---|---|
| System.Rune |
ULCorner
Upper left corner
Declaration
public Rune ULCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
ULDCorner
Upper left double corner
Declaration
public Rune ULDCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
ULRCorner
Upper left rounded corner
Declaration
public Rune ULRCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
UnChecked
Un-checked checkmark.
Declaration
public Rune UnChecked
Field Value
| Type | Description |
|---|---|
| System.Rune |
UnSelected
Un-selected selected mark.
Declaration
public Rune UnSelected
Field Value
| Type | Description |
|---|---|
| System.Rune |
UpArrow
Up Arrow.
Declaration
public Rune UpArrow
Field Value
| Type | Description |
|---|---|
| System.Rune |
URCorner
Upper right corner
Declaration
public Rune URCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
URDCorner
Upper right double corner
Declaration
public Rune URDCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
URRCorner
Upper right rounded corner
Declaration
public Rune URRCorner
Field Value
| Type | Description |
|---|---|
| System.Rune |
VDLine
Vertical double line character.
Declaration
public Rune VDLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
VLine
Vertical line character.
Declaration
public Rune VLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
VRLine
Vertical line character for rounded corners.
Declaration
public Rune VRLine
Field Value
| Type | Description |
|---|---|
| System.Rune |
Properties
Clip
Controls the current clipping region that AddRune/AddStr is subject to.
Declaration
public Rect Clip { get; set; }
Property Value
| Type | Description |
|---|---|
| Rect | The clip. |
Clipboard
Get the operation system clipboard.
Declaration
public abstract IClipboard Clipboard { get; }
Property Value
| Type | Description |
|---|---|
| IClipboard |
Cols
The current number of columns in the terminal.
Declaration
public abstract int Cols { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Diagnostics
Set flags to enable/disable ConsoleDriver diagnostics.
Declaration
public static ConsoleDriver.DiagnosticFlags Diagnostics { get; set; }
Property Value
| Type | Description |
|---|---|
| ConsoleDriver.DiagnosticFlags |
HeightAsBuffer
If false height is measured by the window height and thus no scrolling.
If true then height is measured by the buffer height, enabling scrolling.
Declaration
public abstract bool HeightAsBuffer { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Left
The current left in the terminal.
Declaration
public abstract int Left { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Rows
The current number of rows in the terminal.
Declaration
public abstract int Rows { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Top
The current top in the terminal.
Declaration
public abstract int Top { get; }
Property Value
| Type | Description |
|---|---|
| System.Int32 |
Methods
AddRune(Rune)
Adds the specified rune to the display at the current cursor position
Declaration
public abstract void AddRune(Rune rune)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Rune | rune | Rune to add. |
AddStr(ustring)
Adds the specified
Declaration
public abstract void AddStr(ustring str)
Parameters
| Type | Name | Description |
|---|---|---|
| NStack.ustring | str | String. |
CookMouse()
Enables the cooked event processing from the mouse driver
Declaration
public abstract void CookMouse()
DrawFrame(Rect, Int32, Boolean)
Draws a frame on the specified region with the specified padding around the frame.
Declaration
public virtual void DrawFrame(Rect region, int padding, bool fill)
Parameters
| Type | Name | Description |
|---|---|---|
| Rect | region | Screen relative region where the frame will be drawn. |
| System.Int32 | padding | Padding to add on the sides. |
| System.Boolean | fill | If set to true it will clear the contents with the current color, otherwise the contents will be left untouched. |
Remarks
This API has been superseded by DrawWindowFrame(Rect, Int32, Int32, Int32, Int32, Boolean, Boolean, Border).
DrawWindowFrame(Rect, Int32, Int32, Int32, Int32, Boolean, Boolean, Border)
Draws a frame for a window with padding and an optional visible border inside the padding.
Declaration
public virtual void DrawWindowFrame(Rect region, int paddingLeft = 0, int paddingTop = 0, int paddingRight = 0, int paddingBottom = 0, bool border = true, bool fill = false, Border borderContent = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Rect | region | Screen relative region where the frame will be drawn. |
| System.Int32 | paddingLeft | Number of columns to pad on the left (if 0 the border will not appear on the left). |
| System.Int32 | paddingTop | Number of rows to pad on the top (if 0 the border and title will not appear on the top). |
| System.Int32 | paddingRight | Number of columns to pad on the right (if 0 the border will not appear on the right). |
| System.Int32 | paddingBottom | Number of rows to pad on the bottom (if 0 the border will not appear on the bottom). |
| System.Boolean | border | If set to true and any padding dimension is > 0 the border will be drawn. |
| System.Boolean | fill | If set to true it will clear the content area (the area inside the padding) with the current color, otherwise the content area will be left untouched. |
| Border | borderContent | The Border to be used if defined. |
DrawWindowTitle(Rect, ustring, Int32, Int32, Int32, Int32, TextAlignment)
Draws the title for a Window-style view incorporating padding.
Declaration
public virtual void DrawWindowTitle(Rect region, ustring title, int paddingLeft, int paddingTop, int paddingRight, int paddingBottom, TextAlignment textAlignment = TextAlignment.Left)
Parameters
| Type | Name | Description |
|---|---|---|
| Rect | region | Screen relative region where the frame will be drawn. |
| NStack.ustring | title | The title for the window. The title will only be drawn if title is not null or empty and paddingTop is greater than 0. |
| System.Int32 | paddingLeft | Number of columns to pad on the left (if 0 the border will not appear on the left). |
| System.Int32 | paddingTop | Number of rows to pad on the top (if 0 the border and title will not appear on the top). |
| System.Int32 | paddingRight | Number of columns to pad on the right (if 0 the border will not appear on the right). |
| System.Int32 | paddingBottom | Number of rows to pad on the bottom (if 0 the border will not appear on the bottom). |
| TextAlignment | textAlignment | Not yet implemented. |
End()
Ends the execution of the console driver.
Declaration
public abstract void End()
EnsureCursorVisibility()
Ensure the cursor visibility
Declaration
public abstract bool EnsureCursorVisibility()
Returns
| Type | Description |
|---|---|
| System.Boolean | true upon success |
GetAttribute()
Gets the current Attribute.
Declaration
public abstract Attribute GetAttribute()
Returns
| Type | Description |
|---|---|
| Attribute | The current attribute. |
GetColors(Int32, out Color, out Color)
Gets the foreground and background colors based on the value.
Declaration
public abstract bool GetColors(int value, out Color foreground, out Color background)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | value | The value. |
| Color | foreground | The foreground. |
| Color | background | The background. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
GetCursorVisibility(out CursorVisibility)
Retreive the cursor caret visibility
Declaration
public abstract bool GetCursorVisibility(out CursorVisibility visibility)
Parameters
| Type | Name | Description |
|---|---|---|
| CursorVisibility | visibility | The current CursorVisibility |
Returns
| Type | Description |
|---|---|
| System.Boolean | true upon success |
Init(Action)
Initializes the driver
Declaration
public abstract void Init(Action terminalResized)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Action | terminalResized | Method to invoke when the terminal is resized. |
MakeAttribute(Color, Color)
Make the attribute for the foreground and background colors.
Declaration
public abstract Attribute MakeAttribute(Color fore, Color back)
Parameters
| Type | Name | Description |
|---|---|---|
| Color | fore | Foreground. |
| Color | back | Background. |
Returns
| Type | Description |
|---|---|
| Attribute |
MakePrintable(Rune)
Ensures a Rune is not a control character and can be displayed by translating characters below 0x20
to equivalent, printable, Unicode chars.
Declaration
public static Rune MakePrintable(Rune c)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Rune | c | Rune to translate |
Returns
| Type | Description |
|---|---|
| System.Rune |
Move(Int32, Int32)
Moves the cursor to the specified column and row.
Declaration
public abstract void Move(int col, int row)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int32 | col | Column to move the cursor to. |
| System.Int32 | row | Row to move the cursor to. |
PrepareToRun(MainLoop, Action<KeyEvent>, Action<KeyEvent>, Action<KeyEvent>, Action<MouseEvent>)
Prepare the driver and set the key and mouse events handlers.
Declaration
public abstract void PrepareToRun(MainLoop mainLoop, Action<KeyEvent> keyHandler, Action<KeyEvent> keyDownHandler, Action<KeyEvent> keyUpHandler, Action<MouseEvent> mouseHandler)
Parameters
| Type | Name | Description |
|---|---|---|
| MainLoop | mainLoop | The main loop. |
| System.Action<KeyEvent> | keyHandler | The handler for ProcessKey |
| System.Action<KeyEvent> | keyDownHandler | The handler for key down events |
| System.Action<KeyEvent> | keyUpHandler | The handler for key up events |
| System.Action<MouseEvent> | mouseHandler | The handler for mouse events |
Refresh()
Updates the screen to reflect all the changes that have been done to the display buffer
Declaration
public abstract void Refresh()
SendKeys(Char, ConsoleKey, Boolean, Boolean, Boolean)
Allows sending keys without typing on a keyboard.
Declaration
public abstract void SendKeys(char keyChar, ConsoleKey key, bool shift, bool alt, bool control)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Char | keyChar | The character key. |
| System.ConsoleKey | key | The key. |
| System.Boolean | shift | If shift key is sending. |
| System.Boolean | alt | If alt key is sending. |
| System.Boolean | control | If control key is sending. |
SetAttribute(Attribute)
Selects the specified attribute as the attribute to use for future calls to AddRune, AddString.
Declaration
public abstract void SetAttribute(Attribute c)
Parameters
| Type | Name | Description |
|---|---|---|
| Attribute | c | C. |
SetColors(ConsoleColor, ConsoleColor)
Set Colors from limit sets of colors.
Declaration
public abstract void SetColors(ConsoleColor foreground, ConsoleColor background)
Parameters
| Type | Name | Description |
|---|---|---|
| System.ConsoleColor | foreground | Foreground. |
| System.ConsoleColor | background | Background. |
SetColors(Int16, Int16)
Advanced uses - set colors to any pre-set pairs, you would need to init_color
that independently with the R, G, B values.
Declaration
public abstract void SetColors(short foregroundColorId, short backgroundColorId)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Int16 | foregroundColorId | Foreground color identifier. |
| System.Int16 | backgroundColorId | Background color identifier. |
SetCursorVisibility(CursorVisibility)
Change the cursor caret visibility
Declaration
public abstract bool SetCursorVisibility(CursorVisibility visibility)
Parameters
| Type | Name | Description |
|---|---|---|
| CursorVisibility | visibility | The wished CursorVisibility |
Returns
| Type | Description |
|---|---|
| System.Boolean | true upon success |
SetTerminalResized(Action)
Set the handler when the terminal is resized.
Declaration
public void SetTerminalResized(Action terminalResized)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Action | terminalResized |
StartReportingMouseMoves()
Start of mouse moves.
Declaration
public abstract void StartReportingMouseMoves()
StopReportingMouseMoves()
Stop reporting mouses moves.
Declaration
public abstract void StopReportingMouseMoves()
Suspend()
Suspend the application, typically needs to save the state, suspend the app and upon return, reset the console driver.
Declaration
public abstract void Suspend()
UncookMouse()
Disables the cooked event processing from the mouse driver. At startup, it is assumed mouse events are cooked.
Declaration
public abstract void UncookMouse()
UpdateCursor()
Updates the location of the cursor position
Declaration
public abstract void UpdateCursor()
UpdateScreen()
Redraws the physical screen with the contents that have been queued up via any of the printing commands.
Declaration
public abstract void UpdateScreen()