// package color -- объект цвета
package color

import (
	"github.com/gdamore/tcell"
	"p78git.ddns.net/svi/libtui/alias"
)

// Color -- объект цвета
type Color struct {
	val alias.Color // Фктическое значение цвета
	r   uint8
	g   uint8
	b   uint8
}

// NewColor -- возвращает новый цвет
func NewColor() *Color {
	sf := &Color{}
	return sf
}

// Get -- возвращает фактическое значение цвета
func (sf *Color) Get() alias.Color {
	return sf.val
}

// Set -- устанавливаетхранимое значение цвета
func (sf *Color) Set(r, g, b uint8) {
	clr := tcell.NewRGBColor(int32(r), int32(g), int32(b))
	sf.val = alias.Color(clr)
	sf.r = r
	sf.g = g
	sf.b = b
}

// R -- возвращает красную компоненту
func (sf *Color) R() uint8 {
	return sf.r
}

// G -- возвращает зелёную компоненту
func (sf *Color) G() uint8 {
	return sf.g
}

// B -- возвращает голубую компоненту
func (sf *Color) B() uint8 {
	return sf.g
}
