sampler-fork/component/component.go

51 lines
955 B
Go
Raw Normal View History

2019-02-24 04:49:09 +00:00
package component
2019-01-31 00:02:38 +00:00
import (
2019-03-14 03:01:44 +00:00
ui "github.com/gizak/termui/v3"
"github.com/sqshq/sampler/config"
"github.com/sqshq/sampler/data"
2019-01-31 00:02:38 +00:00
)
2019-01-31 01:41:51 +00:00
type Component struct {
2019-03-16 23:59:28 +00:00
ui.Drawable
*data.Consumer
Type config.ComponentType
Title string
Location config.Location
Size config.Size
RefreshRateMs int
2019-01-31 00:02:38 +00:00
}
2019-03-17 23:55:24 +00:00
func NewComponent(dbl ui.Drawable, cmr *data.Consumer, cfg config.ComponentConfig) *Component {
return &Component{
2019-03-16 23:59:28 +00:00
Drawable: dbl,
Consumer: cmr,
2019-03-17 23:55:24 +00:00
Type: cfg.Type,
2019-03-16 23:59:28 +00:00
Title: cfg.Title,
Location: cfg.GetLocation(),
Size: cfg.GetSize(),
2019-03-16 23:59:28 +00:00
RefreshRateMs: *cfg.RefreshRateMs,
}
}
func (c *Component) Move(x, y int) {
c.Location.X += x
c.Location.Y += y
c.normalize()
2019-01-31 00:02:38 +00:00
}
func (c *Component) Resize(x, y int) {
c.Size.X += x
c.Size.Y += y
c.normalize()
}
func (c *Component) normalize() {
if c.Location.X < 0 {
c.Location.X = 0
}
if c.Location.Y < 0 {
c.Location.Y = 0
}
2019-01-31 00:02:38 +00:00
}