Make Flexible extra space proportional to requested size

This commit is contained in:
Francisco Vallarino 2020-07-24 00:48:33 -03:00
parent 8dc575c919
commit a42ba1ba14
2 changed files with 4 additions and 4 deletions

View File

@ -135,7 +135,7 @@ buildUI model = widgetTree where
--spacer,
textField textField1,
textField textField1 `style` color red,
listView textField2 items id
listView textField3 items id
]
items = fmap showt [1..30::Int]
itemsDropdown = fmap dropdownText [1..100::Int]

View File

@ -56,8 +56,8 @@ makeStack isHorizontal = createContainer {
rCount = fromIntegral $ length rChildren
fAvg = if fExists then fSize / fCount else 0
fBigFilter c = sizeSelector (_sizeRequested c) >= fAvg
fBigCount = fromIntegral $ Seq.length (Seq.filter fBigFilter fChildren)
fExtra = if fExists then (rSize - fSize) / fBigCount else 0
fBigSize = sizeSelector $ calcPreferredSize (Seq.filter fBigFilter fChildren)
fExtra = if fExists then (rSize - fSize) / fBigSize else 0
rUnit = if rExists && not fExists then rSize / rCount else 0
assignedArea = Seq.zip newViewports newViewports
(newViewports, _) = foldl' foldHelper (Seq.empty, mainStart) childrenPairs
@ -80,7 +80,7 @@ makeStack isHorizontal = createContainer {
calcNewSize = case policySelector req of
StrictSize -> sizeSelector srSize
FlexibleSize
| sizeSelector srSize >= fAvg -> sizeSelector srSize + fExtra
| sizeSelector srSize >= fAvg -> (1 + fExtra) * sizeSelector srSize
| otherwise -> sizeSelector srSize
RemainderSize -> rUnit