// package libtui -- библиотека терминального графического интерфейса
package libtui

import (
	"p78git.ddns.net/svi/libtui/alias"
	"p78git.ddns.net/svi/libtui/pos"
	"p78git.ddns.net/svi/libtui/pos/posx"
	"p78git.ddns.net/svi/libtui/pos/posy"
	"p78git.ddns.net/svi/libtui/size"
	"p78git.ddns.net/svi/libtui/size/sizex"
	"p78git.ddns.net/svi/libtui/size/sizey"
	"p78git.ddns.net/svi/libtui/types"
)

// NewSize -- возвращает новый размер
func NewSize(sizeX alias.SizeX, sizeY alias.SizeY) types.ISize {
	sf := size.NewSize()
	sf.Set(sizeX, sizeY)
	return sf
}

// NewSizeY -- возвращает новый размер по Y
func NewSizeY(sizeY alias.SizeY) types.ISizeY {
	sf := sizey.NewSizeY()
	sf.Set(sizeY)
	return sf
}

// NewX -- возвращает новый размер по X
func NewX(sizeX alias.SizeX) types.ISizeX {
	sf := sizex.NewSizeX()
	sf.Set(sizeX)
	return sf
}

// NewPos -- возвращает новую позицию виджета
func NewPos(posX alias.PosX, posY alias.PosY) types.IPos {
	sf := pos.NewPos()
	sf.Set(posX, posY)
	return sf
}

// NewPosX -- возвращает новую позицию по X
func NewPosX(posX alias.PosX) types.IPosX {
	sf := posx.NewPosX()
	sf.Set(posX)
	return sf
}

// NewPosY -- возвращает новую позицию по Y
func NewPosY(posY alias.PosY) types.IPosY {
	sf := posy.NewPosY()
	sf.Set(posY)
	return sf
}
