package uilayout import "fyne.io/fyne/v2" type Padding struct { top float32 bottom float32 left float32 right float32 } func NewPadding( top, bottom, left, right float32, ) *Padding { return &Padding{ top: top, bottom: bottom, left: left, right: right, } } func (p *Padding) MinSize(objects []fyne.CanvasObject) fyne.Size { w := p.left + p.right h := p.top + p.bottom if len(objects) > 0 { w += objects[0].MinSize().Width h += objects[0].MinSize().Height } return fyne.NewSize(w, h) } func (p *Padding) Layout( objects []fyne.CanvasObject, containerSize fyne.Size, ) { pos := fyne.NewPos(p.left, p.top) if len(objects) > 0 { o := objects[0] size := containerSize.Subtract( fyne.NewSize(p.left+p.right, p.top+p.bottom)) o.Resize(size) o.Move(pos) } }