// SetRune writes a rune at the given point, relative to the top-left // corner of the terminal. It checks if the position is valid and applies // the gui's colors. func (g *Gui) SetRune(x, y int, ch rune) error { if x < 0 || y < 0 || x >= g.maxX || y >= g.maxY { return errors.New("invalid point") } termbox.SetCell(x, y, ch, termbox.Attribute(g.FgColor), termbox.Attribute(g.BgColor)) return nil }
// clearRunes erases all the cells in the view. func (v *View) clearRunes() { maxX, maxY := v.Size() for x := 0; x < maxX; x++ { for y := 0; y < maxY; y++ { termbox.SetCell(v.x0+x+1, v.y0+y+1, ' ', termbox.Attribute(v.fgColor), termbox.Attribute(v.bgColor)) } } }
// setRune writes a rune at the given point, relative to the view. It // checks if the position is valid and applies the view's colors, taking // into account if the cell must be highlighted. func (v *View) SetRune(x, y int, ch rune) error { maxX, maxY := v.Size() if x < 0 || x >= maxX || y < 0 || y >= maxY { return errors.New("invalid point") } var fgColor, bgColor Attribute if v.Highlight && y == v.cy { fgColor = v.selFgColor bgColor = v.selBgColor } else { fgColor = v.fgColor bgColor = v.bgColor } termbox.SetCell(v.x0+x+1, v.y0+y+1, ch, termbox.Attribute(fgColor), termbox.Attribute(bgColor)) return nil }