58 lines
752 B
Go
58 lines
752 B
Go
|
package term
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
type CursorFlag bool
|
||
|
|
||
|
const (
|
||
|
CursorOn CursorFlag = true
|
||
|
CursorOff CursorFlag = false
|
||
|
)
|
||
|
|
||
|
func TurnCursor(onOff CursorFlag) {
|
||
|
if onOff == CursorOn {
|
||
|
fmt.Printf("\033[?25h")
|
||
|
} else {
|
||
|
fmt.Printf("\033[?25l")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func ClearScreen() {
|
||
|
fmt.Printf("\033[2J")
|
||
|
}
|
||
|
|
||
|
func ResetTerminal() {
|
||
|
fmt.Printf("\033c")
|
||
|
}
|
||
|
|
||
|
func GoHome() {
|
||
|
fmt.Printf("\033[H")
|
||
|
}
|
||
|
|
||
|
func SaveCursor() {
|
||
|
fmt.Printf("\033[s")
|
||
|
}
|
||
|
|
||
|
func RestoreCursor() {
|
||
|
fmt.Printf("\033[u")
|
||
|
}
|
||
|
|
||
|
func EnableAlternateScreen() {
|
||
|
fmt.Printf("\033[?1049h")
|
||
|
}
|
||
|
|
||
|
func DisableAlternateScreen() {
|
||
|
fmt.Printf("\033[?1049l")
|
||
|
}
|
||
|
|
||
|
func StartFullscreen() {
|
||
|
SaveCursor()
|
||
|
EnableAlternateScreen()
|
||
|
ClearScreen()
|
||
|
}
|
||
|
|
||
|
func FinishFullscreen() {
|
||
|
DisableAlternateScreen()
|
||
|
RestoreCursor()
|
||
|
}
|