// package cell -- ячейка для отрисовки на экране
package cell

import (
	"p78git.ddns.net/svi/libtui/alias"
	"p78git.ddns.net/svi/libtui/pos"
	"p78git.ddns.net/svi/libtui/types"
)

// Cell -- ячейка для отрисовки на экране
type Cell struct {
	pos   types.IPos
	lit   alias.Lit
	style alias.Style
}

// NewCell -- возвращает новую знакоместо экрана
func NewCell() *Cell {
	sf := &Cell{
		pos: pos.NewPos(),
	}
	return sf
}

// Pos -- возвращает позицию ячейки на экране
func (sf *Cell) Pos() (alias.PosX, alias.PosY) {
	return sf.pos.Get()
}

// SetPos -- устанавливает позицию литеры на экране
func (sf *Cell) SetPos(posX alias.PosX, posY alias.PosY) {
	sf.pos.Set(posX, posY)
}

// Lit -- возвращает хранимую литеру
func (sf *Cell) Lit() alias.Lit {
	return sf.lit
}

// SetLit -- устанавливае тлитеру для отображения
func (sf *Cell) SetLit(lit alias.Lit) {
	sf.lit = lit
}

// Style -- возвращает стиль ячейки
func (sf *Cell) Style() alias.Style {
	return sf.style
}

// SetStyle -- устанавливает стиль ячейки
func (sf *Cell) SetStyle(style alias.Style) {
	sf.style = style
}
