mirror of https://github.com/liamg/aminal.git
51 lines
1.0 KiB
Go
51 lines
1.0 KiB
Go
package terminal
|
|
|
|
type Cell struct {
|
|
r rune
|
|
attr CellAttributes
|
|
}
|
|
|
|
type CellAttributes struct {
|
|
FgColour [3]float32
|
|
BgColour [3]float32
|
|
Bold bool
|
|
Dim bool
|
|
Underline bool
|
|
Blink bool
|
|
Reverse bool
|
|
Hidden bool
|
|
}
|
|
|
|
func (terminal *Terminal) NewCell() Cell {
|
|
return Cell{
|
|
attr: CellAttributes{
|
|
FgColour: terminal.colourScheme.DefaultFg,
|
|
BgColour: terminal.colourScheme.DefaultBg,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (cell *Cell) GetRune() rune {
|
|
return cell.r
|
|
}
|
|
|
|
func (cell *Cell) IsHidden() bool {
|
|
return cell.attr.Hidden
|
|
}
|
|
|
|
func (cell *Cell) GetFgColour() (r float32, g float32, b float32) {
|
|
|
|
if cell.attr.Reverse {
|
|
return cell.attr.BgColour[0], cell.attr.BgColour[1], cell.attr.BgColour[2]
|
|
}
|
|
return cell.attr.FgColour[0], cell.attr.FgColour[1], cell.attr.FgColour[2]
|
|
}
|
|
|
|
func (cell *Cell) GetBgColour() (r float32, g float32, b float32) {
|
|
|
|
if cell.attr.Reverse {
|
|
return cell.attr.FgColour[0], cell.attr.FgColour[1], cell.attr.FgColour[2]
|
|
}
|
|
return cell.attr.BgColour[0], cell.attr.BgColour[1], cell.attr.BgColour[2]
|
|
}
|