package gui import ( "time" "github.com/hajimehoshi/ebiten/v2" ) func (g *GUI) getModifierStr() string { switch true { case g.keyState.RepeatPressed(ebiten.KeyShift) && g.keyState.RepeatPressed(ebiten.KeyControl) && g.keyState.RepeatPressed(ebiten.KeyAlt): return ";8" case g.keyState.RepeatPressed(ebiten.KeyAlt) && g.keyState.RepeatPressed(ebiten.KeyControl): return ";7" case g.keyState.RepeatPressed(ebiten.KeyShift) && g.keyState.RepeatPressed(ebiten.KeyControl): return ";6" case g.keyState.RepeatPressed(ebiten.KeyControl): return ";5" case g.keyState.RepeatPressed(ebiten.KeyShift) && g.keyState.RepeatPressed(ebiten.KeyAlt): return ";4" case g.keyState.RepeatPressed(ebiten.KeyAlt): return ";3" case g.keyState.RepeatPressed(ebiten.KeyShift): return ";2" } return "" } // Update changes the terminal GUI state - all user-initiated modification should happen here. func (g *GUI) Update() error { if err := g.handleInput(); err != nil { return err } g.filterPopupMessages() return nil } func (g *GUI) filterPopupMessages() { var filtered []PopupMessage for _, msg := range g.popupMessages { if time.Since(msg.Expiry) >= 0 { continue } filtered = append(filtered, msg) } g.popupMessages = filtered }