mirror of
https://github.com/EnumeratedDev/Typer.git
synced 2025-07-01 07:48:20 +00:00
54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|