package main import ( "github.com/gdamore/tcell" "time" ) type TyperMessage struct { timestamp int64 message string } var messageLog = make([]TyperMessage, 0) func PrintMessage(window *Window, message string) { messageLog = append(messageLog, TyperMessage{timestamp: time.Now().UnixMilli(), message: message}) err := window.screen.PostEvent(tcell.NewEventInterrupt(nil)) if err != nil { return } go func() { time.Sleep(5 * time.Second) err := window.screen.PostEvent(tcell.NewEventInterrupt(nil)) if err != nil { return } }() } func drawMessageBar(window *Window) { screen := window.screen messageBarStyle := tcell.StyleDefault.Foreground(tcell.ColorBlack).Background(tcell.ColorWhite) sizeX, sizeY := screen.Size() messageToPrint := "" if len(messageLog) > 0 && time.Since(time.UnixMilli(messageLog[len(messageLog)-1].timestamp)).Seconds() < 5 { messageToPrint = messageLog[len(messageLog)-1].message } for x := 0; x < sizeX; x++ { char := ' ' if x < len(messageToPrint) { char = int32(messageToPrint[x]) } screen.SetContent(x, sizeY-1, char, nil, messageBarStyle) } }