package elements import "image" import "git.tebibyte.media/sashakoshka/tomo" import "git.tebibyte.media/sashakoshka/piss/ansi" type Terminal struct { *Grid decoder ansi.Decoder } func NewTerminal () (element *Terminal) { element = &Terminal { Grid: NewGrid() } element.Grid.OnResize(element.handleResize) return } func (element *Terminal) Write (buffer []byte) (wrote int, err error) { wrote, err = element.decoder.Write(buffer) element.Push() return } func (element *Terminal) handleResize () { element.Set(image.Pt(0, 0), Cell { Rune: 'X', Background: tomo.ColorRed, Foreground: tomo.ColorBrightWhite, }) element.Set(image.Pt(15, 10), Cell { Rune: 'Y', Background: tomo.ColorBrightYellow, Foreground: tomo.ColorBlack, }) }