Added scroll container and minsize layout
This commit is contained in:
33
uilayout/minsize.go
Normal file
33
uilayout/minsize.go
Normal 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)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user