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()
|
|
}
|