Added scroll container and minsize layout

This commit is contained in:
Maarten Heremans
2024-03-30 19:26:48 +01:00
parent 18cf7858d6
commit b9d2b680bc
4 changed files with 184 additions and 9 deletions

33
uilayout/minsize.go Normal file
View File

@@ -0,0 +1,33 @@
package uilayout
import "fyne.io/fyne/v2"
type MinSize struct {
minSize fyne.Size
}
func NewMinSizeLayout(minSize fyne.Size) *MinSize {
return &MinSize{minSize: minSize}
}
func (l *MinSize) MinSize(objects []fyne.CanvasObject) fyne.Size {
size := l.minSize
for _, o := range objects {
childSize := o.MinSize()
if size.Width < childSize.Width {
size.Width = childSize.Width
}
if size.Height < childSize.Height {
size.Height = childSize.Height
}
}
return size
}
func (l *MinSize) Layout(objects []fyne.CanvasObject, containerSize fyne.Size) {
pos := fyne.NewPos(0, 0)
for _, o := range objects {
o.Resize(containerSize)
o.Move(pos)
}
}