Hi,
I had to write a small console program in Linux.
At the end I used 'C' with my own escape sequences for the terminal.
(Since ncurses forms takes to long to bring it to work correct)
I was wondering, why the 3 'graphic' commands of PB are not available in Linux,
since we only have to 'print' some strings to have them work:
ClearConsole() : Chr(27) + "[2J"
ConsoleColor(f, b) : Chr(27) + "[" + str(f + 40) + ";" + str(b + 30) + "m"
ConsoleLocate(x, y) : Chr(27) + "[" + str(x) + ";" + str(y) + "f"
Not tested yet, but it will work.
for more informations look here:
http://ascii-table.com/ansi-escape-sequences.php
Bernd
EnableGraphicalConsole() for Linux (and MAC)
Re: EnableGraphicalConsole() for Linux (and MAC)
Hi,
I just checked it:It works as expected.
Bernd
I just checked it:
Code: Select all
Procedure T_ConsoleClear()
Print(Chr(27) + "[2J")
EndProcedure
Procedure T_ConsoleLocate(x, y)
Print(Chr(27) + "[" + Str(y) + ";" + Str(x) + "f")
EndProcedure
Procedure T_ConsoleColor(fg, bg)
; fg & 7 ; only 7 colors in Linux :(
; bg & 7
If fg < 8
fg + 30
Else
fg + 82
EndIf
If bg < 8
bg + 40
Else
bg + 92
EndIf
Print(Chr(27) + "[" + Str(fg) + ";" + Str(bg) + "m")
EndProcedure
Procedure T_ConsoleCursor(Height)
;0 Default
;1 invisible
;2 underscore
;3 lower_third
;4 lower_half
;5 two_thirds
;6 full block
Cursor$ = "2"
Select Height
Case 0
Cursor$ = "1"
Case 1
Cursor$ = "2"
Case 5
Cursor$ = "4"
Case 10
Cursor$ = "6"
EndSelect
If Height = 0
Print(Chr(27) + "[?25l")
Else
Print(Chr(27) + "[?25h")
EndIf
Print(Chr(27) + "[?" + Cursor$ + ";4;16c")
EndProcedure
Procedure T_ConsoleTitle(Title$)
Print(Chr(27) + "]0;" + Title$ + Chr(7))
EndProcedure
If OpenConsole()
EnableGraphicalConsole(1)
T_ConsoleClear()
For i = 0 To 200
T_ConsoleLocate(Random(79), Random(24))
Print("*")
Next
T_ConsoleLocate(30, 10)
PrintN("Press return to exit")
Input()
T_ConsoleClear()
T_ConsoleColor(0, 7)
PrintN("Test")
T_ConsoleColor(7, 0)
PrintN("Press return to exit")
Input()
For fg = 0 To 15
For bg = 0 To 15
T_ConsoleColor(fg, bg)
Print("O")
Next bg
PrintN("")
Next fg
T_ConsoleColor(7, 0)
PrintN("")
Print("Hide cursor")
T_ConsoleCursor(0)
Input()
PrintN("");
Print("Normal cursor")
T_ConsoleCursor(1)
Input()
PrintN("");
Print("Half cursor")
T_ConsoleCursor(5)
Input()
PrintN("");
Print("Full cursor")
T_ConsoleCursor(10)
Input()
PrintN("");
T_ConsoleCursor(1)
T_ConsoleTitle("This is done in PurBASIC")
PrintN("Look at the title of the window")
Input()
EndIf
Bernd
Last edited by infratec on Sun Jan 17, 2010 3:38 pm, edited 3 times in total.
Re: EnableGraphicalConsole() for Linux (and MAC)
This is interesting, i will add this, thanks.
Re: EnableGraphicalConsole() for Linux (and MAC)
Hi,
I just extended the functions. (see above)
Now also ConsoleCursor() is available.
But
It works not in the graphical xterm
xtrem did not provide the neccessary functions.
But
It works on the normal linux text console.
(press CTRL + ALT + F1, if you are in a GUI (KDE or Gnome for example)
than you can login to the standard text console.
To switch back, logout and press ALT + F7)
Bernd
I just extended the functions. (see above)
Now also ConsoleCursor() is available.
But

It works not in the graphical xterm
xtrem did not provide the neccessary functions.
But

It works on the normal linux text console.
(press CTRL + ALT + F1, if you are in a GUI (KDE or Gnome for example)
than you can login to the standard text console.
To switch back, logout and press ALT + F7)
Bernd
Re: EnableGraphicalConsole() for Linux (and MAC)
Hi, hi,
now I found a way to hide and show the cursor in xterm.
So 0 as parameter is working now also in X.
(See T_ConsoleCursor() above.)
And I think that's the most required function:
Switch on and of the cursor.
Bernd
now I found a way to hide and show the cursor in xterm.
So 0 as parameter is working now also in X.
(See T_ConsoleCursor() above.)
And I think that's the most required function:
Switch on and of the cursor.
Bernd
Re: EnableGraphicalConsole() for Linux (and MAC)
All depnds on the used Terminal in Linux.
I added now some stuuf which allows you in the X terminals to use
16 colors, but not on the 'real' console terminal.
Also with the 'real' xterm you can now set the title of the window.
Bernd
I added now some stuuf which allows you in the X terminals to use
16 colors, but not on the 'real' console terminal.
Also with the 'real' xterm you can now set the title of the window.
Bernd
Re: EnableGraphicalConsole() for Linux (and MAC)
so, does this work for gnome terminal also, or only on the console like tty1(-6) with GUI running on 7?
I'll have to give this a try
I'll have to give this a try
