60 lines
968 B
Go
60 lines
968 B
Go
|
package termutil
|
||
|
|
||
|
import "image/color"
|
||
|
|
||
|
type Cell struct {
|
||
|
r MeasuredRune
|
||
|
attr CellAttributes
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Attr() CellAttributes {
|
||
|
return cell.attr
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Rune() MeasuredRune {
|
||
|
return cell.r
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Fg() color.Color {
|
||
|
if cell.Attr().inverse {
|
||
|
return cell.attr.bgColour
|
||
|
}
|
||
|
return cell.attr.fgColour
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Bold() bool {
|
||
|
return cell.attr.bold
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Dim() bool {
|
||
|
return cell.attr.dim
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Italic() bool {
|
||
|
return cell.attr.italic
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Underline() bool {
|
||
|
return cell.attr.underline
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Strikethrough() bool {
|
||
|
return cell.attr.strikethrough
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) Bg() color.Color {
|
||
|
if cell.Attr().inverse {
|
||
|
return cell.attr.fgColour
|
||
|
}
|
||
|
return cell.attr.bgColour
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) erase(bgColour color.Color) {
|
||
|
cell.setRune(MeasuredRune{Rune: 0})
|
||
|
cell.attr.bgColour = bgColour
|
||
|
}
|
||
|
|
||
|
func (cell *Cell) setRune(r MeasuredRune) {
|
||
|
cell.r = r
|
||
|
}
|