Row, Column handle expansion properly

This commit is contained in:
Sasha Koshka 2024-06-12 03:32:32 -04:00
parent 9ce7f8b8f3
commit 71a41d390f

View File

@ -41,12 +41,12 @@ func (row Row) MinimumSize (hints tomo.LayoutHints, boxes []tomo.Box) image.Poin
func (column Column) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
expands := func (index int) bool {
if index < len(boxes) { return false }
if index >= len(column) { return false }
return column[index]
}
// determine expanding box size
expandingSize := 0
expandingSize := 0.0
if !hints.OverflowY {
gaps := len(boxes) - 1
freeSpace := float64(hints.Bounds.Dy() - hints.Gap.Y * gaps)
@ -83,7 +83,7 @@ func (column Column) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
}
} else {
if expands(index) {
height = expandingSize
height = int(expandingSize)
}
}
@ -111,12 +111,12 @@ func (column Column) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
func (row Row) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
expands := func (index int) bool {
if index < len(boxes) { return false }
if index >= len(row) { return false }
return row[index]
}
// determine expanding box size
expandingSize := 0
expandingSize := 0.0
if !hints.OverflowY {
gaps := len(boxes) - 1
freeSpace := float64(hints.Bounds.Dx() - hints.Gap.X * gaps)
@ -127,6 +127,7 @@ func (row Row) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
freeSpace -= float64(box.MinimumSize().Y)
}
}
expandingSize = freeSpace / float64(nExpanding)
}
// determine height
@ -153,7 +154,7 @@ func (row Row) Arrange (hints tomo.LayoutHints, boxes []tomo.Box) {
}
} else {
if expands(index) {
width = expandingSize
width = int(expandingSize)
}
}