1
0

Updated code headers, demo and added new escape characters and macros

This commit is contained in:
2021-07-01 22:31:17 +02:00
parent 83f1a1f3e1
commit 332f61e366
4 changed files with 101 additions and 34 deletions

View File

@@ -5,6 +5,7 @@
;
; ==- Links & License -===========================
; License: Unlicense
; GitHub: https://github.com/aziascreations/PB-ConsoleHelpers
;}
;- Compiler Directives
@@ -20,7 +21,7 @@ CompilerEndIf
;- Code
; Safely openning the console
;-> Safely openning the console
If OpenConsole("My first title")
If Not VirtualTerminal::EnableVirtualTerminalProcessing()
VirtualTerminal::WriteErrorN("Unable to activate virtual terminal processing, output is likely piped !")
@@ -32,37 +33,77 @@ Else
End 1
EndIf
; Clearing the console
;-> Clearing the console
VirtualTerminal::ClearDisplay(AinsiEscapeCode::#ED_2) ; 2 or +ClearDisplayFull() also works just fine
VirtualTerminal::CursorTo(0, 0)
; Intro
;-> Intro
VirtualTerminal::WriteOutputN("-===- Welcome to the 'Basic' demo for 'VirtualTerminal' -===-")
VirtualTerminal::WriteOutputN("This program serves as a short demo of the 'VirtualTerminal' include for PureBasic.")
VirtualTerminal::WriteOutputN("This include and its module aim to bring the functionalities of the escape character sequences"+
" to PureBasic without using any OS-specific API.")
VirtualTerminal::WriteOutputN("")
VirtualTerminal::WriteOutputN("Some features may not work properly on some third-party consoles such as ConEmu.")
VirtualTerminal::WriteOutputN("The 'GetTerminalWidth()' and 'GetTerminalHeight()' procedure tend to scroll the viewport on them.")
VirtualTerminal::WriteOutputN("")
VirtualTerminal::WriteOutputN("Press enter to start...")
Input()
; Basic info
;-> Basic info
VirtualTerminal::WriteOutputN("-=- Basic info -=-")
VirtualTerminal::WriteOutputN("Terminal size: "+Str(VirtualTerminal::GetTerminalWidth())+"x"+Str(VirtualTerminal::GetTerminalHeight()))
Define TerminalWidth.i = VirtualTerminal::GetTerminalWidth()
Define TerminalHeight.i = VirtualTerminal::GetTerminalHeight()
VirtualTerminal::WriteOutputN("Terminal size: "+Str(TerminalWidth)+"x"+Str(TerminalHeight))
VirtualTerminal::WriteOutputN("Press enter to continue...")
Input()
; Title demo
;-> Title demo
VirtualTerminal::WriteOutputN("-=- Title -=-")
VirtualTerminal::WriteOutputN("Press enter to change the title...")
Input()
VirtualTerminal::SetWindowTitle("My new title")
; ???
; End
;-> Dynamic UI demo
VirtualTerminal::WriteOutputN("-=- Dynamic UI -=-")
VirtualTerminal::WriteOutputN("Press enter to start...")
Input()
Define Percentage.i = 0
Repeat
Define ProgressBarSize.i = Round((TerminalWidth) * (Percentage / 100), #PB_Round_Down)
Define OriginalCursorPosition.Console::CursorPosition
VirtualTerminal::GetCursorPosition(@OriginalCursorPosition)
VirtualTerminal::WriteOutput("["+RSet("", ProgressBarSize, "#")+RSet("", TerminalWidth - ProgressBarSize - 2, " ")+"]")
VirtualTerminal::CursorTo(0, OriginalCursorPosition\Y)
Percentage = Percentage + 1
Delay(15)
Until Percentage = 100
VirtualTerminal::CursorDownBy(2)
;-> ???
;-> Finishing
VirtualTerminal::WriteOutputN("-=- End of the demo -=-")
Print("Press enter to clear the terminal and exit...")
Input()
VirtualTerminal::ClearDisplayFull()
VirtualTerminal::CursorTo(0, 0)
; Quitting safely
;-> Quitting safely
VirtualTerminal::DisableVirtualTerminalProcessing()
CloseConsole()
End 0