Terminal control/Hiding the cursor: Difference between revisions
Content added Content deleted
({{header|Locomotive Basic}}) |
(→{{header|PicoLisp}}: Added PureBasic) |
||
Line 13: | Line 13: | ||
(wait 1000) |
(wait 1000) |
||
(call "tput" "cvvis") # Visible</lang> |
(call "tput" "cvvis") # Visible</lang> |
||
=={{header|PureBasic}}== |
|||
<lang PureBasic>#cursorSize = 10 ;use a full sized cursor |
|||
If OpenConsole() |
|||
Print("Press any key to toggle cursor: ") |
|||
EnableGraphicalConsole(1) |
|||
height = #cursorSize |
|||
ConsoleCursor(height) |
|||
Repeat |
|||
If Inkey() |
|||
height ! #cursorSize |
|||
ConsoleCursor(height) |
|||
EndIf |
|||
ForEver |
|||
EndIf </lang> |
|||
=={{header|Tcl}}== |
=={{header|Tcl}}== |
Revision as of 23:30, 9 June 2011
![Task](http://static.miraheze.org/rosettacodewiki/thumb/b/ba/Rcode-button-task-crushed.png/64px-Rcode-button-task-crushed.png)
You are encouraged to solve this task according to the task description, using any language you may know.
The task is to hide the cursor and show it again.
Locomotive Basic
<lang basic>10 CURSOR 0: REM hide cursor 20 FOR l = 1 TO 2000: REM delay 30 NEXT l 40 CURSOR 1: REM show cursor</lang>
PicoLisp
<lang PicoLisp>(call "tput" "civis") # Invisible (wait 1000) (call "tput" "cvvis") # Visible</lang>
PureBasic
<lang PureBasic>#cursorSize = 10 ;use a full sized cursor
If OpenConsole()
Print("Press any key to toggle cursor: ") EnableGraphicalConsole(1) height = #cursorSize ConsoleCursor(height) Repeat If Inkey() height ! #cursorSize ConsoleCursor(height) EndIf ForEver
EndIf </lang>
Tcl
<lang tcl>proc cursor Template:State "normal" {
switch -- $state {
"normal" {set op "cnorm"} "invisible" {set op "civis"} "visible" {set op "cvvis"}
} # Should be just: “exec tput $op” but it's not actually supported on my terminal... exec sh -c "tput $op || true"
}</lang> Demonstration code: <lang tcl>cursor normal puts "normal cursor" after 3000 cursor invisible puts "invisible cursor" after 3000 cursor visible puts "very visible cursor" after 3000 cursor normal puts "back to normal" after 1000</lang>