termui/canvas.go

44 lines
753 B
Go
Raw Normal View History

2015-03-26 22:11:41 +00:00
package termui
2019-01-24 04:12:10 +00:00
import (
"image"
2019-01-26 13:19:45 +00:00
2019-06-18 19:30:44 +00:00
"github.com/gizak/termui/v3/drawille"
2019-01-24 04:12:10 +00:00
)
2015-03-26 22:11:41 +00:00
2019-01-24 04:12:10 +00:00
type Canvas struct {
Block
2019-01-26 13:19:45 +00:00
drawille.Canvas
2015-03-26 22:11:41 +00:00
}
2019-01-24 04:12:10 +00:00
func NewCanvas() *Canvas {
return &Canvas{
2019-01-26 13:19:45 +00:00
Block: *NewBlock(),
Canvas: *drawille.NewCanvas(),
2015-03-26 22:11:41 +00:00
}
}
2019-01-26 13:19:45 +00:00
func (self *Canvas) SetPoint(p image.Point, color Color) {
self.Canvas.SetPoint(p, drawille.Color(color))
2015-03-26 22:11:41 +00:00
}
2019-01-26 13:19:45 +00:00
func (self *Canvas) SetLine(p0, p1 image.Point, color Color) {
self.Canvas.SetLine(p0, p1, drawille.Color(color))
}
2019-01-24 04:12:10 +00:00
func (self *Canvas) Draw(buf *Buffer) {
2019-01-26 13:19:45 +00:00
for point, cell := range self.Canvas.GetCells() {
2019-01-24 04:12:10 +00:00
if point.In(self.Rectangle) {
2019-01-26 13:19:45 +00:00
convertedCell := Cell{
cell.Rune,
Style{
Color(cell.Color),
ColorClear,
ModifierClear,
},
}
buf.SetCell(convertedCell, point)
2019-01-24 04:12:10 +00:00
}
2015-03-26 22:11:41 +00:00
}
}