package ui import ( "opslag.de/schobers/geom" ) type ContainerBase struct { ControlBase Children []Control } func BuildContainerBase(controls ...Control) ContainerBase { return ContainerBase{ Children: controls, } } func (c *ContainerBase) AddChild(child ...Control) { c.Children = append(c.Children, child...) } func (c *ContainerBase) Arrange(ctx Context, bounds geom.RectangleF32, offset geom.PointF32, parent Control) { for _, child := range c.Children { child.Arrange(ctx, bounds, offset, c) } c.ControlBase.Arrange(ctx, bounds, offset, parent) } func (c *ContainerBase) Handle(ctx Context, e Event) bool { if c.ControlBase.Handle(ctx, e) { return true } for _, child := range c.Children { if child.Handle(ctx, e) { return true } } return false } func (c *ContainerBase) Render(ctx Context) { c.RenderBackground(ctx) for _, child := range c.Children { child.Render(ctx) } }