#TerminalAttr

C
'This class represents the attributes of a terminal character.
Foreground
v
i

'Return or set the character foreground color index.
ForegroundRGB
v
i

'Return or set the character foreground color.
Background
v
i

'Return or set the character background color index.
BackgroundRGB
v
i

'Return or set the character background color.
Bold
v
b

'Return or set the character "bold" attribute.
Dim
v
b

'Return or set the character "dim" attribute.
Underline
v
b

'Return or set the character "underline" attribute.
DoubleUnderline
v
b

'Return or set the character "double-underline" attribute.
Reverse
v
b

'Return or set the character "reverse" attribute.
Strike
v
b

'Return or set the character "strike" attribute.
Blink
v
b

'Return or set the character "blink" attribute.
FastBlink
v
b

'Return or set the character "fast blink" attribute.
Overline
v
b

'Return or set the character "overline" attribute.
Underscore
p
b

'A deprecated synonymous of the [../underline] property.
Reset
m


'Reset the character flags.
IsVoid
m
b

'Return if the character attributes are the default ones.
_FillFrom
m

(iAttr)l
_ToValue
m
l

#TerminalLink

C
'This class allows to define and return the contents of a link inside a [../terminalview].
:_Fake
:


Text
r
s

'Return the text of the link as defined by the [../select] method.
Type
r
s

'Return the link type as defined by the [../select] method.
Line
r
s

'Return the full line under the mouse cursor.
Pos
r
s

'Return the position of the character under the mouse cursor inside the line.
_Text
v
s

_Type
v
s

_Line
v
s

_Pos
v
i

Select
m

(Start)i(Length)i[(Type)s]
'Highlight a link.
'
'This method must be called during a [../../terminalview/.link] event to indicate which part of the current line under the mouse cursor is a link.
'
'- ~Start~ : The position of the first character of the link.
'- ~Length~ : The link length.
'- ~Type~: The link type (optional). Use it to make the difference between different types of links.
#TerminalView
UserControl
C
_Properties
C
s
"*,Border=True,AutoResize=True,Limit=1000,Blink,CursorStyle{TerminalView.Block;Underline;VerticalLine}=Block,ShowScrollBar,ShowLink,ReadOnly,WindowCommands"
_DrawWith
C
s
"-"
_Group
C
s
"View"
:Kill
:


'This event is raised when the process running in the terminal terminates.
:Title
:

(Title)s
'This event is raised when the terminal wants to change its title.
Title
p
s

'Return or set the terminal title.
:Resize
:

(W)i(H)i
'This event is raised when the terminal size has changed.
:Link
:


'This event is raised to check if the text under the mouse is a link.
'
'The [../link] property will return an object that gives you the current line contents, and the position of the cursor in that line.
'Then call the [TerminalView.Link.Select()](../../terminallink/select) method to define which part of the current line is a link. Otherwise do nothing.
:Click
:


'This event is raised when a link has been clicked.
'
'The [../link] property will return an object that will give you the text of the link.
:Bell
:


'This event is raised when the terminal wants to emit a bell
Border
p
b

'Return or set if the terminal view has a border.
Attr
r
TerminalAttr

'Return the current terminal screen attributes.
Column
r
i

'Return the column position of the terminal cursor.
Line
r
i

'Return the line position of the terminal cursor.
Limit
p
i

'Return or set the maximum size of the terminal screen buffer.
'
'[[ warning
'The actual buffer size will not be lower than the screen lines count.
']]
Type
p
s

'Return or set the terminal type.
'
'`"VT100"` is the only type that is supported at the moment.
AlternateScreen
p
b

'Return or set if the terminal displays its main screen or its alternate screen.
Blink
p
b

'Return or set if the terminal cursor blinks.
Text
r
s

'Return the contents of the terminal.
ShowScrollBar
p
b

'Return or set if the terminal view shows its scrollbar.
Background
p
i

'Return or set the terminal view background color.
Foreground
p
i

'Return or set the terminal view foreground color.
Count
r
i

'Return the terminal view lines count.
Suspended
p
b

'Return of set if the terminal output is suspended.
AutoResize
p
b

'Return or set if the terminal width automatically fits the terminal view.
ScreenWidth
p
i

'Return or set the terminal screen width in characters.
'
'[[ warning
'If the [../autoresize] property is set, then the return value is the effective width, which may be different of what you have set.
']]
CharWidth
r
i

'Return the terminal character width in pixels.
LineHeight
r
i

'Return the terminal line height in pixels.
ReadOnly
p
b

'Return or set if the terminal is read-only.
WindowCommands
p
b

'Return or set if terminal can be effected by XTerm 't' escape sequences.
ShowLink
p
b

'Return or set if the terminal detects URLs and makes them clickable.
Link
r
TerminalLink

'Return an object that represents the information about the link under the mouse cursor.
CursorStyle
p
i

'Return or set how the terminal cursor is drawn
Block
C
i
0
'Constant for drawing the cursor with a block.
Underline
C
i
1
'Constant for drawing the cursor with an underline.
VerticalLine
C
i
2
'Constant for drawing the cursor with a vertical line.
_DisableFilter
v
i

_HasBlink
v
b

_Blink
v
i

_new
m


'Create a new TerminalView control
Reset
m

[(KeepCursor)b]
'Reset the terminal.
'
'- The terminal output is resumed if it was suspended.
'- The mouse mode is disabled.
'- All terminal modes are reset to their defaults.
'- The cursor position is reset, unless the ~KeepCursor~ argument is TRUE.
'- The terminal attributes are reset to their defaults.
_Suspend
m

(bSuspend)b
_UseMouse
m

(bUse)b
Goto
m

(X)i(Y)i
'Move the cursor to the specified position.
Refresh
m


'Refresh the terminal contents.
Clear
m


'Clear the terminal screen contents, and reset the terminal.
_RefreshLine
m

(Y)i
_DisableUpdateSize
m


_EnableUpdateSize
m


_UpdateSize
m


ResizeTimer_Timer
m


View_Font
m


Panel_Arrange
m


BlinkTimer_Timer
m


View_Draw
m


OutputTimer_Timer
m


EnsureVisible
m


'Ensure that the cursor position is visible, by scrolling the screen if necessary.
_EnsureVisibleAt
m

(X)i(Y)i
_EnsureScreen
m


_SelectLink
m

(Start)i(Length)i(Type)s
View_MouseDown
m


Paste
m


'Paste the clipboard contents into the terminal, as if it has been entered through the keyboard.
View_MouseMove
m


ScrollBar_Leave
m


View_MouseUp
m


Copy
m


'Copy the selected text of the terminal into the clipboard.
'
'If not text is selected, the entire terminal contents is copied.
View_MouseWheel
m


View_KeyPress
m


View_GotFocus
m


View_LostFocus
m


_ShowCursor
m


CursorTimer_Timer
m


MouseTimer_Timer
m


Exec
m
Process
(Command)String[];[(Environment)String[];]
'Execute a command inside the terminal view using the [/lang/exec] instruction and a virtual terminal.
'
'- ~Command~ is the command string array passed to the EXEC instruction.
'- ~Environment~ is the command optional environment.
'
'The [/comp/gb/process] object is returned.
Shell
m
Process
(Command)s[(Environment)String[];]
'Execute a command inside the terminal view using the [/lang/shell] instruction and a virtual terminal.
'
'- ~Command~ is the command string passed to the SHELL instruction.
'- ~Environment~ is the command optional environment.
'
'The [/comp/gb/process] object is returned.
ConnectTo
m
b
($hOutputStream)Stream;($hInputStream)Stream;(&Preprocess)o
Process_Kill
m


Process_Read
m


Print
m

(Text)s
'Print something in the terminal output.
'
'## See also
'[../input]
_GetCurrentScreen
m
TerminalScreen

_ShowScreen
m


ScrollBar_Change
m


TimerScroll_Timer
m


Kill
m


'Kill the current process running inside the terminal.
'
'It's the process run by the [../exec] or [../shell] command.
Input
m

(Text)s
'Send text to the terminal input.
'
'## See also
'[../print]
View_Menu
m


mnuCopy_Click
m


mnuPaste_Click
m


mnuClear_Click
m


mnuSelectAll_Click
m


mnuOpen_Click
m


View_Leave
m


View_Drop
m


TimerBell_Timer
m


_Bell
m


